Identity Server 4 - 具有多个租户的SSO

时间:2018-04-16 16:25:03

标签: c# asp.net-core single-sign-on identityserver4

我有几个使用相同客户端的不同网址定义的租户

客户 - c1

租户 - t1,t2,t3

因此,我们的用户可以使用不同的URL访问客户端

http://t1.c1.com

http://t2.c1.com

http://t3.c1.com

除了尝试单点注销外,其他所有工作都很精彩。

According to the docs,我们将使用客户端的字段 FrontChannelLogoutUri 打开IFrame以清除该客户端的Cookie。

如果我们为上述任何域设置 FrontChannelLogoutUri ,则SSO适用于 租户,但不适用于其他

问题:我们如何从上述任何租户退出?

我的想法是手动删除所有子域中的所有 Cookie,因此,使用 FrontChannelLogoutUri 作为http://c1.com/logout-confirm,因此它会清除其中的所有Cookie域/子域

Frame.E

如果我们打开一个带有该URL的新选项卡(在客户端表中定义),则会有效,但由于某种原因,IdentityServer在执行注销时不会使用该URL打开IFrame。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我所做的是使一个域成为通过FrontChanelLogoutUri注销的起点,例如http://t1.c1.com/logout清除该子域的所有cookie,然后将重定向(302)返回到下一个域http://t2.c1.com/logout,然后继续,直到您清除了所有域中的所有cookie。