0

我有一个使用 Azure Active Directory B2C 自定义策略通过电子邮件实施的注册邀请流程。它按预期工作。但是,我有一个场景需要处理。

如果用户 - UserA 已登录到应用程序并具有有效会话。同一用户通过电子邮件收到了一个注册链接。在同一浏览器的不同选项卡上打开电子邮件。单击注册邀请链接。被重定向到注册页面。作为 UserB 提供信息。成功报名。被重定向到客户端应用的重定向 URI。现在,由于 UserA 已经存在一个有效会话,因此注册链接最终以 UserB 身份验证到应用程序中。此外,预计用户不会单击“注销”按钮,并且预计多个用户将共享同一台机器,因此会询问。

尽管这听起来不太实用,但它对客户来说是有效的。我一直在寻找实现这一目标的方法。

我正在寻找的是:

  1. 一种在用户单击“注册”按钮后清除会话信息的方法。由于它是自定义策略,因此 UI 元素并不完全或部分在客户端应用程序的代码范围 (IMO) 之下。如果我错了,请纠正我,如果可以控制点击事件并执行一段 javascript 代码来清除用户的浏览器会话。
  2. 一种单独处理注册流程重定向的方法,这样登录页面只有执行 2 个功能的代码。清除用户会话();重定向登录();
  3. 或者任何其他方式来处理这个?

基本上是一种在注册/注册后模拟 Sigout/Logout 的方法。

我真的很感激这方面的任何线索,并将证明非常有帮助。

4

1 回答 1

0

似乎不可能,因为我们无法使用 Azure B2C 自定义策略控制注册时的点击事件。

这是 Azure AD B2C 的会话行为。

当用户尝试访问应用程序上的受保护资源时,应用程序会检查应用程序端是否存在活动会话。如果没有应用会话或会话已过期,应用会将用户带到 Azure AD B2C 登录页面。

应用会话可以是存储在应用域名下的基于cookie的会话,例如[https://contoso.com](https://contoso.com).

即使您想将用户从应用程序中注销,仅清除应用程序的 cookie 或以其他方式结束与用户的会话也是不够的。您必须将用户重定向到 Azure AD B2C 才能注销。否则,用户可能无需再次输入其凭据即可重新对您的应用程序进行身份验证。

注销会清除用户使用 Azure AD B2C 的单点登录状态,但它可能不会将用户从其社交身份提供程序会话中注销。对于本地帐户会话在注销后正确结束。

参考:https ://docs.microsoft.com/en-us/azure/active-directory-b2c/session-behavior?pivots=b2c-user-flow

于 2021-11-23T08:14:00.057 回答