Настройка ролей пользователя для клиента

В учетной записи клиента есть набор ролей каталога. Учетные записи пользователей можно назначить этим ролям.

Предварительные условия

  • Учетные данные, описанные в статье о проверке подлинности в Центре партнеров. Этот сценарий поддерживает только проверку подлинности с использованием учетных данных приложений и пользователей.

  • Идентификатор клиента (customer-tenant-id). Если вы не знаете идентификатор клиента, его можно найти в Центре партнеров, выбрав рабочую область "Клиенты" , затем клиент из списка клиентов, а затем учетная запись. На странице "Учетная запись клиента" найдите идентификатор Майкрософт в разделе "Сведения о учетной записи клиента". Идентификатор Майкрософт совпадает с идентификатором клиента (customer-tenant-id).

Роли GDAP

Вам понадобится следующая роль GDAP:

  • Администратор привилегированных ролей

C#

Чтобы назначить роль каталога пользователю клиента, создайте новый UserMember с соответствующими сведениями о пользователе. Затем вызовите метод IAggregatePartner.Customers.ById с указанным идентификатором клиента, чтобы определить клиента. Затем используйте метод DirectoryRoles.ById с идентификатором роли каталога, чтобы указать роль. Затем перейдите к коллекции UserMembers и используйте метод Create , чтобы добавить нового члена пользователя в коллекцию участников пользователя, назначенных этой роли.

// UserMember createdUser;
// IAggregatePartner partnerOperations;
// Customer selectedCustomer;
// IDirectoryRole selectedRole;

// Create the new user member.
UserMember userMemberToAdd = new UserMember()
{
    UserPrincipalName = createdUser.UserPrincipalName,
    DisplayName = createdUser.DisplayName,
    Id = createdUser.Id
};

// Add the new user member to the role.
var userMemberAdded = partnerOperations.Customers.ById(selectedCustomer.Id).DirectoryRoles.ById(selectedRole.Id).UserMembers.Create(userMemberToAdd);

Пример: тестовое приложение консоли. Проект: класс примеров пакета SDK Центра партнеров: AddUserMemberToDirectoryRole.cs

Запрос REST

Синтаксис запроса

Метод URI запроса
POST {baseURL}/v1/customers/{customer-tenant-id}/directoryroles/{role-ID}/usermembers HTTP/1.1

Параметр универсального кода ресурса

Используйте следующие параметры URI для определения нужного клиента и роли. Чтобы определить пользователя, которому нужно назначить роль, укажите сведения об идентификации в тексте запроса.

Имя Тип Обязательное поле Description
customer-tenant-id guid Y Это значение — идентификатор GUID, отформатированный клиентом клиента , который позволяет торговому посреднику фильтровать результаты для данного клиента, который принадлежит торговому посреднику.
role-id guid Y Это значение представляет собой идентификатор идентификатора роли в формате GUID, который определяет роль, которую нужно назначить пользователю.

Заголовки запросов

Дополнительные сведения см. в статье о заголовках REST Центра партнеров.

Текст запроса

В этой таблице описываются необходимые свойства в тексте запроса.

Имя Тип Обязательное поле Описание
Id string Y Идентификатор пользователя, добавляемого в роль.
DisplayName string Y Понятное отображаемое имя пользователя.
UserPrincipalName string Y Имя субъекта-пользователя.
Атрибуты object Y Содержит ObjectType:"UserMember"

Пример запроса

POST https://api.partnercenter.microsoft.com/v1/customers/4d3cf487-70f4-4e1e-9ff1-b2bfce8d9f04/directoryroles/f023fd81-a637-4b56-95fd-791ac0226033/usermembers HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: a56cb2e5-a156-4f68-9155-57ffe2b93d18
MS-CorrelationId: 90bda268-7929-4ad6-be01-89c5af5fc504
X-Locale: en-US
Content-Type: application/json
Host: api.partnercenter.microsoft.com
Content-Length: 180
Expect: 100-continue

{
    "Id": "a9ef48bb-8758-4590-a312-d4a47bfaded4",
    "DisplayName": "Daniel Tsai",
    "UserPrincipalName": "Daniel@dtdemocspcustomer005.onmicrosoft.com",
    "Attributes": {
        "ObjectType": "UserMember"
    }
}

Ответ REST

Этот метод возвращает учетную запись пользователя с идентификатором роли, присоединенным при успешном назначении роли.

Коды успешного выполнения и ошибок в ответе

Каждый ответ сопровождается кодом состояния HTTP, обозначающим успешное или неудачное выполнение, и дополнительными сведениями для отладки. Используйте средство трассировки сети, чтобы просматривать этот код, тип ошибки и дополнительные параметры. Полный список ответов есть в статье Коды ошибок REST в Центре партнеров.

Пример ответа

HTTP/1.1 201 Created
Content-Length: 231
Content-Type: application/json; charset=utf-8
MS-CorrelationId: 90bda268-7929-4ad6-be01-89c5af5fc504
MS-RequestId: a56cb2e5-a156-4f68-9155-57ffe2b93d18
MS-CV: aia94+gnrEeQqkGr.0
MS-ServerId: 101112202
Date: Tue, 20 Dec 2016 23:36:55 GMT

{
    "displayName": "Daniel Tsai",
    "userPrincipalName": "Daniel@dtdemocspcustomer005.onmicrosoft.com",
    "roleId": "f023fd81-a637-4b56-95fd-791ac0226033",
    "id": "a9ef48bb-8758-4590-a312-d4a47bfaded4",
    "attributes": {
        "objectType": "UserMember"
    }
}