Oauth 2.0 Azure AD访问令牌中的scp声明

Oauth 2.0 Azure AD访问令牌中的scp声明,oauth-2.0,azure-active-directory,Oauth 2.0,Azure Active Directory,我正在通过Azure广告和OAuth2开发一个通信流。因此,我正在测试两个流: - Credentials Flow - Authorization Code Flow 一切正常,除了一件事:访问令牌中的范围/权限(scp) 当我请求使用授权代码流的访问令牌时,我有很多声明,其中一项对我的业务非常重要:scp。此声明在Azure门户中配置了所有作用域 但是,当我使用客户端凭据流时,这个“scp”声明不会返回,并且我无法检查生成的访问令牌是否可以访问我的资源服务器中的端点 你知道如何解决这个

我正在通过Azure广告和OAuth2开发一个通信流。因此,我正在测试两个流:

 - Credentials Flow
 - Authorization Code Flow
一切正常,除了一件事:访问令牌中的范围/权限(scp)

当我请求使用授权代码流的访问令牌时,我有很多声明,其中一项对我的业务非常重要:scp。此声明在Azure门户中配置了所有作用域

但是,当我使用客户端凭据流时,这个“scp”声明不会返回,并且我无法检查生成的访问令牌是否可以访问我的资源服务器中的端点


你知道如何解决这个问题吗?

看看这两个链接。看起来您在客户端凭据流中是正确的,scp声明不可见

的答案很好地解释了为什么它不起作用

由于没有重定向(不涉及用户),因此不会返回scp声明。问题的解决方案是使用应用程序角色


当您使用client_凭证流获取OAuth2令牌时,请确保您正在传递resource参数,并使用将角色添加到清单中的应用程序的appId填充它

请确认您使用的是AAD v1.0还是v2.0端点。如果您使用的是v2.0端点,则范围将返回。检查此文档-我正在尝试返回范围中的组信息,您知道我如何才能做到吗?