1、sso简介

来源:互联网 发布:大数据是什么 编辑:程序博客网 时间:2024/06/08 11:53
        单点登录(Single Sign On),只需要登录一次就可以访问所有相互信任的应用系统。目的是简化账号登录过程并保护账号和密码安全,对账号进行统一管理。
      cas的全称是Centeral Authentication Service,是对单点登录SSOSingle Sign On)的一种实现。其由Cas ServerCas Client两部分组成,Cas Server是核心,而Cas Client通常就对应于我们的应用。一个Cas Server可以对应于多个Cas Client
      Cas Server的主要作用是通过发行和验证Ticket(票)来对用户进行认证和授权访问Client应用,用于认证的凭证信息都是由Cas Server管理的。而Cas Client就对应于我们真正的应用,其中会使用到Cas相关的类,用于与Cas Server进行交互。
   在第一次访问某个系统时,由于没有登录会直接跳转到Cas Server去进行登录认证,将附带转跳地址,用户输入信息提交登录请求,Cas Server认证成功后将生成对应的SSO Session,以及名为CASTGCcookie,该cookie包含用来确定用户SSO SessionTicket Granting TicketTGT)。之后会生成一个Service TicketST),并将以ticket作为查询参数名,以该ST作为查询参数值跳转到登录时service对应的URL。如:
http(s)://domain/app1?ticket=ST-2-59fS6KxvmykibRXyoPJE
       跳转到app1之后将以serviceticket作为查询参数请求Cas Serverservice进行验证,验证通过后Cas Server将返回当前用户的用户名等信息。app1就会给当前用户生成其自身的Session,以后该用户以该Session都可以成功的访问app1,而不需要再去请求Cas Server进行认证。
    当该用户再去访问app2的时候,由于其在app2上没有对应的Session信息,将会跳转到Cas Server的登录地址,Cas Server此时发现其包含名为CASTGCcookie,将获取其中包含的TGT来获取对应的SSO Session,然后会将用户重定向到app2对应的地址,以Service Ticket作为查询参数。之后app2会向Cas Server发送请求校验该Service Ticket,校验成功后app2将建立该用户对应的Session信息,以后该用户以该Session就可以自由的访问app2了。
     各系统之间的单点登录是通过Cas Server生成的SSO Session来交流的,而用户与系统进行交互的时候,各系统将建立单独的Session,以满足用户与该系统的交互需求。
0 0
原创粉丝点击