Создание oAuth2PermissionGrant (делегированное предоставление разрешений)
Пространство имен: microsoft.graph
Важно!
API версии /beta
в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.
Создайте делегированное разрешение, представленное объектом oAuth2PermissionGrant .
Делегированное разрешение разрешает субъекту-службе клиента (представляющего клиентское приложение) доступ к субъекту-службе ресурсов (представляющего API) от имени вошедшего пользователя на уровень доступа, ограниченный предоставленными делегированными разрешениями.
Этот API доступен в следующих национальных облачных развертываниях.
Глобальная служба | Правительство США L4 | Правительство США L5 (DOD) | Китай управляется 21Vianet |
---|---|---|---|
✅ | ✅ | ✅ | ✅ |
Разрешения
Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.
Тип разрешения | Разрешения с наименьшими привилегиями | Более высокие привилегированные разрешения |
---|---|---|
Делегированные (рабочая или учебная учетная запись) | DelegatedPermissionGrant.ReadWrite.All | Directory.ReadWrite.All |
Делегированные (личная учетная запись Майкрософт) | Не поддерживается. | Не поддерживается. |
Приложение | DelegatedPermissionGrant.ReadWrite.All | Directory.ReadWrite.All |
Важно!
В делегированных сценариях с рабочими или учебными учетными записями вошедшему пользователю должна быть назначена поддерживаемая роль Microsoft Entra или настраиваемая роль с разрешением поддерживаемой роли. Для этой операции поддерживаются следующие наименее привилегированные роли:
- Администратор приложений
- Разработчик приложения
- Администратор облачных приложений
- Запись каталогов
- Администратор привилегированных ролей
- Администратор пользователей
HTTP-запрос
POST /oauth2PermissionGrants
Заголовки запросов
Имя | Тип | Описание |
---|---|---|
Authorization | string | Bearer {token}. Обязательно. Дополнительные сведения о проверке подлинности и авторизации. |
Текст запроса
В тексте запроса укажите представление объекта oAuth2PermissionGrant в формате JSON.
В следующей таблице перечислены свойства, необходимые при создании oAuth2PermissionGrant.
Свойство | Тип | Описание |
---|---|---|
clientId | String | Идентификатор объекта (неappId) субъекта-службы клиента для приложения, которому разрешено действовать от имени вошедшего пользователя при доступе к API. Обязательно. |
consentType | String | Указывает, предоставлена ли авторизация клиентскому приложению для олицетворения всех пользователей или только определенного пользователя. AllPrincipals указывает авторизацию для олицетворения всех пользователей. Участник указывает авторизацию для олицетворения определенного пользователя. Администратор может предоставить согласие от имени всех пользователей. В некоторых случаях пользователи, не являющиеся администраторами, могут иметь право давать согласие от их имени для некоторых делегированных разрешений. Обязательно. |
principalId | String | Идентификаторпользователя, от имени которого клиент имеет право на доступ к ресурсу, если параметр consentType имеет значение Principal. Если параметр consentType имеет значение AllPrincipals , это значение равно NULL. Требуется, если параметр consentType имеет значение Principal. |
resourceId | String | Идентификаторсубъекта-службы ресурсов, доступ к которому авторизован. Он определяет API, который клиент имеет право на попытку вызова от имени вошедшего пользователя. |
область | String | Разделенный пробелами список значений утверждений для делегированных разрешений, которые должны быть включены в маркеры доступа для приложения ресурсов (API). Например, openid User.Read GroupMember.Read.All . Каждое значение утверждения должно соответствовать полю значения одного из делегированных разрешений, определенных API, перечисленных в свойстве publishedPermissionScopesсубъекта-службы ресурсов. Длина не должна превышать 3850 символов. |
startTime | DateTimeOffset | В настоящее время значение времени начала игнорируется, но требуется значение. Обязательно. |
expiryTime | DateTimeOffset | В настоящее время значение времени окончания игнорируется, но обязательное значение. Обязательно. |
Отклик
В случае успешного выполнения этот метод возвращает код ответа серии 200 и новый объект oAuth2PermissionGrant в теле отклика.
Пример
Запрос
POST https://graph.microsoft.com/beta/oauth2PermissionGrants
Content-Type: application/json
{
"clientId": "ef969797-201d-4f6b-960c-e9ed5f31dab5",
"consentType": "AllPrincipals",
"resourceId": "943603e4-e787-4fe9-93d1-e30f749aae39",
"scope": "DelegatedPermissionGrant.ReadWrite.All",
"startTime": "2022-03-17T00:00:00Z",
"expiryTime": "2023-03-17T00:00:00Z"
}
Отклик
HTTP/1.1 201 Created
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#oauth2PermissionGrants/$entity",
"clientId": "ef969797-201d-4f6b-960c-e9ed5f31dab5",
"consentType": "AllPrincipals",
"expiryTime": "2023-03-17T00:00:00Z",
"id": "l5eW7x0ga0-WDOntXzHateQDNpSH5-lPk9HjD3Sarjk",
"principalId": null,
"resourceId": "943603e4-e787-4fe9-93d1-e30f749aae39",
"scope": "DelegatedPermissionGrant.ReadWrite.All",
"startTime": "2022-03-17T00:00:00Z"
}