从一个应用程序邀请用户使用另一个应用程序?

Inviting User from one app for another app?

我们当前的系统包含两个具有 OAuth2 集中式用户管理的 Web 应用程序。应用程序 A 是 OAuth 客户端,应用程序 B 是 OAuth 提供者。应用程序 A 用于内部用户,应用程序 B 用于外部用户和内部用户。 要与 CIAM 集成以进行外部用户入职,我们的系统需要调用用户邀请 API。由于某些限制,这只能由应用程序 A 完成。这是否可行,因为外部用户只能访问应用程序 B。要调用 CIAM APIs,客户端需要使用 Azure 应用程序 ID 注册。如果可以在两个应用程序之间共享相同的 Azure 应用程序 ID,或者邀请可以针对具有不同 Azure 应用程序 ID 的另一个应用程序,那将不是问题。

• 正如您在此处所说的 CIAM,因此将 Azure AD B2C 视为 IdP 和授权提供者,您在此处陈述的应用程序 B 将充当应用程序 A 的 OAuth 提供者,从而使其成为客户端另一个应用程序是提供者。因此,事实上,您不能在应用程序之间共享令牌以邀请用户从一个应用程序到另一个应用程序。此外,在不同租户中注册的两个不同应用程序之间共享相同的应用程序 ID 也是不可能的。

• 但您可以在第二个应用程序(即应用程序 B)上以交互方式获取令牌,一旦静默调用失败,则交互流程将依赖 Azure AD B2C 会话 cookie 给用户 Single sign-on.您可以通过在应用程序上针对单个 sign-on 配置 Azure AD B2C 会话行为来实现上述目标。此设置允许您专门为应用程序维护用户会话,独立于其他应用程序。例如,如果您希望用户登录到应用程序 B 而不管用户是否已经登录到应用程序 A,则可以使用此设置。

因此,通过这种方式,您可以在两个应用程序之间共享一个sign-in。有关这方面的更多信息和详细信息,请参阅以下文档:-

https://docs.microsoft.com/en-us/azure/active-directory-b2c/session-behavior?pivots=b2c-custom-policy#configure-azure-ad-b2c-session-behavior

ADB2C How to share user token between two different applications?