Vorgänge für Gruppen| Graph-API-Referenz
Gilt für: Graph-API | Azure Active Directory
In diesem Artikel wird erläutert, wie mithilfe der Azure AD (Active Directory)-Graph-API Vorgänge für Gruppen ausgeführt werden. Mit der Azure AD Graph-API können Sie Gruppen erstellen, lesen, aktualisieren und löschen. Sie können auch Mitglieder einer Gruppe abfragen, hinzufügen und löschen, die Mitgliedschaft einer Gruppe in anderen Gruppen überprüfen, einer Gruppe App-Rollen zuweisen und viele weitere Aktionen ausführen. Manche Gruppenvorgänge sind transitiv, und andere gelten nur für direkte Mitglieder der Gruppe. Die Unterstützung für einige Vorgänge variiert zwischen Sicherheitsgruppen, E-Mail-Verteilergruppen und E-Mail-aktivierten Sicherheitsgruppen. Gruppen können Benutzer, Kontakte und andere Gruppen als Mitglieder enthalten.
Bei der Graph-API handelt es sich um eine mit OData 3.0 kompatible REST-API, die einen programmgesteuerten Zugriff auf Verzeichnisobjekte in Azure Active Directory (Azure AD) ermöglicht, z.B. auf Benutzer, Gruppen, Organisationskontakte und Anwendungen.
Wichtig
Die Funktionen der Azure AD Graph-API sind auch über Microsoft Graph verfügbar. Dies ist eine einheitliche API, die auch APIs von anderen Microsoft-Diensten wie Outlook, OneDrive, OneNote, Planner und Office Graph enthält. Auf alle wird über einen einzigen Endpunkt mit einem einzigen Zugriffstoken zugegriffen.
Ausführen von REST-Vorgängen für Gruppen
Zum Ausführen von Vorgängen für Gruppen mit der Graph-API senden Sie mit einer unterstützten Methode (GET, POST, PATCH, PUT oder DELETE) HTTP-Anforderungen an einen Endpunkt für die Gruppenressourcensammlung, eine bestimmte Gruppe, eine Navigationseigenschaft einer Gruppe oder eine Funktion oder Aktion, die für eine Gruppe aufgerufen werden kann. In den folgenden Abschnitten wird erläutert, wie Vorgänge für Gruppen erstellt werden und ihr Endpunkt angegeben wird.
URLs für Graph-API-Anforderungen weisen das folgende Format auf:
https://graph.windows.net/{tenant_id}/{resource_path}?{api_version}[odata_query_parameters]
Wichtig
An die Graph-API gesendete Anforderungen müssen wohlgeformt sein, an einen gültigen Endpunkt und eine gültige Version der Graph-API gerichtet sein und im Authorization
-Header ein gültiges Zugriffstoken von Azure AD enthalten. Ausführlichere Informationen zum Erstellen von Anforderungen und Empfangen von Antworten mit der Graph-API finden Sie unter Operations Overview.
Der von Ihnen angegebene {resource_path}
hängt davon ab, ob das Ziel die Sammlung aller Gruppen im Mandanten, eine einzelne Gruppe oder eine Navigationseigenschaft einer bestimmten Gruppe ist.
/groups
gibt den Pfad zur Gruppenressourcensammlung an. Sie können diesen Ressourcenpfad zum Lesen aller Gruppen im Mandanten oder zum Erstellen neuer Sicherheitsgruppen im Mandanten verwenden./groups/{object_id}
gibt den Pfad zu einer einzelnen Gruppe im Mandanten an. Sie geben die Zielgruppe mit ihrer Objekt-ID (GUID) an. Sie können mit diesem Ressourcenpfad die deklarierten Eigenschaften einer Gruppe abrufen, die deklarierten Eigenschaften einer Gruppe ändern oder eine Sicherheitsgruppe löschen./group/{object_id}/{nav_property}
gibt den Pfad zur angegebenen Navigationseigenschaft einer Gruppe an. Sie können diesen Pfad verwenden, um das Objekt oder die Objekte zurückzugeben, auf das bzw. die von der Zielnavigationseigenschaft der angegebenen Gruppe verwiesen wird, z.B. die Mitglieder der Gruppe. Hinweis: Diese Form der Adressierung ist nur für Lesevorgänge verfügbar./groups/{object_id}/$links/{nav_property}
gibt den Pfad zur angegebenen Navigationseigenschaft einer Gruppe an. Sie können diese Form der Adressierung für Lesevorgänge und zum Ändern einer Navigationseigenschaft verwenden. Bei Lesevorgängen werden Objekte, auf die von der Eigenschaft verwiesen wird, als einer oder mehrere Links im Antworttext zurückgegeben. Bei Schreibvorgängen werden die Objekte als einer oder mehrere Links im Anforderungstext angegeben.
Beispielsweise gibt die folgende Anforderung eine Sammlung von Links zu den Mitgliedern der angegebenen Gruppe zurück:
GET https://graph.windows.net/myorganization/groups/ffffffff-ffff-ffff-ffff-ffffffffffff/$links/members?api-version=1.6
Grundlegende Vorgänge für Gruppen
Sie können grundlegende CRUD-Vorgänge (Create, Read, Update, Delete) für Gruppen und ihre deklarierten Eigenschaften ausführen, indem Sie die Gruppenressourcensammlung oder eine bestimmte Gruppe als Ziel des Vorgangs angeben. In den folgenden Themen wird die Vorgehensweise beschrieben.
Die Graph-API unterstützt die folgenden Vorgänge für Gruppen:
- Erstellen (POST): nur Sicherheitsgruppen.
- Lesen (GET): alle Gruppen.
- Aktualisieren (PATCH): Sicherheitsgruppen und E-Mail-fähige Sicherheitsgruppen. Nicht alle Eigenschaften werden unterstützt.
- Löschen (DELETE): nur Sicherheitsgruppen.
Abrufen von Gruppen
Ruft eine Sammlung von Gruppen ab. Sie können der Anforderung OData-Abfrageparameter hinzufügen, um die Antwort zu sortieren und zu paginieren. Weitere Informationen finden Sie unter Supported Queries, Filters, and Paging Options.
Bei Erfolg wird eine Sammlung von Group-Objekten zurückgegeben. Andernfalls enthält der Antworttext Fehlerinformationen. Weitere Informationen zu Fehlern finden Sie unter Error Codes and Error Handling.
GET https://graph.windows.net/myorganization/groups?api-version
Parameters
Parameter | Type | Value | Notes |
---|---|---|---|
Query | |||
api-version | string | 1.6 | The version of the Graph API to target. Beginning with version 1.5, the api-version string is represented in major.minor format. Prior releases were represented as date strings: '2013-11-08' and '2013-04-05'. Required. |
Response
Status Code:200
Content-Type: application/json
{
"odata.metadata": "https://graph.windows.net/myorganization/$metadata#directoryObjects/Microsoft.DirectoryServices.Group",
"value": [
{
"odata.type": "Microsoft.DirectoryServices.Group",
"objectType": "Group",
"objectId": "c57cdc98-0dcd-4f90-a82f-c911b288bab9",
"deletionTimestamp": null,
"description": "Marketing Group",
"dirSyncEnabled": null,
"displayName": "Marketing",
"lastDirSyncTime": null,
"mail": null,
"mailNickname": "cdf76b17-0734-41bc-9c24-9a7af93f3502",
"mailEnabled": false,
"onPremisesSecurityIdentifier": null,
"provisioningErrors": [],
"proxyAddresses": [],
"securityEnabled": true
},
{
"odata.type": "Microsoft.DirectoryServices.Group",
"objectType": "Group",
"objectId": "cc9869f0-6ac0-4d00-bc24-621a2d949d35",
"deletionTimestamp": null,
"description": "Engineering Group",
"dirSyncEnabled": null,
"displayName": "Engineering",
"lastDirSyncTime": null,
"mail": null,
"mailNickname": "ef3b8cc1-721b-4452-9e30-9867d1de80ea",
"mailEnabled": false,
"onPremisesSecurityIdentifier": null,
"provisioningErrors": [],
"proxyAddresses": [],
"securityEnabled": true
},
{
"odata.type": "Microsoft.DirectoryServices.Group",
"objectType": "Group",
"objectId": "fc15e7ef-993f-4865-bf37-317d9b8017b8",
"deletionTimestamp": null,
"description": "Test Group",
"dirSyncEnabled": null,
"displayName": "Test",
"lastDirSyncTime": null,
"mail": null,
"mailNickname": "fec6273a-20af-49ba-8129-3cbde45a0a16",
"mailEnabled": false,
"onPremisesSecurityIdentifier": null,
"provisioningErrors": [],
"proxyAddresses": [],
"securityEnabled": true
}
]
}
Response List
Status Code | Description |
---|---|
200 | OK. Indicates success. The results are returned in the response body. |
Code Samples
using System;
using System.Net.Http.Headers;
using System.Text;
using System.Net.Http;
using System.Web;
namespace CSHttpClientSample
{
static class Program
{
static void Main()
{
MakeRequest();
Console.WriteLine("Hit ENTER to exit...");
Console.ReadLine();
}
static async void MakeRequest()
{
var client = new HttpClient();
var queryString = HttpUtility.ParseQueryString(string.Empty);
/* OAuth2 is required to access this API. For more information visit:
https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks */
// Specify values for the following required parameters
queryString["api-version"] = "1.6";
// Specify values for path parameters (shown as {...})
var uri = "https://graph.windows.net/myorganization/groups?" + queryString;
var response = await client.GetAsync(uri);
if (response.Content != null)
{
var responseString = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseString);
}
}
}
}
@ECHO OFF
REM OAuth2 is required to access this API. For more information visit: https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks
REM Specify values for path parameters (shown as {...}), values for query parameters
curl -v -X GET "https://graph.windows.net/myorganization/groups?api-version=1.6&"^
// This sample uses the Apache HTTP client from HTTP Components (http://hc.apache.org/httpcomponents-client-ga/)
import java.net.URI;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class JavaSample {
public static void main(String[] args) {
HttpClient httpclient = HttpClients.createDefault();
try
{
// OAuth2 is required to access this API. For more information visit:
// https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks
// Specify values for path parameters (shown as {...})
URIBuilder builder = new URIBuilder("https://graph.windows.net/myorganization/groups");
// Specify values for the following required parameters
builder.setParameter("api-version", "1.6");
URI uri = builder.build();
HttpGet request = new HttpGet(uri);
HttpResponse response = httpclient.execute(request);
HttpEntity entity = response.getEntity();
if (entity != null) {
System.out.println(EntityUtils.toString(entity));
}
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
}
}
<!DOCTYPE html>
<html>
<head>
<title>JSSample</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(function() {
// OAuth2 is required to access this API. For more information visit:
// https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks
var params = {
// Specify values for the following required parameters
'api-version': "1.6",
};
$.ajax({
// Specify values for path parameters (shown as {...})
url: 'https://graph.windows.net/myorganization/groups?' + $.param(params),
type: 'GET',
})
.done(function(data) {
alert("success");
})
.fail(function() {
alert("error");
});
});
</script>
</body>
</html>
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
// OAuth2 is required to access this API. For more information visit:
// https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks
// Specify values for path parameters (shown as {...})
NSString* path = @"https://graph.windows.net/myorganization/groups";
NSArray* array = @[
@"entities=true",
];
NSString* string = [array componentsJoinedByString:@"&"];
path = [path stringByAppendingFormat:@"?%@", string];
NSLog(@"%@", path);
NSMutableURLRequest* _request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:path]];
[_request setHTTPMethod:@"GET"];
NSURLResponse *response = nil;
NSError *error = nil;
NSData* _connectionData = [NSURLConnection sendSynchronousRequest:_request returningResponse:&response error:&error];
if(nil != error)
{
NSLog(@"Error: %@", error);
}
else
{
NSError* error = nil;
NSMutableDictionary* json = nil;
NSString* dataString = [[NSString alloc] initWithData:_connectionData encoding:NSUTF8StringEncoding];
NSLog(@"%@", dataString);
if(nil != _connectionData)
{
json = [NSJSONSerialization JSONObjectWithData:_connectionData options:NSJSONReadingMutableContainers error:&error];
}
if (error || !json)
{
NSLog(@"Could not parse loaded json with error:%@", error);
}
NSLog(@"%@", json);
_connectionData = nil;
}
[pool drain];
return 0;
}
<?php
// This sample uses the pecl_http package. (for more information: http://pecl.php.net/package/pecl_http)
require_once 'HTTP/Request2.php';
$headers = array(
);
$query_params = array(
// Specify values for the following required parameters
'api-version' => '1.6',
);
$request = new Http_Request2('https://graph.windows.net/myorganization/groups');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setHeader($headers);
// OAuth2 is required to access this API. For more information visit:
// https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks
$url = $request->getUrl();
$url->setQueryVariables($query_params);
try
{
$response = $request->send();
echo $response->getBody();
}
catch (HttpException $ex)
{
echo $ex;
}
?>
########### Python 2.7 #############
import httplib, urllib, base64
# OAuth2 is required to access this API. For more information visit: https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks
headers = {
}
params = urllib.urlencode({
# Specify values for the following required parameters
'api-version': '1.6',
})
try:
conn = httplib.HTTPSConnection('graph.windows.net')
# Specify values for path parameters (shown as {...}) and request body if needed
conn.request("GET", "/myorganization/groups?%s" % params, "", headers)
response = conn.getresponse()
data = response.read()
print(data)
conn.close()
except Exception as e:
print("[Errno {0}] {1}".format(e.errno, e.strerror))
####################################
########### Python 3.2 #############
import http.client, urllib.request, urllib.parse, urllib.error, base64
# OAuth2 is required to access this API. For more information visit: https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks
headers = {
}
params = urllib.parse.urlencode({
# Specify values for the following required parameters
'api-version': '1.6',
})
try:
conn = http.client.HTTPSConnection('graph.windows.net')
# Specify values for path parameters (shown as {...}) and request body if needed
conn.request("GET", "/myorganization/groups?%s" % params, "", headers)
response = conn.getresponse()
data = response.read()
print(data)
conn.close()
except Exception as e:
print("[Errno {0}] {1}".format(e.errno, e.strerror))
####################################
require 'net/http'
uri = URI('https://graph.windows.net/myorganization/groups')
uri.query = URI.encode_www_form({
# Specify values for the following required parameters
'api-version' => '1.6',
})
request = Net::HTTP::Get.new(uri.request_uri)
# OAuth2 is required to access this API. For more information visit: https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks
response = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
http.request(request)
end
puts response.body
Abrufen einer Gruppe
Ruft eine angegebene Gruppe ab. Geben Sie die Gruppe anhand ihrer Objekt-ID (GUID) an.
Bei Erfolg wird das Group-Objekt für die angegebene Gruppe zurückgegeben. Andernfalls enthält der Antworttext Fehlerinformationen. Weitere Informationen zu Fehlern finden Sie unter Error Codes and Error Handling.
GET https://graph.windows.net/myorganization/groups/{object_id}?api-version
Parameters
Parameter | Type | Value | Notes |
---|---|---|---|
URL | |||
object_id | string | f795caea-121d-49c7-8ae6-a95623add8aa | The object ID (GUID) of the target group. |
Query | |||
api-version | string | 1.6 | The version of the Graph API to target. Beginning with version 1.5, the api-version string is represented in major.minor format. Prior releases were represented as date strings: '2013-11-08' and '2013-04-05'. Required. |
GET https://graph.windows.net/myorganization/groups/f795caea-121d-49c7-8ae6-a95623add8aa?api-version=1.6
Response
Status Code:200
Content-Type: application/json
{
"odata.metadata": "https://graph.windows.net/myorganization/$metadata#directoryObjects/Microsoft.DirectoryServices.Group/@Element",
"odata.type": "Microsoft.DirectoryServices.Group",
"objectType": "Group",
"objectId": "b4bda672-1fba-4711-8fb1-5383c40b2c14",
"deletionTimestamp": null,
"description": "Marketing Department",
"dirSyncEnabled": null,
"displayName": "Marketing",
"lastDirSyncTime": null,
"mail": null,
"mailNickname": "BposMailNickName",
"mailEnabled": false,
"onPremisesSecurityIdentifier": null,
"provisioningErrors": [],
"proxyAddresses": [],
"securityEnabled": true
}
Response List
Status Code | Description |
---|---|
200 | OK. Indicates success. The group is returned in the response body. |
Code Samples
using System;
using System.Net.Http.Headers;
using System.Text;
using System.Net.Http;
using System.Web;
namespace CSHttpClientSample
{
static class Program
{
static void Main()
{
MakeRequest();
Console.WriteLine("Hit ENTER to exit...");
Console.ReadLine();
}
static async void MakeRequest()
{
var client = new HttpClient();
var queryString = HttpUtility.ParseQueryString(string.Empty);
/* OAuth2 is required to access this API. For more information visit:
https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks */
// Specify values for the following required parameters
queryString["api-version"] = "1.6";
// Specify values for path parameters (shown as {...})
var uri = "https://graph.windows.net/myorganization/groups/{object_id}?" + queryString;
var response = await client.GetAsync(uri);
if (response.Content != null)
{
var responseString = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseString);
}
}
}
}
@ECHO OFF
REM OAuth2 is required to access this API. For more information visit: https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks
REM Specify values for path parameters (shown as {...}), values for query parameters
curl -v -X GET "https://graph.windows.net/myorganization/groups/{object_id}?api-version=1.6&"^
// This sample uses the Apache HTTP client from HTTP Components (http://hc.apache.org/httpcomponents-client-ga/)
import java.net.URI;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class JavaSample {
public static void main(String[] args) {
HttpClient httpclient = HttpClients.createDefault();
try
{
// OAuth2 is required to access this API. For more information visit:
// https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks
// Specify values for path parameters (shown as {...})
URIBuilder builder = new URIBuilder("https://graph.windows.net/myorganization/groups/{object_id}");
// Specify values for the following required parameters
builder.setParameter("api-version", "1.6");
URI uri = builder.build();
HttpGet request = new HttpGet(uri);
HttpResponse response = httpclient.execute(request);
HttpEntity entity = response.getEntity();
if (entity != null) {
System.out.println(EntityUtils.toString(entity));
}
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
}
}
<!DOCTYPE html>
<html>
<head>
<title>JSSample</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(function() {
// OAuth2 is required to access this API. For more information visit:
// https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks
var params = {
// Specify values for the following required parameters
'api-version': "1.6",
};
$.ajax({
// Specify values for path parameters (shown as {...})
url: 'https://graph.windows.net/myorganization/groups/{object_id}?' + $.param(params),
type: 'GET',
})
.done(function(data) {
alert("success");
})
.fail(function() {
alert("error");
});
});
</script>
</body>
</html>
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
// OAuth2 is required to access this API. For more information visit:
// https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks
// Specify values for path parameters (shown as {...})
NSString* path = @"https://graph.windows.net/myorganization/groups/{object_id}";
NSArray* array = @[
@"entities=true",
];
NSString* string = [array componentsJoinedByString:@"&"];
path = [path stringByAppendingFormat:@"?%@", string];
NSLog(@"%@", path);
NSMutableURLRequest* _request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:path]];
[_request setHTTPMethod:@"GET"];
NSURLResponse *response = nil;
NSError *error = nil;
NSData* _connectionData = [NSURLConnection sendSynchronousRequest:_request returningResponse:&response error:&error];
if(nil != error)
{
NSLog(@"Error: %@", error);
}
else
{
NSError* error = nil;
NSMutableDictionary* json = nil;
NSString* dataString = [[NSString alloc] initWithData:_connectionData encoding:NSUTF8StringEncoding];
NSLog(@"%@", dataString);
if(nil != _connectionData)
{
json = [NSJSONSerialization JSONObjectWithData:_connectionData options:NSJSONReadingMutableContainers error:&error];
}
if (error || !json)
{
NSLog(@"Could not parse loaded json with error:%@", error);
}
NSLog(@"%@", json);
_connectionData = nil;
}
[pool drain];
return 0;
}
<?php
// This sample uses the pecl_http package. (for more information: http://pecl.php.net/package/pecl_http)
require_once 'HTTP/Request2.php';
$headers = array(
);
$query_params = array(
// Specify values for the following required parameters
'api-version' => '1.6',
);
$request = new Http_Request2('https://graph.windows.net/myorganization/groups/{object_id}');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setHeader($headers);
// OAuth2 is required to access this API. For more information visit:
// https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks
$url = $request->getUrl();
$url->setQueryVariables($query_params);
try
{
$response = $request->send();
echo $response->getBody();
}
catch (HttpException $ex)
{
echo $ex;
}
?>
########### Python 2.7 #############
import httplib, urllib, base64
# OAuth2 is required to access this API. For more information visit: https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks
headers = {
}
params = urllib.urlencode({
# Specify values for the following required parameters
'api-version': '1.6',
})
try:
conn = httplib.HTTPSConnection('graph.windows.net')
# Specify values for path parameters (shown as {...}) and request body if needed
conn.request("GET", "/myorganization/groups/{object_id}?%s" % params, "", headers)
response = conn.getresponse()
data = response.read()
print(data)
conn.close()
except Exception as e:
print("[Errno {0}] {1}".format(e.errno, e.strerror))
####################################
########### Python 3.2 #############
import http.client, urllib.request, urllib.parse, urllib.error, base64
# OAuth2 is required to access this API. For more information visit: https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks
headers = {
}
params = urllib.parse.urlencode({
# Specify values for the following required parameters
'api-version': '1.6',
})
try:
conn = http.client.HTTPSConnection('graph.windows.net')
# Specify values for path parameters (shown as {...}) and request body if needed
conn.request("GET", "/myorganization/groups/{object_id}?%s" % params, "", headers)
response = conn.getresponse()
data = response.read()
print(data)
conn.close()
except Exception as e:
print("[Errno {0}] {1}".format(e.errno, e.strerror))
####################################
require 'net/http'
uri = URI('https://graph.windows.net/myorganization/groups/{object_id}')
uri.query = URI.encode_www_form({
# Specify values for the following required parameters
'api-version' => '1.6',
})
request = Net::HTTP::Get.new(uri.request_uri)
# OAuth2 is required to access this API. For more information visit: https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks
response = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
http.request(request)
end
puts response.body
Erstellen einer Gruppe
Fügt dem Mandanten eine Sicherheitsgruppe hinzu. Der Anforderungstext enthält die Eigenschaften der zu erstellenden Gruppe. Sie müssen die erforderlichen Eigenschaften für die Gruppe angeben. Optional können Sie weitere beschreibbare Eigenschaften angeben.
Wichtig: Mit der Graph-API können Sie nur Sicherheitsgruppen erstellen. Sie können keine E-Mail-aktivierten Gruppen oder E-Mail-Verteilergruppen erstellen.
In der folgenden Tabelle werden die Eigenschaften beschrieben, die beim Erstellen einer Gruppe erforderlich sind.
Erforderlicher Parameter | Typ | Beschreibung |
---|---|---|
displayName | string | Der Name, der im Adressbuch für die Gruppe angezeigt werden soll. |
mailEnabled | boolean | Muss false lauten. Der Grund dafür ist, dass mit der Graph-API nur reine Sicherheitsgruppen erstellt werden können. |
mailNickname | string | Der E-Mail-Alias der Gruppe. |
securityEnabled | boolean | Muss true lauten. Der Grund dafür ist, dass mit der Graph-API nur reine Sicherheitsgruppen erstellt werden können. |
Bei Erfolg wird die neu erstellte Group zurückgegeben. Andernfalls enthält der Antworttext Fehlerinformationen. Weitere Informationen zu Fehlern finden Sie unter Error Codes and Error Handling.
POST https://graph.windows.net/myorganization/groups?api-version
Parameters
Parameter | Type | Value | Notes |
---|---|---|---|
Query | |||
api-version | string | 1.6 | The version of the Graph API to target. Beginning with version 1.5, the api-version string is represented in major.minor format. Prior releases were represented as date strings: '2013-11-08' and '2013-04-05'. Required. |
Body | |||
Content-Type: application/json |
{
"displayName": "Example Group",
"mailNickname": "ExampleGroup",
"mailEnabled": false,
"securityEnabled": true
}
Response
Status Code:201
Content-Type: application/json
{
"odata.metadata": "https://graph.windows.net/myorganization/$metadata#directoryObjects/Microsoft.DirectoryServices.Group/@Element",
"odata.type": "Microsoft.DirectoryServices.Group",
"objectType": "Group",
"objectId": "c7ebe5ed-b1d2-4990-88f7-892e4db2e5f3",
"deletionTimestamp": null,
"description": null,
"dirSyncEnabled": null,
"displayName": "Example Group",
"lastDirSyncTime": null,
"mail": null,
"mailNickname": "ExampleGroup",
"mailEnabled": false,
"onPremisesSecurityIdentifier": null,
"provisioningErrors": [],
"proxyAddresses": [],
"securityEnabled": true
}
Response List
Status Code | Description |
---|---|
201 | Created. Indicates success. The new group is returned in the response body. |
Aktualisieren einer Gruppe
Aktualisieren der Eigenschaften einer Gruppe. Geben Sie im Anforderungstext eine beschreibbare Group-Eigenschaft an. Nur die von Ihnen angegebenen Eigenschaften werden geändert.
Wichtig:
- Nur Sicherheitsgruppen und E-Mail-fähige Sicherheitsgruppen können aktualisiert werden.
- Eine Sicherheitsgruppe kann nicht auf eine E-Mail-fähige Sicherheitsgruppe oder E-Mail-Verteilergruppe aktualisiert werden.
Bei Erfolg wird kein Antworttext zurückgegeben. Andernfalls enthält der Antworttext Fehlerinformationen. Weitere Informationen zu Fehlern finden Sie unter Error Codes and Error Handling.
PATCH https://graph.windows.net/myorganization/groups/{object_id}?api-version
Parameters
Parameter | Type | Value | Notes |
---|---|---|---|
URL | |||
object_id | string | c7ebe5ed-b1d2-4990-88f7-892e4db2e5f3 | The object ID (GUID) of the target group. |
Query | |||
api-version | string | 1.6 | The version of the Graph API to target. Beginning with version 1.5, the api-version string is represented in major.minor format. Prior releases were represented as date strings: '2013-11-08' and '2013-04-05'. Required. |
Body | |||
Content-Type: application/json |
{
"description": "Example Security Group"
}
PATCH https://graph.windows.net/myorganization/groups/c7ebe5ed-b1d2-4990-88f7-892e4db2e5f3?api-version=1.6
Response
Status Code:204
Content-Type: application/json
none
Response List
Status Code | Description |
---|---|
204 | No Content. Indicates success. No response body is returned. |
Löschen einer Gruppe
Löscht eine Gruppe. Gelöschte Gruppen können nicht wiederhergestellt werden.
Wichtig: Sie können mit der Graph-API nur Sicherheitsgruppen löschen. Sie können keine E-Mail-aktivierten Gruppen oder E-Mail-Verteilergruppen löschen.
Bei Erfolg wird kein Antworttext zurückgegeben. Andernfalls enthält der Antworttext Fehlerinformationen. Weitere Informationen zu Fehlern finden Sie unter Error Codes and Error Handling.
DELETE https://graph.windows.net/myorganization/groups/{object_id}[?api-version]
Parameters
Parameter | Type | Value | Notes |
---|---|---|---|
URL | |||
object_id | string | c7ebe5ed-b1d2-4990-88f7-892e4db2e5f3 | The object ID (GUID) of the target group. |
Query | |||
api-version | string | 1.6 | Specifies the version of the Graph API to target. Beginning with version 1.5, the api-version string is represented in major.minor format. Prior releases were represented as date strings: '2013-11-08' and '2013-04-05'. Required. |
DELETE https://graph.windows.net/myorganization/groups/c7ebe5ed-b1d2-4990-88f7-892e4db2e5f3?api-version=1.6
Response
Status Code:204
Content-Type: application/json
Response List
none
Status Code | Description |
---|---|
204 | No Content. Indicates success. |
Vorgänge für Gruppennavigationseigenschaften
Die Beziehungen zwischen einer Gruppe und anderen Objekten im Verzeichnis, z.B. den Benutzern, Kontakten und anderen Gruppen, die eventuell Mitglieder der Gruppe sind, werden über Navigationseigenschaften verfügbar gemacht. Durch Angeben der Navigationseigenschaften in den Anforderungen können Sie diese Beziehungen lesen und in einigen Fällen ändern.
Die folgenden Vorgänge werden unterstützt:
- Lesen (GET): alle Gruppen.
- Aktualisieren (POST): Sicherheitsgruppen und E-Mail-fähige Sicherheitsgruppen (nur members und owners).
- Löschen (DELETE): nur Sicherheitsgruppen (nur members und owners).
Abrufen der direkten Mitglieder einer Gruppe
Ruft die direkten Mitglieder einer Gruppe aus der members-Navigationseigenschaft ab.
Bei Erfolg wird eine Sammlung von Links zu den Users, Contacts, ServicePrincipals und anderen Groups zurückgegeben, die direkte Mitglieder der Gruppe sind. Andernfalls enthält der Antworttext Fehlerinformationen. Weitere Informationen zu Fehlern finden Sie unter Error Codes and Error Handling.
GET https://graph.windows.net/myorganization/groups/{object_id}/$links/members?api-version
Parameters
Parameter | Type | Value | Notes |
---|---|---|---|
URL | |||
user_id | string | f795caea-121d-49c7-8ae6-a95623add8aa | The object ID (GUID) of the target group. |
Query | |||
api-version | string | 1.6 | The version of the Graph API to target. Beginning with version 1.5, the api-version string is represented in major.minor format. Prior releases were represented as date strings: '2013-11-08' and '2013-04-05'. Required. |
GET https://graph.windows.net/myorganization/groups/f795caea-121d-49c7-8ae6-a95623add8aa/$links/members?api-version=1.6
Response
Status Code:200
Content-Type: application/json
{
"odata.metadata": "https://graph.windows.net/myorganization/$metadata#directoryObjects/$links/members",
"value": [
{
"url": "https://graph.windows.net/myorganization/directoryObjects/06adda87-a819-4c2e-ab30-127f308468b5/Microsoft.DirectoryServices.User"
},
{
"url": "https://graph.windows.net/myorganization/directoryObjects/225711c4-501c-4e38-b10c-654a4f62ad67/Microsoft.DirectoryServices.User"
},
{
"url": "https://graph.windows.net/myorganization/directoryObjects/2355eace-6b1d-4560-a481-eddabb529537/Microsoft.DirectoryServices.User"
},
{
"url": "https://graph.windows.net/myorganization/directoryObjects/2b0a2e75-f6f5-498a-9f5c-3543e171a5a6/Microsoft.DirectoryServices.User"
}
]
}
Response List
Status Code | Description |
---|---|
200 | OK. Indicates success. A collection of links to the group members is returned. |
Code Samples
using System;
using System.Net.Http.Headers;
using System.Text;
using System.Net.Http;
using System.Web;
namespace CSHttpClientSample
{
static class Program
{
static void Main()
{
MakeRequest();
Console.WriteLine("Hit ENTER to exit...");
Console.ReadLine();
}
static async void MakeRequest()
{
var client = new HttpClient();
var queryString = HttpUtility.ParseQueryString(string.Empty);
/* OAuth2 is required to access this API. For more information visit:
https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks */
// Specify values for the following required parameters
queryString["api-version"] = "1.6";
// Specify values for path parameters (shown as {...})
var uri = "https://graph.windows.net/myorganization/groups/{object_id}/$links/members?" + queryString;
var response = await client.GetAsync(uri);
if (response.Content != null)
{
var responseString = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseString);
}
}
}
}
@ECHO OFF
REM OAuth2 is required to access this API. For more information visit: https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks
REM Specify values for path parameters (shown as {...}), values for query parameters
curl -v -X GET "https://graph.windows.net/myorganization/groups/{object_id}/$links/members?api-version=1.6&"^
// This sample uses the Apache HTTP client from HTTP Components (http://hc.apache.org/httpcomponents-client-ga/)
import java.net.URI;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class JavaSample {
public static void main(String[] args) {
HttpClient httpclient = HttpClients.createDefault();
try
{
// OAuth2 is required to access this API. For more information visit:
// https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks
// Specify values for path parameters (shown as {...})
URIBuilder builder = new URIBuilder("https://graph.windows.net/myorganization/groups/{object_id}/$links/members");
// Specify values for the following required parameters
builder.setParameter("api-version", "1.6");
URI uri = builder.build();
HttpGet request = new HttpGet(uri);
HttpResponse response = httpclient.execute(request);
HttpEntity entity = response.getEntity();
if (entity != null) {
System.out.println(EntityUtils.toString(entity));
}
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
}
}
<!DOCTYPE html>
<html>
<head>
<title>JSSample</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(function() {
// OAuth2 is required to access this API. For more information visit:
// https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks
var params = {
// Specify values for the following required parameters
'api-version': "1.6",
};
$.ajax({
// Specify values for path parameters (shown as {...})
url: 'https://graph.windows.net/myorganization/groups/{object_id}/$links/members?' + $.param(params),
type: 'GET',
})
.done(function(data) {
alert("success");
})
.fail(function() {
alert("error");
});
});
</script>
</body>
</html>
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
// OAuth2 is required to access this API. For more information visit:
// https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks
// Specify values for path parameters (shown as {...})
NSString* path = @"https://graph.windows.net/myorganization/groups/{object_id}/$links/members";
NSArray* array = @[
@"entities=true",
];
NSString* string = [array componentsJoinedByString:@"&"];
path = [path stringByAppendingFormat:@"?%@", string];
NSLog(@"%@", path);
NSMutableURLRequest* _request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:path]];
[_request setHTTPMethod:@"GET"];
NSURLResponse *response = nil;
NSError *error = nil;
NSData* _connectionData = [NSURLConnection sendSynchronousRequest:_request returningResponse:&response error:&error];
if(nil != error)
{
NSLog(@"Error: %@", error);
}
else
{
NSError* error = nil;
NSMutableDictionary* json = nil;
NSString* dataString = [[NSString alloc] initWithData:_connectionData encoding:NSUTF8StringEncoding];
NSLog(@"%@", dataString);
if(nil != _connectionData)
{
json = [NSJSONSerialization JSONObjectWithData:_connectionData options:NSJSONReadingMutableContainers error:&error];
}
if (error || !json)
{
NSLog(@"Could not parse loaded json with error:%@", error);
}
NSLog(@"%@", json);
_connectionData = nil;
}
[pool drain];
return 0;
}
<?php
// This sample uses the pecl_http package. (for more information: http://pecl.php.net/package/pecl_http)
require_once 'HTTP/Request2.php';
$headers = array(
);
$query_params = array(
// Specify values for the following required parameters
'api-version' => '1.6',
);
$request = new Http_Request2('https://graph.windows.net/myorganization/groups/{object_id}/$links/members');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setHeader($headers);
// OAuth2 is required to access this API. For more information visit:
// https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks
$url = $request->getUrl();
$url->setQueryVariables($query_params);
try
{
$response = $request->send();
echo $response->getBody();
}
catch (HttpException $ex)
{
echo $ex;
}
?>
########### Python 2.7 #############
import httplib, urllib, base64
# OAuth2 is required to access this API. For more information visit: https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks
headers = {
}
params = urllib.urlencode({
# Specify values for the following required parameters
'api-version': '1.6',
})
try:
conn = httplib.HTTPSConnection('graph.windows.net')
# Specify values for path parameters (shown as {...}) and request body if needed
conn.request("GET", "/myorganization/groups/{object_id}/$links/members?%s" % params, "", headers)
response = conn.getresponse()
data = response.read()
print(data)
conn.close()
except Exception as e:
print("[Errno {0}] {1}".format(e.errno, e.strerror))
####################################
########### Python 3.2 #############
import http.client, urllib.request, urllib.parse, urllib.error, base64
# OAuth2 is required to access this API. For more information visit: https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks
headers = {
}
params = urllib.parse.urlencode({
# Specify values for the following required parameters
'api-version': '1.6',
})
try:
conn = http.client.HTTPSConnection('graph.windows.net')
# Specify values for path parameters (shown as {...}) and request body if needed
conn.request("GET", "/myorganization/groups/{object_id}/$links/members?%s" % params, "", headers)
response = conn.getresponse()
data = response.read()
print(data)
conn.close()
except Exception as e:
print("[Errno {0}] {1}".format(e.errno, e.strerror))
####################################
require 'net/http'
uri = URI('https://graph.windows.net/myorganization/groups/{object_id}/$links/members')
uri.query = URI.encode_www_form({
# Specify values for the following required parameters
'api-version' => '1.6',
})
request = Net::HTTP::Get.new(uri.request_uri)
# OAuth2 is required to access this API. For more information visit: https://msdn.microsoft.com/en-us/office/office365/howto/common-app-authentication-tasks
response = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
http.request(request)
end
puts response.body
Hinzufügen von Gruppenmitgliedern
Fügt einer Sicherheitsgruppe oder E-Mail-aktivierten Sicherheitsgruppe über die members-Navigationseigenschaft ein Mitglied zu. Sie können Benutzer, Kontakte, Dienstprinzipale oder andere Gruppen hinzufügen. Der Anforderungstext enthält einen einzelnen Link zu dem User, dem Contact, dem ServicePrincipal oder der Group, der bzw. die hinzugefügt werden soll.
Wichtig: Sie können nur Sicherheitsgruppen und E-Mail-aktivierten Sicherheitsgruppen Mitglieder hinzufügen.
Bei Erfolg wird kein Antworttext zurückgegeben. Andernfalls enthält der Antworttext Fehlerinformationen. Weitere Informationen zu Fehlern finden Sie unter Error Codes and Error Handling.
POST https://graph.windows.net/myorganization/groups/{object_id}/$links/members?api-version
Parameters
Parameter | Type | Value | Notes |
---|---|---|---|
URL | |||
user_id | string b4bda672-1fba-4711-8fb1-5383c40b2c14 | The object ID (GUID) of the target group. | |
Query | |||
api-version | string | 1.6 | The version of the Graph API to target. Beginning with version 1.5, the api-version string is represented in major.minor format. Prior releases were represented as date strings: '2013-11-08' and '2013-04-05'. Required. |
Body | |||
Content-Type: application/json |
{
"url": "https://graph.windows.net/myorganization/directoryObjects/3eb6055a-baeb-44d4-a1ea-2fee86d8891b"
}
POST https://graph.windows.net/myorganization/groups/b4bda672-1fba-4711-8fb1-5383c40b2c14/$links/members?api-version=1.6
Response
Status Code:204
Content-Type: application/json
none
Response List
Status Code | Description |
---|---|
204 | No Content. Indicates success. No response body is returned. |
Löschen eines Gruppenmitglieds
Löscht über die members-Navigationseigenschaft ein angegebenes Gruppenmitglied aus einer Sicherheitsrolle. Geben Sie im letzten URL-Segment die Objekt-ID des User, des Contact, des ServicePrincipal oder der Group an, der bzw. die gelöscht werden soll.
Wichtig: Sie können nur Mitglieder reiner Sicherheitsgruppen löschen.
Bei Erfolg wird kein Antworttext zurückgegeben. Andernfalls enthält der Antworttext Fehlerinformationen. Weitere Informationen zu Fehlern finden Sie unter Error Codes and Error Handling.
DELETE https://graph.windows.net/myorganization/groups/{object_id}/$links/members/{member_id}?api-version
Parameters
Parameter | Type | Value | Notes |
---|---|---|---|
URL | |||
user_id | string | b4bda672-1fba-4711-8fb1-5383c40b2c14 | The object ID (GUID) of the target group. |
member_id | string | 3eb6055a-baeb-44d4-a1ea-2fee86d8891b | The object ID (GUID) of the member to be removed. Can be a user, a contact, or a group. |
Query | |||
api-version | string | 1.6 | The version of the Graph API to target. Beginning with version 1.5, the api-version string is represented in major.minor format. Prior releases were represented as date strings: '2013-11-08' and '2013-04-05'. Required. |
DELETE https://graph.windows.net/myorganization/groups/b4bda672-1fba-4711-8fb1-5383c40b2c14/$links/members/3eb6055a-baeb-44d4-a1ea-2fee86d8891b?api-version=1.6
Response
Status Code:204
Content-Type: application/json
none
Response List
Status Code | Description |
---|---|
204 | No Content. Indicates success. No response body is returned. |
Weitere Navigationseigenschaften
Mithilfe der oben gezeigten Muster können Sie weitere Navigationseigenschaften verwenden, die von Gruppen verfügbar gemacht werden. Einige Eigenschaften sind schreibgeschützt, und andere können geändert werden. Weitere Informationen zu Gruppennavigationseigenschaften finden Sie in der Dokumentation für Group.
Funktionen und Aktionen für Gruppen
Sie können für eine Gruppe jede der folgenden Funktionen oder Aktionen aufrufen.
Überprüfen der Mitgliedschaft in einer bestimmten Gruppe (transitiv)
Sie können die isMemberOf-Funktion aufrufen, um die Mitgliedschaft eines Benutzers, Kontakts, Dienstprinzipals oder einer anderen Gruppe in einer bestimmten Gruppe zu überprüfen. Die Überprüfung ist transitiv.
Überprüfen der Mitgliedschaft in einer Liste von Gruppen (transitiv)
Sie können die checkMemberGroups-Funktion aufrufen, um die Mitgliedschaft eines Benutzers, Kontakts, Dienstprinzipals oder einer Gruppe in einer Liste von Gruppen zu überprüfen. Die Überprüfung ist transitiv.
Abrufen aller Gruppenmitgliedschaften (transitiv)
Sie können die getMemberGroups-Funktion aufrufen, um alle Gruppen zurückzugeben, in denen ein Benutzer, ein Kontakt, ein Dienstprinzipal oder eine Gruppe Mitglied ist. Die Überprüfung ist transitiv.
Abrufen aller Gruppen- und Verzeichnisrollenmitgliedschaften (transitiv)
Sie können die getMemberObjects-Funktion aufrufen, um alle Gruppen und Verzeichnisrollen zurückzugeben, in denen ein Benutzer, ein Kontakt, eine Gruppe oder ein Dienstprinzipal Mitglied ist. Die Überprüfung ist transitiv.
Weitere Ressourcen
- Weitere Informationen zu den unterstützten Features, Funktionen und Vorschaufeatures der Graph-API finden Sie in Graph-API-Konzepte.