SSO,CSA

访问 www.google.com 只会携带google的cookie
访问 www.baidu.com 只会携带baidu的cookie

www.a.com
www.b.com
www.sso.com

1. 访问 a.com,A服务器发现它没登录,重定向到sso.com
2. sso.com的页面要求用户输入账号密码登录,sso服务器收到账号密码后验证没问题后生成一个session和cookie
3. sso服务器生成的cookie是在 www.sso.com 下的
4. sso判断登录成功后重定向回a.com,并把一个验证参数作为query一起返回,形如:a.com?loggedKey=xxxxx
5. a.com?loggedKey=xxxxx 被访问后,A服务器收到loggedKey字段,解析后并【向sso服务器发起请求】
6. sso服务器收到A服务器的请求或验证信息,没问题返回正确的处理结果
7. A服务器收到sso服务器的返回结果后构建session和cookie,这个session和cookie是属于a.com的,a.com以后可以凭借这个来验证身份
8. 访问b.com,B服务器发现它没登录,B要求它重定向到sso.com
9. 访问sso.com就好携带之前a.com登录时生成的cookie,sso服务器根据这个cookie判断这个用户之前登录过
10. sso生成一个loggedKey并重定向回b.com,url形如:b.com?loggedKey=xxxx
11. B服务器收到loggedKey,解析向sso服务器发送请求,sso判定成功后返回正确信息
12. B服务器生成cookie和session

难点,
  一个服务器向另一个服务器发起请求
  新搭一个网站专门用于登录
posted @ 2021-03-29 22:53  蜜蜂老牛黄瓜  阅读(33)  评论(0编辑  收藏  举报