京东SSO单点登录&跨域cookie设置方案

京东SSO单点登录&跨域cookie设置方案

单点登录
  • 单点登录SSO(Single Sign On)一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录
  • 需解决的问题
    • Cookie不安全-加密Cookie
    • 不能跨域免登-硬伤
    • 如何防止信息传递过程被篡改-数字签名/MD5+token
    • 如何让SSO系统信任登录系统和免登系统
      调用方式
  • 跳转-https://passport.jd.com/new/login.aspx?ReturnUrl=http%3A%2F%2Fwww.jd.com%2F
  • 弹出层回调-https://www.jdpay.com/
    京东单点登录实现方式
    一. 打开首页,拉取检测是否登录接口:
    http://passport.jd.com/new/helloService.ashx?callback=jQuery6408755&_=1466144020661

enter image description here
二. 拉取单点登录的列表
http://passport.jd.com/new/helloService.ashx?callback=jQuery7644016&_=1466240680061
三. 发起hello 请求,返回json列表,列表中包含了需要单点登录的跨域的域名
enter image description here
四. 循环列表跨域设置cookie
Alt text
五.触发sign请求.按列表循环签名
Alt text

子域检测是否登录

http://passport.jd.com/loginservice.aspx*****

同主域下 免签登录

a.jd.com b.jd.com jd.com 共享cookie 无需跨域设置cookie