scp或角色声明需要存在于令牌中

时间:2018-01-19 10:17:41

标签: microsoft-graph onenote

我正在尝试构建一个使用Microsoft Graph自动创建和读取存储在SharePoint 365中的OneNotes中的页面的应用程序。

只要我已登录,我就可以使用Graph Explorer成功完成此操作,但无法在Postman中使用持票人令牌使其工作

我得到的错误是: 令牌

中需要存在scp或角色声明

我使用以下方法成功获取了访问令牌:

https://login.microsoftonline.com/common/oauth2/v2.0/token

并传入grant_type,client_id,client_secret,code,redirect_uri和scope

然后我执行以下调用,标题中包含持有者令牌:

https://graph.microsoft.com/v1.0/sites

返回以下内容:

{
    "error": {
        "code": "AccessDenied",
        "message": "Either scp or roles claim need to be present in the token.",
        "innerError": {
            "request-id": "fa442c72-4ffe-493b-a33a-8e9e78c94f09",
            "date": "2018-01-19T09:56:34"
        }
    }
}

我已根据以下设置了图表权限。我也尝试过使用相同结果配置所有Notes权限 Graph Permissions Image

我找到一个帖子说检查http://jwt.calebb.net/令牌中返回的内容,我发现它不包含任何角色,所以我想知道这是不是问题。

2 个答案:

答案 0 :(得分:1)

获取令牌时,您可能需要在网址中说明您的租户:

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

感谢Matsuaki Tsuyoshi,如下所示:How to use Application Permission with Azure AD v2

  

您的应用程序可以使用以下HTTP请求获取访问令牌   (OAuth的)。请注意,您无法使用   https://login.microsoftonline.com/common/oauth2/v2.0/token(是的   常用的)获取令牌。相反,你必须使用   https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token,哪个   识别特定租户。

答案 1 :(得分:0)

您提到的电话" https://graph.microsoft.com/v1.0/sites"无效。 除了Notes.ReadWrite之外,对〜/ sites / ...路由的请求也可能需要其他权限。

建议遵循以下参考文献中提到的步骤:

  1. https://developer.microsoft.com/en-us/graph/docs/concepts/permissions_reference
  2. https://developer.microsoft.com/en-us/graph/docs/concepts/auth_v2_user
  3. https://developer.microsoft.com/en-us/graph/docs/concepts/auth_v2_service
相关问题