SSO 单点登录

 

单点登录其实说白了就是共享登录信息,至于如何共享就要看技术方案了。 

 

从技术角度看有下面两种:

一.跨子域单点登录

二.完全跨单点域登录

 

一.跨子域单点登录模型

     假设应用A为a.fuck.com ,登录应用B为login.fuck.com,原理共享cookie, 应用C为API获取用户的信息

     1)登录A 发现没有Cookie中没有自己的ticket_key 跳转到B应用

     2) B登录后 往自己的cookie中写入一个ticket_key 回调A地址

     3) A应用获取cookie中的ticket_key 进行解密成真正的ticket ,同时利用C应用之前为其分发access_key 

            access_secret来请求C 获取用户的信息,生成自己真正的cookie。

     

 

二.完全跨单点域登录

     场景一 两个应用都有自己的登陆体系 共享cookie: A应用为a.man.com B应用为b.woman.com  C登陆应用为login.man/woman.com  

     1)访问A的时候 发现cookie中没有信息,跳转到C进行登陆,同时将登陆信息写入A的cookie下面

     2)用户通过A链接到B应用,B发现没有登录,同时发现refer为a.man.com则跳转到应用C login.man.com取到man.com下面,生成一个ticket,同时获取到A应用的cookie信息,以key value的形式存入db或者缓存中,然后拿到这个ticket跳转到b.woman.com 所以B应用就拿到了这个ticket,就可以去数据库或者缓存中去取A的cookie信息了。

    

 

 

      场景二:所有应用共享一个登录体系

  

 

 

 

你可能感兴趣的:(SSO 单点登录)