【问题标题】:Azure AD client credentials flow permission grantsAzure AD 客户端凭据流权限授予
【发布时间】:2017-03-24 17:50:28
【问题描述】:

使用 Azure AD 客户端凭据流时,如果客户端应用程序被授予访问所请求资源的权限,oauth2 端点(azure ad 的)是否应该生成不记名令牌?我确信在这种情况下它曾经出错,但我现在看到了不同的行为(现在提供了一个有效的不记名令牌,即使客户端应用程序确实有权访问资源应用程序)。

【问题讨论】:

    标签: oauth-2.0 azure-active-directory


    【解决方案1】:

    在使用客户端凭据流时,我们始终允许令牌成为两个服务之间的问题。这种场景基本上是守护进程服务之间的 S2S。

    这里需要注意的重要一点是,AAD 的内置授权模型利用了 SCPROLE 声明,它们出现在令牌中,可以帮助您的 API 了解用户授予的权限.

    但是,在这种情况下,我们还希望允许您使用自己的授权层。例如,您可以简单地将客户端应用程序的 App ID 列入白名单,以允许它对您的 API 进行 S2S 调用,而令牌中不存在任何 ROLE 声明。此处的令牌发行行为启用了此场景。

    【讨论】:

    • 感谢您的回复。当您说“始终允许颁发令牌”时,您的意思是 Azure AD 的行为没有改变原始 /oauth2/token 端点中的客户端凭据流,对吗?我与一个架构师团队合作,他们回忆起 Azure AD 没有为应用程序无权访问的资源提供不记名令牌。添加和要求角色会起作用,但它会增加一定程度的复杂性,因为我们的大多数 IT 员工不是目录的全局管理员或用户管理员(分配应用程序角色所必需的)。
    • 据我的记忆,我们总是只发布应用程序令牌,与为应用程序选择的权限无关。只有当用户与登录体验交互时,我们才会抛出错误。
    猜你喜欢
    • 2019-12-03
    • 1970-01-01
    • 2019-06-16
    • 2019-12-15
    • 2021-04-10
    • 2017-03-11
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多