代码之家  ›  专栏  ›  技术社区  ›  Ronaldo Lanhellas

Azure AD aces令牌中的SCP声明

  •  0
  • Ronaldo Lanhellas  · 技术社区  · 6 年前

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

     - Credentials Flow
     - Authorization Code Flow
    

    除了一件事:访问令牌中的作用域/权限(SCP),一切都可以正常工作。

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

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

    知道怎么解决这个问题吗?

    2 回复  |  直到 6 年前
        1
  •  0
  •   srini    6 年前

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

    Getting the access token for Microsoft Graph API

    https://joonasw.net/view/defining-permissions-and-roles-in-aad

        2
  •  1
  •   Mathieu Diepman    6 年前

    答案是 this question 很好地解释了为什么它不起作用。

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

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