Предоставление appRoleAssignment субъекту-службе

Пространство имен: microsoft.graph

Назначение роли приложения для этого субъекта-службы пользователю, группе или субъекту-службе клиента.

Роли приложений, назначаемые субъектам-службам, также называются разрешениями приложений. Разрешения приложений можно предоставлять непосредственно в назначениях ролей приложений, а также с помощью интерфейса согласия.

Чтобы предоставить назначение роли приложения, нужны три идентификатора:

  • principalId: idпользователя, группы или объекта servicePrincipal клиента, которому назначается роль приложения.
  • resourceId: id ресурса servicePrincipal, определяющий роль приложения.
  • appRoleId: id объекта appRole (определенного в субъекте-службе ресурса) для назначения пользователю, группе или субъекту-службе.

Этот API доступен в следующих национальных облачных развертываниях.

Глобальная служба Правительство США L4 Правительство США L5 (DOD) Китай управляется 21Vianet

Разрешения

Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.

Тип разрешения Разрешения с наименьшими привилегиями Более высокие привилегированные разрешения
Делегированные (рабочая или учебная учетная запись) AppRoleAssignment.ReadWrite.All и Application.Read.All AppRoleAssignment.ReadWrite.All и Directory.Read.All
Делегированные (личная учетная запись Майкрософт) Не поддерживается. Не поддерживается.
Приложение AppRoleAssignment.ReadWrite.All и Application.Read.All AppRoleAssignment.ReadWrite.All и Directory.Read.All

В делегированных сценариях вызывающему пользователю требуется по крайней мере одна из следующих Microsoft Entra ролей.

  • Учетные записи синхронизации каталогов
  • Редактор каталогов
  • Администратор гибридных удостоверений
  • Администратор управления удостоверениями
  • Администратор привилегированных ролей
  • Администратор пользователей
  • Администратор приложения
  • Администратор облачного приложения

HTTP-запрос

Вы можете обратиться к субъекту-службе, используя его идентификатор или appId. Id и appId называются идентификатором объекта и идентификатором приложения (клиента) соответственно в регистрациях приложений в Центр администрирования Microsoft Entra.

POST /servicePrincipals/{id}/appRoleAssignedTo
POST /servicePrincipals(appId='{appId}')/appRoleAssignedTo

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

Имя Описание
Авторизация Bearer {token}. Обязательно. Дополнительные сведения о проверке подлинности и авторизации.
Content-Type application/json. Обязательно.

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

В тексте запроса укажите представление JSON для объекта appRoleAssignment.

Отклик

В случае успеха этот метод возвращает в тексте отклика код отклика 201 Created и объект appRoleAssignment.

Примеры

Запрос

Ниже показан пример запроса.

POST https://graph.microsoft.com/v1.0/servicePrincipals/9028d19c-26a9-4809-8e3f-20ff73e2d75e/appRoleAssignedTo
Content-Type: application/json

{
  "principalId": "33ad69f9-da99-4bed-acd0-3f24235cb296",
  "resourceId": "9028d19c-26a9-4809-8e3f-20ff73e2d75e",
  "appRoleId": "ef7437e6-4f94-4a0a-a110-a439eb2aa8f7"
}

В этом примере {id} и {resourceId-value} оба будут id субъекта-службы ресурса, а {principalId} будет id назначенного пользователя, группы или субъекта-службы клиента.

Отклик

Ниже показан пример отклика.

Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.

HTTP/1.1 201 Created
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#servicePrincipals('9028d19c-26a9-4809-8e3f-20ff73e2d75e')/appRoleAssignedTo/$entity",
  "id": "-WmtM5na7Uus0D8kI1yylpU9Mdo0Pb9OoBJvd3T5eKc",
  "deletedDateTime": null,
  "appRoleId": "ef7437e6-4f94-4a0a-a110-a439eb2aa8f7",
  "createdDateTime": "2021-02-15T16:14:59.8643039Z",
  "principalDisplayName": "Parents of Contoso",
  "principalId": "33ad69f9-da99-4bed-acd0-3f24235cb296",
  "principalType": "Group",
  "resourceDisplayName": "Fabrikam App",
  "resourceId": "9028d19c-26a9-4809-8e3f-20ff73e2d75e"
}