我正在尝试构建一个使用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/令牌中返回的内容,我发现它不包含任何角色,所以我想知道这是不是问题。
答案 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 / ...路由的请求也可能需要其他权限。
建议遵循以下参考文献中提到的步骤: