Для учетных данных клиента (т. Е. Для получения токена без пользователя) вам нужно передать https://graph.microsoft.com/.default
в качестве scope
.
Разрешения, предоставляемые https://graph.microsoft.com/.default
, представляют собой «Права приложения», которые вы указали при регистрации приложения на портале:
Один разВы добавили все «Права доступа к приложениям», необходимые для вашего приложения, вам необходимо «Предоставить согласие» для этих областей в вашем клиенте (это кнопка внизу вкладки разрешений API.
Однаждыони у вас есть, вам нужно выдать POST
для конечной точки /token
(разрывы строк просто для удобства чтения, это должна быть одна строка):
POST https://login.microsoftonline.com/{{tenantDomain}}/oauth2/token
Content-Type: application/x-www-form-urlencoded
client_id={your-app-id}
&scope=https://graph.microsoft.com/.default
&client_secret={your-client-secret}
&grant_type=client_credentials
Это вернет вам что-тонапример:
{
"token_type": "Bearer",
"expires_in": "3600",
"ext_expires_in": "3600",
"expires_on": "1554431330",
"not_before": "1554427430",
"resource": "00000003-0000-0000-c000-000000000000",
"access_token": "eyJ0eXAiOiJKV1QiLCJub25jZS..."
}
Когда вы вызываете в Graph, вам нужно установить заголовок Authorization
на token_type access_token
. Поэтому вызов /users
будет выглядеть так:
GET https://graph.microsoft.com/v1.0/users
Authorization:"Bearer eyJ0eXAiOiJKV1QiLCJub25jZS..."
Host:"graph.microsoft.com"
Accept:"application/json"