【问题标题】:Pre-authorize application in Azure Active Directory: hide scope from other applications在 Azure Active Directory 中预授权应用程序:对其他应用程序隐藏范围
【发布时间】:2019-08-04 16:07:22
【问题描述】:

我有一个 Azure Active Directory 第一方应用程序 X,我想对来自另一个第一方应用程序 Y 的请求进行身份验证。为此,我想使用预授权。

所以我添加了一个新的范围 Z,以及应用程序 ID Y 和权限 Z 的预授权客户端。

我注意到任何第三方应用程序都可以选择其权限。我想阻止任何第三方应用程序使用我添加的新范围。

如何防止第三方应用程序选择某个范围作为权限?

谢谢!

【问题讨论】:

  • 只有在您的应用程序发布为多租户时才真正关心您。因为只有在该结构中,您才会拥有能够看到您并请求访问它的“第 3 方”应用程序。今天真的没有办法做到这一点。您是否真的构建了一个仅需要“内部”使用的特殊权限的多租户应用程序,或者它是别的什么?因为,如果只有您在组织内部拥有更强的控制权 - 您可以指定只有特定用户/组才能访问该应用程序。
  • 另外,如果您只想预授权单个应用程序,您可以在 comming access_token (docs.microsoft.com/en-us/azure/active-directory/develop/… -> appid resp. azp claim) 中轻松检查应用程序 ID。知道 app_id 是“特殊的”并“特别”将其线程化。不理想,但有解决方案。

标签: azure azure-active-directory azureportal azure-authentication


【解决方案1】:

当您添加范围 Z 时,您可以选择只让管理员同意其他应用程序使用它。

但这仍然将访问控制委派给其他人,而不是负责应用程序 X 中范围 Z 的人。要完全控制谁可以为您的应用程序 Y 获取访问令牌,您需要在相应的企业中打开需要用户分配应用程序,并添加应该能够获得令牌的用户和组。

在此处阅读更多信息:https://docs.microsoft.com/sv-se/azure/active-directory/manage-apps/assign-user-or-group-access-portal

【讨论】:

    【解决方案2】:

    不。无法隐藏权限,或仅向特定客户端发布权限。仅当您正在开发 multi-tenant application 而不是单租户时,这应该是一个问题。

    如果您仍有疑虑,我看到的唯一选择是硬编码“特别预授权”应用程序的Application ID。并根据appid各自的azpclaim in the access token做出授权决策。

    【讨论】:

      猜你喜欢
      • 2018-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多