Пространство имен: microsoft.graph
Используйте этот API для добавления участника (пользователя, группы или устройства) в административную единицу. В настоящее время в административную единицу можно добавить только одного участника одновременно.
Этот API доступен в следующих национальных облачных развертываниях.
| Глобальная служба |
Правительство США L4 |
Правительство США L5 (DOD) |
Китай управляется 21Vianet |
| ✅ |
✅ |
✅ |
✅ |
Разрешения
Для вызова этого API требуется одно из следующих разрешений. Дополнительные сведения, включая сведения о том, как выбрать разрешения, см. в статье Разрешения.
Разрешения на добавление существующего пользователя, группы или устройства
| Тип разрешения |
Разрешения (в порядке повышения привилегий) |
| Делегированные (рабочая или учебная учетная запись) |
AdministrativeUnit.ReadWrite.All |
| Делегированные (личная учетная запись Майкрософт) |
Не поддерживается. |
| Приложение |
AdministrativeUnit.ReadWrite.All |
Важно!
Для делегированного доступа с помощью рабочих или учебных учетных записей вошедшего пользователя должен быть участником или ему должна быть назначена поддерживаемая роль Microsoft Entra или настраиваемая роль, которая предоставляет разрешения, необходимые для этой операции.
Администратор привилегированных ролей — это наименее привилегированная роль, поддерживаемая для этой операции.
Разрешения на создание новой группы
| Тип разрешения |
Разрешения (в порядке повышения привилегий) |
| Делегированные (рабочая или учебная учетная запись) |
Group.ReadWrite.All и AdministrativeUnit.Read.All, Directory.ReadWrite.All |
| Делегированные (личная учетная запись Майкрософт) |
Не поддерживается. |
| Приложение |
Group.Create и AdministrativeUnit.Read.All, Group.ReadWrite.All и AdministrativeUnit.Read.All, Directory.ReadWrite.All |
Важно!
Чтобы создать новую группу в административной единице, вызывающему субъекту необходимо назначить по крайней мере одну из следующих Microsoft Entra ролей в область административной единицы:
- Администратор групп
- Администратор пользователей
В сценариях только для приложений, помимо этих ролей, субъекту-службе требуются дополнительные разрешения на чтение каталога. Эти разрешения могут быть предоставлены путем назначения поддерживаемых Microsoft Entra ролей, таких как роль читателей каталогов; или с помощью разрешений приложения Microsoft Graph, которые позволяют читать каталог, например Directory.Read.All.
HTTP-запрос
Следующий запрос добавляет существующего пользователя, группу или устройство в административную единицу.
POST /directory/administrativeUnits/{id}/members/$ref
Следующий запрос создает новую группу в административной единице.
POST /directory/administrativeUnits/{id}/members
Текст запроса
Добавление существующего пользователя, группы или устройства
В тексте запроса укажите идентификатор пользователя, группы, устройства или каталогаObject для добавления. Если административная единица является административной единицей управления с ограниченным доступом ("isMemberManagementRestricted": true), тип группы должен быть Microsoft Entra группы безопасности. Поддерживаются только несоединяемые группы с поддержкой безопасности, без поддержки почты и локальной синхронизации.
Создание новой группы
В следующей таблице показаны свойства ресурса группы , которые необходимо указать при создании группы в административной единице.
| Свойство |
Тип |
Описание |
| displayName |
string |
Имя, которое следует отобразить в адресной книге для группы. Обязательный. |
| description |
строка |
Описание группы. Необязательно. |
| isAssignableToRole |
Логическое |
Задайте значение true, чтобы назначить группу Microsoft Entra роли. Администратор привилегированных ролей — это наименее привилегированная роль для задания значения этого свойства. Необязательно. |
| mailEnabled |
Логический |
Установите значение true для групп, поддерживающих почту. Обязательно. |
| mailNickname |
string |
Почтовый псевдоним для группы. Эти символы не могут использоваться в mailNickName: @()\[]";:.<>,SPACE. Обязательный. |
| securityEnabled |
Логический |
Значение true для групп безопасности, включая группы Microsoft 365. Обязательный. |
| owners |
Коллекция directoryObject |
Это свойство представляет владельцев группы на момент создания. Необязательный параметр. |
| members |
Коллекция directoryObject |
Это свойство представляет участников группы на момент создания. Необязательно. |
| visibility |
String |
Определяет видимость группы Microsoft 365. Возможные значения: Private, Public, HiddenMembershipили пустой (который интерпретируется как Public). |
Отклик
В случае успешного добавления существующего объекта (с помощью $ref) возвращается 204 No Content код ответа. Он не возвращает ничего в теле ответа.
При создании новой группы (без $ref) этот метод возвращает код отклика 201 Created и объект группы в теле отклика. Отклик включает в себя только свойства по умолчанию для группы. Необходимо указать "@odata.type" : "#microsoft.graph.group" строку в тексте запроса, чтобы явно определить нового участника в качестве группы. Текст запроса без правильного @odata.type возвращает сообщение об ошибке 400 Bad Request .
Примеры
Пример 1. Добавление существующего пользователя или группы
Следующий запрос добавляет существующего пользователя или группу в административную единицу.
Запрос
Ниже показан пример запроса.
POST https://graph.microsoft.com/v1.0/directory/administrativeUnits/{id}/members/$ref
Content-type: application/json
{
"@odata.id":"https://graph.microsoft.com/v1.0/groups/{id}"
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new ReferenceCreate
{
OdataId = "https://graph.microsoft.com/v1.0/groups/{id}",
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
await graphClient.Directory.AdministrativeUnits["{administrativeUnit-id}"].Members.Ref.PostAsync(requestBody);
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewReferenceCreate()
odataId := "https://graph.microsoft.com/v1.0/groups/{id}"
requestBody.SetOdataId(&odataId)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
graphClient.Directory().AdministrativeUnits().ByAdministrativeUnitId("administrativeUnit-id").Members().Ref().Post(context.Background(), requestBody, nil)
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
com.microsoft.graph.models.ReferenceCreate referenceCreate = new com.microsoft.graph.models.ReferenceCreate();
referenceCreate.setOdataId("https://graph.microsoft.com/v1.0/groups/{id}");
graphClient.directory().administrativeUnits().byAdministrativeUnitId("{administrativeUnit-id}").members().ref().post(referenceCreate);
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
const options = {
authProvider,
};
const client = Client.init(options);
const directoryObject = {
'@odata.id':'https://graph.microsoft.com/v1.0/groups/{id}'
};
await client.api('/directory/administrativeUnits/{id}/members/$ref')
.post(directoryObject);
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\ReferenceCreate;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new ReferenceCreate();
$requestBody->setOdataId('https://graph.microsoft.com/v1.0/groups/{id}');
$graphServiceClient->directory()->administrativeUnits()->byAdministrativeUnitId('administrativeUnit-id')->members()->ref()->post($requestBody)->wait();
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
Import-Module Microsoft.Graph.Identity.DirectoryManagement
$params = @{
"@odata.id" = "https://graph.microsoft.com/v1.0/groups/{id}"
}
New-MgDirectoryAdministrativeUnitMemberByRef -AdministrativeUnitId $administrativeUnitId -BodyParameter $params
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.reference_create import ReferenceCreate
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = ReferenceCreate(
odata_id = "https://graph.microsoft.com/v1.0/groups/{id}",
)
await graph_client.directory.administrative_units.by_administrative_unit_id('administrativeUnit-id').members.ref.post(request_body)
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
В тексте запроса укажите id объект пользователя или группы , который требуется добавить.
Отклик
Ниже показан пример отклика.
HTTP/1.1 204 No Content
Пример 2. Создание группы
В следующем примере создается новая группа в административной единице. Необходимо указать "@odata.type" : "#microsoft.graph.group" строку в тексте запроса, чтобы явно определить нового участника в качестве группы. Текст запроса без правильного @odata.type возвращает сообщение об ошибке 400 Bad Request .
Запрос
Ниже показан пример запроса.
POST https://graph.microsoft.com/v1.0/directory/administrativeUnits/{id}/members
Content-type: application/json
{
"@odata.type": "#microsoft.graph.group",
"description": "Self help community for golf",
"displayName": "Golf Assist",
"groupTypes": [
"Unified"
],
"mailEnabled": true,
"mailNickname": "golfassist",
"securityEnabled": false
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new Group
{
OdataType = "#microsoft.graph.group",
Description = "Self help community for golf",
DisplayName = "Golf Assist",
GroupTypes = new List<string>
{
"Unified",
},
MailEnabled = true,
MailNickname = "golfassist",
SecurityEnabled = false,
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Directory.AdministrativeUnits["{administrativeUnit-id}"].Members.PostAsync(requestBody);
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewDirectoryObject()
description := "Self help community for golf"
requestBody.SetDescription(&description)
displayName := "Golf Assist"
requestBody.SetDisplayName(&displayName)
groupTypes := []string {
"Unified",
}
requestBody.SetGroupTypes(groupTypes)
mailEnabled := true
requestBody.SetMailEnabled(&mailEnabled)
mailNickname := "golfassist"
requestBody.SetMailNickname(&mailNickname)
securityEnabled := false
requestBody.SetSecurityEnabled(&securityEnabled)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
members, err := graphClient.Directory().AdministrativeUnits().ByAdministrativeUnitId("administrativeUnit-id").Members().Post(context.Background(), requestBody, nil)
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Group directoryObject = new Group();
directoryObject.setOdataType("#microsoft.graph.group");
directoryObject.setDescription("Self help community for golf");
directoryObject.setDisplayName("Golf Assist");
LinkedList<String> groupTypes = new LinkedList<String>();
groupTypes.add("Unified");
directoryObject.setGroupTypes(groupTypes);
directoryObject.setMailEnabled(true);
directoryObject.setMailNickname("golfassist");
directoryObject.setSecurityEnabled(false);
DirectoryObject result = graphClient.directory().administrativeUnits().byAdministrativeUnitId("{administrativeUnit-id}").members().post(directoryObject);
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
const options = {
authProvider,
};
const client = Client.init(options);
const directoryObject = {
'@odata.type': '#microsoft.graph.group',
description: 'Self help community for golf',
displayName: 'Golf Assist',
groupTypes: [
'Unified'
],
mailEnabled: true,
mailNickname: 'golfassist',
securityEnabled: false
};
await client.api('/directory/administrativeUnits/{id}/members')
.post(directoryObject);
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\Group;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new Group();
$requestBody->setOdataType('#microsoft.graph.group');
$requestBody->setDescription('Self help community for golf');
$requestBody->setDisplayName('Golf Assist');
$requestBody->setGroupTypes(['Unified', ]);
$requestBody->setMailEnabled(true);
$requestBody->setMailNickname('golfassist');
$requestBody->setSecurityEnabled(false);
$result = $graphServiceClient->directory()->administrativeUnits()->byAdministrativeUnitId('administrativeUnit-id')->members()->post($requestBody)->wait();
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
Import-Module Microsoft.Graph.Identity.DirectoryManagement
$params = @{
"@odata.type" = "#microsoft.graph.group"
description = "Self help community for golf"
displayName = "Golf Assist"
groupTypes = @(
"Unified"
)
mailEnabled = $true
mailNickname = "golfassist"
securityEnabled = $false
}
New-MgDirectoryAdministrativeUnitMember -AdministrativeUnitId $administrativeUnitId -BodyParameter $params
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.group import Group
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = Group(
odata_type = "#microsoft.graph.group",
description = "Self help community for golf",
display_name = "Golf Assist",
group_types = [
"Unified",
],
mail_enabled = True,
mail_nickname = "golfassist",
security_enabled = False,
)
result = await graph_client.directory.administrative_units.by_administrative_unit_id('administrativeUnit-id').members.post(request_body)
Подробнее о том, как добавить SDK в свой проект и создать экземпляр authProvider, см. в документации по SDK.
В тексте запроса укажите свойства объекта группы , который требуется добавить.
Отклик
Ниже показан пример отклика.
Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.
HTTP/1.1 201 Created
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups/$entity",
"id": "45b7d2e7-b882-4a80-ba97-10b7a63b8fa4",
"deletedDateTime": null,
"classification": null,
"createdDateTime": "2018-12-22T02:21:05Z",
"description": "Self help community for golf",
"displayName": "Golf Assist",
"expirationDateTime": null,
"groupTypes": [
"Unified"
],
"isAssignableToRole": null,
"mail": "golfassist@contoso.com",
"mailEnabled": true,
"mailNickname": "golfassist",
"membershipRule": null,
"membershipRuleProcessingState": null,
"onPremisesLastSyncDateTime": null,
"onPremisesSecurityIdentifier": null,
"onPremisesSyncEnabled": null,
"preferredDataLocation": "CAN",
"preferredLanguage": null,
"proxyAddresses": [
"SMTP:golfassist@contoso.com"
],
"renewedDateTime": "2018-12-22T02:21:05Z",
"resourceBehaviorOptions": [],
"resourceProvisioningOptions": [],
"securityEnabled": false,
"securityIdentifier": "S-1-12-1-1753967289-1089268234-832641959-555555555",
"theme": null,
"visibility": "Public",
"onPremisesProvisioningErrors": []
}