<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          CAS單點(diǎn)登錄原理簡(jiǎn)單介紹

          共 2205字,需瀏覽 5分鐘

           ·

          2020-12-10 02:45

          走過路過不要錯(cuò)過

          點(diǎn)擊藍(lán)字關(guān)注我們


          1. SSO簡(jiǎn)介

          1.1 單點(diǎn)登錄定義

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

          1.2 單點(diǎn)登錄角色

          單點(diǎn)登錄一般包括下面三種角色:

          ①用戶(多個(gè));

          ②認(rèn)證中心(一個(gè));

          ③Web應(yīng)用(多個(gè))。

          PS:這里所說的web應(yīng)用可以理解為SSO Client,認(rèn)證中心可以說是SSO Server。

          2. CAS簡(jiǎn)介

          2.1 CAS簡(jiǎn)單定義

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

          2.2 CAS體系結(jié)構(gòu)

          CAS體系結(jié)構(gòu)分為CAS Server和CAS Client。


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

          2.3 CAS原理

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

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

          1、用戶訪問CAS Client請(qǐng)求資源

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

          3、CAS Server會(huì)對(duì)請(qǐng)求做認(rèn)證

          4、認(rèn)證通過后會(huì)生成一個(gè)Ticket返回Cas Client

          5、然后Cas Client就帶著Ticket再次訪問Cas Server,CAS Server進(jìn)行Ticket驗(yàn)證

          6、CAS Server對(duì)Ticket進(jìn)行再次驗(yàn)證,然后通過就返回用戶信息,用戶拿到信息后就可以登錄

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

          CAS單點(diǎn)登錄

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

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

          可以先將cas-server-4.0.0-release.zip解壓到Tomcat的webapp目錄下面,然后需要修改一個(gè)配置文件
          (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默認(rèn)登錄jsp頁面
          可以注釋W(xué)EB-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àng)目是實(shí)現(xiàn)jdbc支持

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

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



          登錄成功

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



          往期精彩推薦



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

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

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

          JVM難學(xué)?那是因?yàn)槟銢]認(rèn)真看完這篇文章


          END


          關(guān)注作者微信公眾號(hào) —《JAVA爛豬皮》


          了解更多java后端架構(gòu)知識(shí)以及最新面試寶典


          你點(diǎn)的每個(gè)好看,我都認(rèn)真當(dāng)成了


          看完本文記得給作者點(diǎn)贊+在看哦~~~大家的支持,是作者源源不斷出文的動(dòng)力

          瀏覽 119
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  粉嫩av懂色av蜜臀av熟妇 | 精品人妻一区二区三区阅读全文 | 五月婷婷综合网 | 中文字幕+乱码+中文字幕17c | 欧美白丰满老太AAA片 |