SharePoint在线OAuth2令牌invalid_scope

时间:2019-06-09 07:53:13

标签: azure sharepoint oauth-2.0 azure-active-directory

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

我遵循了Microsoft的指南,分别是a)grant permissions for the app和b get myself a token

所以我现在a)拥有所有必需的权限: enter image description here 和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

我得到的都是错误:

"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 个答案:

答案 0 :(得分:1)

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

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

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

如果必须使用诸如https://microsoft.sharepoint-df.com/Sites.Read.All之类的特定范围,则可以使用auth code grant flow来获取访问令牌。