【问题标题】:Identifying and filtering tenants using multi-tenant Azure AD SSO (Open ID Connect)使用多租户 Azure AD SSO (Open ID Connect) 识别和筛选租户
【发布时间】:2021-04-15 16:19:32
【问题描述】:

我们有一个由非 Azure 提供商托管的 SaaS Web 应用程序。目前用户通过内置的个人用户帐户访问它,但我们正在通过 Azure AD (Open ID Connect) 实现多租户 SSO。此处的目的是让每个组织(使用 Azure AD)订阅我们的 Web 应用程序以允许其用户登录。

我现在正在尝试了解如何过滤和匹配订阅组织中的用户。

根据我的阅读,租户 ID 似乎是给定组织的关键标识符,验证令牌发行者是开始限制非订阅组织的地方。看来我可以从声明 (http://schemas.microsoft.com/identity/claims/tenantid) 中获取租户 ID,这意味着我可以在代码中验证租户。所以我的简单方法是存储订阅的租户 ID 列表,并在登录过程中匹配它们。

所以这是我的问题:

  1. 我是否需要每个组织都向我提供他们的租户 ID,以便我可以在登录过程中保留一个匹配的列表?
  2. 如果是,租户 ID 是否属于敏感信息?
  3. 有没有办法在 Azure AD 门户本身中管理订阅组织或租户 ID 的列表,这样我就不需要在代码中对其进行过滤?

提前致谢。

【问题讨论】:

    标签: asp.net azure-active-directory single-sign-on openid-connect multi-tenant


    【解决方案1】:

    Stackoverflow 中有很多与 Azure AD 中的多租户相关的问题,但没有一个涉及租户 ID 管理的问题。对我来说,有一个明显的问题,例如“太好了,我们有超过 1000 个客户使用 Azure AD,并希望在我们的应用程序中使用 SSO。我可以很好地猜测他们的域是什么,但租户 ID 是我需要正确管理访问权限的真正唯一标识符。那么,我如何切实可行地从 1000 多个客户那里获得该标识符?这些信息是否敏感?"

    Microsoft 文档总是对租户 ID 的插图进行编辑,因此您可能认为这是敏感信息,但我发现公开它很容易。您只需将以下 URL 复制到浏览器中,您就会看到租户 ID:

    https://login.microsoftonline.com/[your-tenant's-domain]/.well-known/openid-configuration

    所以对于任何感兴趣的人,这里是我自己问题的答案:

    1. 我是否需要每个组织都向我提供他们的租户 ID,以便我可以在登录过程中保留一个匹配的列表? 是的,最好是因为租户 ID 是唯一的,但是如果您确信租户的公共域与他们在 Azure AD 中使用的域相同,则可以使用上述方法获取租户 ID。

    2. 如果是这样,租户 ID 是否包含任何敏感信息? 鉴于上述查找租户 ID 的简单方法,希望不是!

    3. 有没有办法在 Azure AD 门户本身中管理订阅组织或租户 ID 的列表,这样我就不需要在代码中对其进行过滤? 是的。这称为租户限制,它是一个完美的解决方案,但只有在 Azure AD 中拥有 Premium 1 许可证(等于 $$$)才能使用它(请参阅https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/tenant-restrictions)。

    【讨论】:

      猜你喜欢
      • 2019-11-19
      • 2019-01-08
      • 1970-01-01
      • 2017-07-07
      • 2017-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多