SharePoint 在线 OAuth2 令牌 invalid_scope

sk2*_*ndy 3 sharepoint azure oauth-2.0 azure-active-directory

我正在尝试为我注册的 Azure AD 应用程序获取不记名令牌,以通过 API 读取我的所有共享点网站

我按照微软的指南a)授予应用程序权限并b为自己获取一个令牌

所以我现在 a) 拥有所有必需的权限: 在此输入图像描述 b) 使用范围时收到令牌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
Run Code Online (Sandbox Code Playgroud)

我得到的只是一个错误:

"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
],
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?我也尝试过范围https://{{tenantName}}.sharepoint.com/Sites.Read.All

Ton*_* Ju 5

您正在使用客户端凭据流来获取访问令牌。范围必须是

https://graph.microsoft.com/.default
Run Code Online (Sandbox Code Playgroud)

在此请求中为范围参数传递的值应该是所需资源的资源标识符(应用程序 ID URI),并附加 .default 后缀。对于 Microsoft Graph 示例,该值为https://graph.microsoft.com/.default。此值告诉 Microsoft 标识平台端点,在您为应用程序配置的所有直接应用程序权限中,端点应为与您要使用的资源关联的权限颁发令牌。

如果您必须使用特定范围,例如https://microsoft.sharepoint-df.com/Sites.Read.All您可以使用身份验证代码授予流程来获取访问令牌。