面向 SaaS 应用程序用户的 Azure AD OpenId Connect

Azure AD OpenId Connect for users of SaaS Application

我正在将“内部部署 WinForms 应用程序”迁移到用 ASP.NET CORE 编写的“多租户 SaaS 应用程序”。 SaaS 应用程序将由多个租户使用,租户看不到彼此的数据。在我们的遗留产品中,用户配置文件和凭据存储在每个客户的数据库中,客户可以 add/remove 系统中的用户,因为他们认为合适。

在 Web 环境中,通过将用户配置文件和凭据与应用程序数据本身分开,身份提供者似乎是建议的途径。但是,我们的大部分数据都与 UserId 相关联,因此了解哪个 USER 创建了记录很重要。

现在,在 Azure AD 中,设置会将所有客户的所有用户放入 1 个 Azure AD。我对此没有特别的问题,但我如何知道用户帐户属于哪个客户?

例如,客户 ACME 有 2 个用户:Bob 和 Bill。我的另一个客户 FOOBAR 有 2 个用户:Jean 和 Jack。如果 Jean 针对 Azure AD 进行身份验证,我需要知道 FOOBAR 的唯一 ID,以便我可以筛选 Web 应用程序中的数据。当 Azure AD 从 OpenId Connect 发回 IDToken 时,声明中的 TenantId 是我公司的 TenantId,而不是 CUSTOMER 的租户标识符。

如果我们要部署多租户 SaaS 应用程序并使用 Azure AD 进行身份验证并仍然控制哪些用户可以访问该应用程序,建议的设置是什么? Azure 活动目录 B2B?

您使用 security groups (one per customer) and Configure group claims 对用户进行分组,以便将他们放入令牌中。