SharePoint онлайн-токен OAuth2 invalid_scope - PullRequest
1 голос
/ 09 июня 2019

Я пытаюсь получить токен Bearer для моего зарегистрированного AD-приложения Azure для чтения всех моих сайтов sharepoint через API

Я следовал инструкциям от Microsoft до а) предоставил разрешения для приложения и b получил себе токен

так что я теперь а) имею все необходимые разрешения: enter image description here и б) получил токен при использовании области действия https://graph.microsoft.com/.default

Итак, вот моя проблема: когда я пытаюсь получить токен, скажем, https://microsoft.sharepoint-df.com/Sites.Read.All:

https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token

Body:x-www-form-urlencoded
client_id={appId}
scope=https://microsoft.sharepoint-df.com/Sites.Read.All
client_secret={secret},
grant_type=client_credentials

все, что я получаю взамен, это ошибка:

"error": "invalid_scope",
"error_description": "AADSTS70011: The provided request must include a 'scope' input parameter. The provided value for the input parameter 'scope' is not valid. The scope https://microsoft.sharepoint-df.com/Sites.ReadWrite.All is not valid.\r\nTrace ID: ...\r\nCorrelation ID: ...\r\nTimestamp: 2019-06-09 07:35:21Z",
"error_codes": [
    70011
],

Я что-то не так делаю? Я также попробовал сферу https://{{tenantName}}.sharepoint.com/Sites.Read.All

1 Ответ

1 голос
/ 10 июня 2019

Вы используете поток учетных данных клиента для получения токена доступа. Объем должен быть

https://graph.microsoft.com/.default

Значение, переданное для параметра области в этом запросе, должно быть идентификатор ресурса (URI идентификатора приложения) требуемого ресурса, с суффиксом .default. Для примера Microsoft Graph, значение https://graph.microsoft.com/.default. Это значение говорит Конечная точка платформы идентификации Microsoft, что из всех прямых разрешения приложения, которые вы настроили для своего приложения, конечная точка следует выдать токен для тех, кто связан с ресурсом, который вы хочу использовать.

Если вам необходимо использовать определенную область, например https://microsoft.sharepoint-df.com/Sites.Read.All Вы можете использовать поток предоставления кода авторизации для получения токена доступа.

...