Я пытаюсь получить токен Bearer для моего зарегистрированного AD-приложения Azure для чтения всех моих сайтов sharepoint через API
Я следовал инструкциям от Microsoft до а) предоставил разрешения для приложения и b получил себе токен
так что я теперь а) имею все необходимые разрешения: и б) получил токен при использовании области действия https://graph.microsoft.com/.default
https://graph.microsoft.com/.default
Итак, вот моя проблема: когда я пытаюсь получить токен, скажем, https://microsoft.sharepoint-df.com/Sites.Read.All:
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
https://{{tenantName}}.sharepoint.com/Sites.Read.All
Вы используете поток учетных данных клиента для получения токена доступа. Объем должен быть
Значение, переданное для параметра области в этом запросе, должно быть идентификатор ресурса (URI идентификатора приложения) требуемого ресурса, с суффиксом .default. Для примера Microsoft Graph, значение https://graph.microsoft.com/.default. Это значение говорит Конечная точка платформы идентификации Microsoft, что из всех прямых разрешения приложения, которые вы настроили для своего приложения, конечная точка следует выдать токен для тех, кто связан с ресурсом, который вы хочу использовать.
Если вам необходимо использовать определенную область, например https://microsoft.sharepoint-df.com/Sites.Read.All Вы можете использовать поток предоставления кода авторизации для получения токена доступа.