1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        CAS單點登錄原理簡單介紹

        共 2205字,需瀏覽 5分鐘

         ·

        2020-12-10 02:45

        走過路過不要錯過

        點擊藍字關注我們


        1. SSO簡介

        1.1 單點登錄定義

        單點登錄(Single sign on),英文名稱縮寫SSO,SSO的意思就是在多系統(tǒng)的環(huán)境中,登錄單方系統(tǒng),就可以在不用再次登錄的情況下訪問相關受信任的系統(tǒng)。也就是說只要登錄一次單體系統(tǒng)就可以。計劃在項目中加入單點登錄,開發(fā)中,taoshop

        1.2 單點登錄角色

        單點登錄一般包括下面三種角色:

        ①用戶(多個);

        ②認證中心(一個);

        ③Web應用(多個)。

        PS:這里所說的web應用可以理解為SSO Client,認證中心可以說是SSO Server。

        2. CAS簡介

        2.1 CAS簡單定義

        CAS(Center Authentication Service)是耶魯大學研究的一款開源的單點登錄項目,主要為web項目提供單點登錄實現(xiàn),屬于Web SSO

        2.2 CAS體系結構

        CAS體系結構分為CAS Server和CAS Client。


        PS:圖來自官網(wǎng)

        2.3 CAS原理

        下面給出一張來自CAS官方的圖片

        CAS登錄等系統(tǒng)分為CAS Server和CAS Client,下面,我根據(jù)我的理解稍微解釋一下:

        1、用戶訪問CAS Client請求資源

        2、客戶端程序做了重定向,重定向到CAS Server

        3、CAS Server會對請求做認證

        4、認證通過后會生成一個Ticket返回Cas Client

        5、然后Cas Client就帶著Ticket再次訪問Cas Server,CAS Server進行Ticket驗證

        6、CAS Server對Ticket進行再次驗證,然后通過就返回用戶信息,用戶拿到信息后就可以登錄

        看到這個過程,我們大概就能理解CAS是怎么實現(xiàn)的,看起來過程挺多的,不過這些過程都是CAS在后臺做的

        CAS單點登錄

        現(xiàn)在博客簡單介紹一下,CAS Server簡單部署實現(xiàn),CAS是一款開源框架,目前應用比較廣泛。下面簡單介紹一下:
        cas開源到github上,不過只有幾個版本有cas release服務端,其它大部分版本都只有source源碼而已,所以其它版本都需要自己編譯,不想自己編譯的可以下載V4.0.0版本的。
        https://github.com/apereo/cas/releases/tag/v4.0.0

        下載cas server之后,我們就可以簡單部署一下,中間件可以用Tomcat
        cas的安全機制是依靠SSL實現(xiàn)的,所以一般的http非安全鏈接不支持的,雖然是這么說,不過學習練習的話,也可以去掉https要求,下面介紹說一下:

        可以先將cas-server-4.0.0-release.zip解壓到Tomcat的webapp目錄下面,然后需要修改一個配置文件
        (1)、先修改一下cas-server-4.0.0-release的WEB-INF下面的deployerConfigContext.xml
        修改前:


        id="proxyAuthenticationHandler"
        class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
        p:httpClient-ref="httpClient" />

        修改后,PS:加上p:requireSecure="false"

        "proxyAuthenticationHandler"  
        class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
        p:httpClient-ref="httpClient" p:requireSecure="false"/>

        (2)、修改WEB-INF下面的spring-configuration文件夾下面的ticketGrantingTicketCookieGenerator.xml
        修改前:

        "ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
        p:cookieSecure="true"
        p:cookieMaxAge="-1"
        p:cookieName="CASTGC"
        p:cookiePath="/cas" />

        修改后,PS:改為p:cookieSecure="false"

        "ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
        p:cookieSecure="false"
        p:cookieMaxAge="-1"
        p:cookieName="CASTGC"
        p:cookiePath="/cas" />

        (3)、修改WEB-INF下面的spring-configuration文件夾下面的warnCookieGenerator.xml
        修改前:

        "warnCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
        p:cookieSecure="true"
        p:cookieMaxAge="-1"
        p:cookieName="CASPRIVACY"
        p:cookiePath="/cas" />

        修改后,PS:改為p:cookieSecure="false"


        "warnCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
        p:cookieSecure="false"
        p:cookieMaxAge="-1"
        p:cookieName="CASPRIVACY"
        p:cookiePath="/cas" />

        (4)、修改CAS默認登錄jsp頁面
        可以注釋WEB-INF\view\jsp\default\ui\casLoginView.jsp頁面如下代碼

        test="${not pageContext.request.secure}">
        id="msg" class="errors">

        Non-secure Connection


        You are currently accessing CAS over a non-secure connection. Single Sign On WILL NOT WORK. In order to have single sign on work, you MUST log in over HTTPS.




        去掉Https支持要求后,就可以通過http的鏈接登錄cas server了,用戶名是casuser,密碼是Mellon
        PS:可以在deployerConfigContext.xml里看到配置,正規(guī)項目是實現(xiàn)jdbc支持

        "primaryAuthenticationHandler"
        class="org.jasig.cas.authentication.AcceptUsersAuthenticationHandler">
        name="users">

        key="casuser" value="Mellon"/>



        登錄成功

        待續(xù)...,PS:找時間繼續(xù)寫...



        往期精彩推薦



        騰訊、阿里、滴滴后臺面試題匯總總結 — (含答案)

        面試:史上最全多線程面試題 !

        最新阿里內(nèi)推Java后端面試題

        JVM難學?那是因為你沒認真看完這篇文章


        END


        關注作者微信公眾號 —《JAVA爛豬皮》


        了解更多java后端架構知識以及最新面試寶典


        你點的每個好看,我都認真當成了


        看完本文記得給作者點贊+在看哦~~~大家的支持,是作者源源不斷出文的動力

        瀏覽 119
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            学生妹一区二区三区 | 国产精品第56页 | 亚洲精品一区二区 | 免费 成人进口 | 留守少妇无力反抗呻吟 | 金瓶双艳之3d潘金莲免费播放 | 爱操视频 | 顶级嫩模被啪到呻吟不断红楼 | 日韩黄片免费看 | 狠狠操大香蕉人人操 |