如何集成位于不同 Azure B2c 租户中的两个 WebApps 以实现单点登录体验?

How to Integrate two WebApps residing in different Azure B2c tenant for single Sign on Experience?

有一个在 Azure B2C 租户 (tenant1) 中注册的 WebApp (App1) 和另一个在不同订阅下的另一个 Azure B2C 租户 (tenant2) 中注册的 WebApp(App2)。这些应用程序由不同的团队开发,但可以有相同的客户使用他们的应用程序。通常,客户是将拥有自己的域和使用这些应用程序的员工的组织。 一旦用户登录到 App1,在某个页面上应该有一个按钮,点击后应该指向 App2 的某个页面。用户不必使用 App2 的凭据再次登录。此用户列在 tenant1 上。 tenant2 可以拥有相同的用户,但具有不同的 objectId 以及其目录下列出的其他用户。

是否可以为App1到App2应用的用户提供这种场景下的单点登录体验?

假设可能,我正在尝试在租户 2 中使用 Azure 身份体验框架的自定义策略,以允许来自 app1 的用户登录到 app2。我使用 Starter Pack 作为它的基础。到目前为止,这是有效的,来自 App1 的用户能够登录到 App2。不过问题不大

  1. 当前,当用户单击按钮从 App1 导航到 App2 时,he/she 将重定向到登录页面以使用 App1 凭据再次进行身份验证。我需要能够绕过登录页面。如何避免逻辑屏?

  2. 如果用户在两个租户中都存在,因此具有不同的 ObjectId,则在单击按钮转到 App2 时从 App1 重定向,它会在 tenant2 的用户列表中创建另一个具有不同 ObjectId 的用户。我怎样才能避免这种重复?

  3. 我是 Identity Experience Framework 的新手,我参考 MSDN 文档 https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-setup-commonaad-custom and watching https://www.youtube.com/channel/UCP2Px7fpUsYBbzROwK7w3tw Microsoft Identity Conference Videos 来熟悉它。如果有更多资源可以参考,请告诉我。

我用谷歌搜索但找不到任何关于应用程序驻留在两个不同的 B2c AD 中并且需要单点登录的场景。

我还没有考虑到这的全部含义,但您可以将 Tenant1 注册为 Tenant2 的外部身份提供者,反之亦然, Tenant2 作为 Tenant1.

的外部身份提供者

一方面,当 Tenant1 用户从 App1 导航到 App2 时,然后App2可以Tenant1add a domain_hint parameterTenant2发送授权请求。 Tenant2 将重定向到 Tenant1 以登录 App2 用户。如果他们在 Tenant1,则不应提示 App2 用户登录 Tenant1

另一方面,当 Tenant2 用户从 App2 导航到 App1 时,然后 App1 可以在发送给 Tenant1[=41] 的授权请求中添加 Tenant2domain_hint 参数=].