首页 > 解决方案 > Azure AD 访问令牌中的 scp 声明

问题描述

我正在使用 OAuth2 开发通过 Azure AD 的通信流。所以,我正在测试两个流程:

 - Credentials Flow
 - Authorization Code Flow

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

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

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

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

标签: oauth-2.0azure-active-directory

解决方案


这个问题的答案 很好地解释了为什么它不起作用。

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

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


推荐阅读