我正在通过带有OAuth2的Azure AD开发通信流。因此,我正在测试两个流程:
0
一切正常,但以下一项除外:访问令牌中的作用域/权限(scp)。
当我请求带有授权码流的访问令牌时,我有很多主张,并且对我的业务非常重要: scp 。此声明具有在Azure门户中配置的所有范围。
但是当我使用客户端凭据流时,此“ scp”声明不会返回,并且我无法检查生成的此访问令牌是否可以访问我的资源服务器中的端点。
有什么办法解决这个问题吗?
答案 0 :(得分:1)
this question的答案很好地解释了为什么它不起作用。
由于没有重定向(不涉及用户),因此不会返回scp声明。解决您问题的方法是使用应用程序角色。
使用client_credentials流获取OAuth2令牌时,请确保传递了resource参数,并使用将角色添加到清单的应用程序的appId填充它。
答案 1 :(得分:0)
看看这两个链接。看起来您在客户端凭证流scp声明中正确无误
Getting the access token for Microsoft Graph API
https://joonasw.net/view/defining-permissions-and-roles-in-aad