CAS——概述

一、 SSO

     是什么:

        SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统或网站中中,用户只需要登录一次就可以访问所有相互信任的应用系统。SSo是跨程序,跨服务器,跨语言的,无论是用Java/.NET或者PHP,最后都是通过一个统一的地方去验证.

        SSo应用之间使用Web协议(如http和https),并且只有一个登陆入口.

    体系中有三个角色:

        User(多个)
        Web应用(多个)
        SSo认证中心(一个)——实质上是一个服务器网站

     工作原则:

        所有的登陆都在SSO认证中心进行


        SSO认证中心通过一些方法来告诉Web应用当前访问用户究竟是不是通过认证的用户。


        SSO认证中心和所有的Web应用建立一种信任关系。

CAS = Central Authentication Service,中央认证服务,是耶鲁大学发起的构建Web SSO的开源项目
cas也就是是单点登录SSO的解决方案.


二、CAS

        简单来说,CAS就是能达到很多不同服务器的或者相同服务器的网站,统一到某一个地方登陆,如果你使用同一个浏览器登陆的,那么在这个浏览器再打开其他的网站时,这个网站就不用重新登陆了。

     CAS的结构体系:

         Cas server需要独立部署,主要负责用户的认证工作。会处理用户名、密码等凭证(Credentials)。就是一个安装在服务器端的一个Web层序。目前有耶鲁大学的,也有其他机构开发的。它是复制认证的服务器


         Cas client部署在客户端,,当有对本地Web应用受保护的资源的访问请求,并且需要对请求方进行身份认证的时候来处理响应的请求,如果发现未授权或未登陆,那么就跳转到cas server去认证

    认证原理流程:

     

        


        CAS模式:

            CAS1.0称为基础模式,适用场合:参与SSO的应用都为Web应用,且各应用之间相互独立,没有复杂的集成关系。
            CAS2.0称为代理模式,适用场合:参与SSO的应用存在非Web应用(CAS使用Cookie,故非Web应用不宜于直接做CAS的客户应用)应用之间,存在集成关系。

        工作原理——cas协议内容

              CAS协议定义了一组术语,一组接口,一组票据。

              (1)术语:1.0(Client、Server、Service)、Proxy、Target。

              (2)接口:/login(登陆)、/logout(退出)、
/validate(验证)、/serviceValidate(票据验证)、/proxyValidate(代理验证)、
/proxy(代理)

             (3)票据(  Client、CAS Server、Service三者,是通过各种票据的传递与验证,来实现单点认证功能的。):

                    TGT(Ticket Grangting Ticket )。TGT是CAS为用户签发的登录票据,拥有了TGT,用户就可以证明自己在CAS成功登录过。TGT封装了Cookie值以及此Cookie值对应的用户信息。当HTTP请求到来时,CAS以此Cookie值为key查询缓存中有无TGT ,如果有的话,则相信用户已登录过。

                    ST(Service Ticket )。ST是CAS为用户签发的访问某一service的票据。用户访问service时,service发现用户没有ST,则要求用户去CAS获取ST。用户向CAS发出获取ST的请求,CAS发现用户有TGT,则签发一个ST,返回给用户。用户拿着ST去访问service,service拿ST去CAS验证,验证通过后,允许用户访问资源。包含跳转的地址。


                     PGT(Proxy TicketGranting Ticket)。Proxy Service认证成功后,CAS会生成PGT,并将值回传给Proxy Service 。Proxy Service拿到PGT后,就可以为Target Service做代理,为其申请PT。


                     PGTIOU(Proxy TicketGranting Ticket IOU)。PGTIOU是CAS协议中定义的一种附加票据,它增强了传输、获取PGT的安全性。


                     PT(Proxy Ticket)。PT是用户访问Target Serivce的票据。用户经由Proxy Service去CAS获取到PT后,再访问Target Serivce,Target Serivce去CAS验证PT成功后,才允许用户访问。

 

 三、server、 client和项目三者是如何协调工作的

举例场景介绍:

有一个用户想要在网页上先访问广告合同管理系统ADM,去投放广告;之后又去资产系统AMS,查看资产信息。

而CAS所发挥的作用就是当用户访问ADM时,用户需要先去CAS登录,之后访问AMS时,就不需再次登录了。

下面是Server、client和项目之间的交互:

                

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注