Поделиться через


Предоставление 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 или настраиваемая роль с разрешением поддерживаемой роли. Для этой операции поддерживаются следующие наименее привилегированные роли:

  • Учетные записи синхронизации каталогов — для служб облачной синхронизации Microsoft Entra Connect и 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"
}