B2C SSO对于多个应用程序的行为

时间:2019-01-04 14:24:35

标签: azure-ad-b2c

我们需要为同一Azure B2C租户内的多个应用程序支持SSO。 Azure B2C支持此功能,并且我已经相应地配置了我的依赖方自定义策略。

我的自定义策略有一个旅程步骤,其中根据API验证用户的其他信息。当此验证失败时,将引发错误,并且不会针对该用户旅程发布JWT令牌。此用户旅程有效,但与SSO有关:

用户成功登录到应用程序A后,他尝试登录应用程序B。当验证用户信息成功后,用户将登录到应用程序B。

但是,当针对应用程序B的自定义策略中的验证步骤失败时,错误将传递给应用程序而不会发出JWT令牌。

在后一种情况下发生的情况是,也删除了sso(x-ms-cpim-sso)cookie,并且实际上用户已从所有应用程序中退出,也从应用程序A中退出,并且SSO不再起作用。用户必须再次登录应用程序A。

我尝试将基础技术配置文件从使用Web.TPEngine.SSO.NoopSSOSessionProvider更改为Web.TPEngine.SSO.DefaultSSOSessionProvider,但是随后用户登录到应用程序B时没有任何验证错误,但不应登录。

是否有任何方法可以控制此行为,以使用户在成功登录到应用程序A之后继续使用B2C进行登录,但是当其中一项策略无法正常执行时,不会为应用程序B发出令牌?

1 个答案:

答案 0 :(得分:0)

我只是有同样的要求,并通过将 SSO Azure AD B2C 会话行为更改为 应用程序 来解决它:

npm install @angular/fire@6.1.4
ng add @angular/fire@6.1.4 --verbose
<块引用>

此设置允许您专门为某个用户维护一个用户会话 应用程序,独立于其他应用程序。例如,您可以 如果您希望用户登录 Contoso Pharmacy,请使用此设置 无论用户是否已登录 Contoso 杂货。

进一步阅读:Configure Azure AD B2C session behavior