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

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

Важно!

API версии /beta в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.

Назначьте роль приложения субъекту-службе клиента.

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

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

  • principalId: id субъекта-службы клиента, которой нужно назначить роль приложения.
  • resourceId: id ресурса servicePrincipal (API), в которых определена роль приложения (разрешение приложения).
  • 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}/appRoleAssignments
POST /servicePrincipals(appId='{appId}')/appRoleAssignments

Примечание.

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

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

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

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

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

Отклик

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

Примеры

Запрос

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

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

{
  "principalId": "9028d19c-26a9-4809-8e3f-20ff73e2d75e",
  "resourceId": "8fce32da-1246-437b-99cd-76d1d4677bd5",
  "appRoleId": "498476ce-e0fe-48b0-b801-37ba7e2685c6"
}

В этом примере обратите внимание, что значение, используемое в качестве ИД субъекта службы в URL-адресе запроса (9028d19c-26a9-4809-8e3f-20ff73e2d75e), совпадает со свойством principalId в тексте. Значение resourceId является ИД для субъекта-службы ресурса (API).

Отклик

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

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

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

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#appRoleAssignments/$entity",
  "id": "2jLOj0YSe0OZzXbR1Gd71fDqFUrPM1xIgUfvWBHJ9n0",
  "creationTimestamp": "2021-02-15T16:39:38.2975029Z",
  "appRoleId": "498476ce-e0fe-48b0-b801-37ba7e2685c6",
  "principalDisplayName": "Fabrikam App",
  "principalId": "9028d19c-26a9-4809-8e3f-20ff73e2d75e",
  "principalType": "ServicePrincipal",
  "resourceDisplayName": "Microsoft Graph",
  "resourceId": "8fce32da-1246-437b-99cd-76d1d4677bd5"
}