oums单点登录解决方案介绍

oums单点登录解决方案介绍

  单点登录(Single Sign On),在互联网应用中使用非常广泛。随便举个例子,比如我们登录CSDN后,可以写博客、逛论坛、下载资源等等。这里要求是在共同父域下(www.csdn.net、blog.csdn.net、bbs.csdn.net、passport.csdn.net)的单点登录,当然也有完全跨域的单点登录。本文主要介绍oums目前使用的单点登录方式,它是在共同父域下实现的。
单点登录实际上是“身份认证”的整合,当我们存在多个应用时,我们希望登录了其中的一个应用,再访问其他应用时,会自动登录,避免用户重复的体力劳动。单点登录的实现原理是比较简单的,如下图所示,当用户通过浏览器第一次访问系统cbs时,由于还没有登录,会被引导到认证系统进行登录。下面开始单点登录的过程:认证系统根据用户在浏览器中输入的登录信息,进行身份认证,如果认证通过,返回给浏览器一个证明ticket;用户再访问其它应用系统时,会带着ticket;应用系统接收到ticket后,会将其发送到认证系统进行合法性校验;校验通过后,用户就不需要再次输入用户名密码来登录了,从而实现了单点登录的功能。
这里写图片描述
oums使用的ticket其实就是设置在父域的cookie来实现的。如上图所示,第一次浏览器访问cbs的时候(假设域名是cbs.bumpsbb.com),此时需要登录认证,输入用户名密码进行认证成功之后,oums会往浏览器回写一个cookie(key为FOURB_OUMS_UUID_TOKEN,domain为.bumpsbb.com),里面存储了用户id信息(注意这里的登录认证实际上是跳转到oums进行的)。当浏览器访问sms站点时,假设域名为sms.bumpsbb.com。由于父域也是bumpsbb.com,所以请求发送给sms站点时浏览器会将FOURB_OUMS_UUID_TOKEN 这个cookie带上,sms拿到这个cookie 解密之后获得用户id,根据此id到oums去查询用户信息,查询到用户信息之后将其设置到session中,以此来达到单点登录的效果。
  

猜你喜欢

转载自blog.csdn.net/lchpersonal521/article/details/52223234