aspnet跨域sso解决方案内容摘要:

的原因阻止了你在不同的域之间共享 cookie。 同样,假设有下面这两个域名: 如果你使用表单验证登录进了 URL时,浏览器将不能发送 cookie到。 在。 要在两个站点间通过访问同样的 cookie来实现单点登录,还真没有什么高级的技巧或即有的架构模型 去解决它。 跨域单点登录设计雏形 假设有下面三个站点: 为了实现在这些站之间实现 SSO,当用户在任意一个站登录时,我们需要为所有 的站点设置验证 cookie。 如果用户 1登录进 1response前会在 response中加入验证的 cookie,但当我们需要同时能够登录进 2和站点 3设置验证 cookie。 因此,在 response返回到浏览器前,站点 1不得不定向到站点 2和站点3去设置验证 cookie。 下面的流程图详细描述了思路: 操作流程: 请求 状态:浏览器没有验证 cookie 浏览器发送一个请求到 有验证 cookie(因为还没有属于 cookie)。 状态:浏览器没有验证 cookie 因为请求中没有验证 cookie,所以请求 状态:浏览器没有验证 cookie 用户提供登录凭证点击登录按钮,浏览器发送一个 POST请求到 证的 cookie和其他的用户信息一起添加在 response中 状态:浏览器没有验证 cookie response并没有返回给浏览器,而是将请求重定向到 ReturnUrl设置成重定向前 URL值。 在验证 cookie被包含在了response中了后, cookie被发送给浏览器。 状态:浏览器没有验证 cookie 浏览器接收到了包含验证 cookie的 response和重定向到 存储了 cookie并向 状态:浏览器包含了 cookie ReturnUrl中的 URL地址,在此请求中读取 cookie值并为 cookie。 最终,在重定向的命令中也包含了这些验证cookie。 状态:浏览器包含了 cookie 浏览器接收到包含了验证 cookie的重定向命令跳转到 站点 1 的验证 cookie并开始请求站点 1,当然在请求中包含了验证 cookie。 状态:浏览器包含了 cookie 站点 1 检查了请求中包含了验证 cookie,就不 需要再去跳转到验证页面去验证,而是返回用户请求的页面 状态:浏览器包含了 cookie 如果此时用户请求站点 2, 因为浏览器已经存储了站点 2的验证 cookie, cookie将被包含在请求中,站点 2从 cookie中获取到用户信息,并为此用户返回请求的页面。 当浏览器验证了站点 2和站点 3后,那么用户就已经登录了所有的站点,这样就完成了一次单点登录。 如何单点注销。 作为单点登录的一部分,我们还需要去关注下单点注销, 就是说当用户在一个站点注销后,那么就认为他从所有的站点都注销了。 清除所有站点的 cookie和上面登录一样,也是请求 重定向 返回的过程。 只是和设置验证cookie不一样的是,这次从 response中移除验证 cookie。 此单点登录模型的缺点。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。