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