我已经使用我的Web应用程序(在IIS 7中托管并且主机名为www.abc.com
)配置了本地STS,它可以从STS接收声明并且可以登录。现在我已经在我的Web应用程序中添加了另一个主机名(www.xyz.com
)。如果用户使用www.abc.com/page1
登录应用程序中的页面并将其重定向到本地STS,则会对用户进行身份验证并添加安全令牌。现在,如果用户访问www.xyz.com/page2
,它也会重定向到STS进行身份验证。
如果用户登录www.abc.com
或www.xyz.com
,则无需登录即可访问其他域页。可能吗?我们如何实现这一目标?
答案 0 :(得分:0)
总的来说,如果您有两个不同的依赖方,则每个都需要将用户路由到IDP。如果IDP配置为单点登录,则用户将仅在第一次注意到IDP的路由。在第二个路由上,(假设相同的浏览器会话并且路由在IDP支持的生命周期内),用户将被认证,而不会在IDP处看到页面并且需要提供凭证。
因此,您的部分答案取决于您的登录意思:如果您的意思是“通过登录体验挑战并输入凭据”,您应该能够通过简单地确保IDP配置为单点来启用此功能上。
另一方面,如果通过登录意味着重定向到IDP,那么您需要确保应用程序能够跨不同的页面名称共享状态。请注意,通常的状态管理是通过cookie,并注意abc.com的cookie不会返回到名为xyz.com的网页。虽然我不知道任何简单的应用程序配置解决方案,但有许多聪明的方法可以解决这个问题。一个例子是通过url shared.com访问abc.com页面和xyz.com页面的一部分。然后,当登录到abc.com时,shared.com事务可以设置状态cookie,并在随后访问xyz.com时由shared.com事务读取。
我从来没有必要实施这样的跨域cookie解决方案,并且只与同事进行了有关它的非正式对话:我们总是找到单点登录的静默重定向以满足我们的要求。在开发之前,应该仔细研究这种解决方案对隐私的影响以及阻止此类cookie的可能性。