SSO 基于Cookie+fliter实现单点登录(SSO):工作原理

SSO的概念:

       单点登录SSO(Single Sign-On)是身份管理中的一部分。SSO的一种较为通俗的定义是:SSO是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不再需要重新登录验证。

SSO的用途:

      目前的企业应用环境中,往往有很多的应用系统,淘宝、天猫、爱淘宝等等产品和如办公自动化(OA)系统,财务管理系统,档案管理系统,信息查询系统等等。这些应用系统服务于企业的信息化建设,为企业带来了很好的效益。但是,用户在使用这些应用系统时,并不方便。用户每次使用系统,都必须输入用户名称和用户密码,进行身份验证;而且应用系统不同,用户账号就不同,用户必须同时牢记多套用户名称和用户密码。特别是对于应用系统数目较多,用户数目也很多的企业,这个问题尤为突出。问题的原因并不是系统开发出现失误,而是缺少整体规划,缺乏统一的用户登录平台,使用SSO技术可以解决以上这些问题

SSO的好处:

  1. 方便用户:从用户实际使用角度考虑

          用户使用应用系统时,能够一次登录,多次使用。用户不再需要每次输入用户名称和用户密码,也不需要牢记多套用户名称和用户密码。单点登录平台能够改善用户使用应用系统的体验。 

  2. 方便管理员:从日常维护管理角度考虑
          系统管理员只需要维护一套统一的用户账号,方便、简单。相比之下,系统管理员以前需要管理很多套的用户账号。每一个应用系统就有一套用户账号,不仅给管理上带来不方便,而且,也容易出现管理漏洞。
  3. 简化应用系统开发:从应用扩展角度考虑 
          开发新的应用系统时,可以直接使用单点登录平台的用户认证服务,简化开发流程。单点登录平台通过提供统一的认证平台,实现单点登录。因此,应用系统并不需要开发用户认证程序。   

SSO架构及原理:

     单点登录的实质就是安全上下文(Security Context)或凭证(Credential)在多个应用系统之间的传递或共享。当用户登录系统时,客户端根据用户的凭证(例如用户名和密码)为用户建立一个安全上下文,安全上下文包含用于验证用户的安全信息,系统用这个安全上下文和安全策略来判断用户是否具有访问系统资源的权限。



单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。单点登录在大型网站里使用得非常频繁,例如像阿里巴巴这样的网站,在网站的背后是成百上千的子系统,用户一次操作或交易可能涉及到几十个子系统的协作,如果每个子系统都需要用户认证,不仅用户会疯掉,各子系统也会为这种重复认证授权的逻辑搞疯掉。实现单点登录说到底就是要解决如何产生和存储那个信任,再就是其他系统如何验证这个信任的有效性,因此要点也就以下几个:

  • 存储信任
  • 验证信任

SSO 基于Cookie+fliter实现单点登录(SSO):工作原理_第1张图片

不然发现以上的方案是把信任存储在客户端的Cookie里,这种方法虽然实现方便但立马会让人质疑两个问题:

  • Cookie不安全
  • 不能跨域免登

SSO的技术:

                  第一:Cookie+filter

        利用浏览同域名之间自动传递cookies机制,实现两个域名之间系统令牌传递问题;另外,关于跨域问题,虽然cookies本身不跨域,但可以利用它实现跨域的SSO。如:代理、暴露SSO令牌值等。

                 第二:基于CAS的sso


了解CAS工作原理后,接下来会进行单点登录的实例演示(两种)。


你可能感兴趣的:(SSO 基于Cookie+fliter实现单点登录(SSO):工作原理)