小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

耶魯CAS Single Sign On

 smoking_boy 2005-09-06
耶魯大學(xué)開發(fā)的單點(diǎn)登錄(Single Sign On)系統(tǒng)稱為CAS(Central Authentication Service),是一個獨(dú)立于平臺的,易于理解的開源軟件,支持代理功能。Spring Framework的Acegi安全系統(tǒng)支持CAS,并提供了易于使用的方案。

CAS的設(shè)計(jì)目標(biāo)
       l、為多個Web應(yīng)用提供單點(diǎn)登錄基礎(chǔ)設(shè)施,同時可以為非Web應(yīng)用但擁有Web前端的功能服務(wù)提供單點(diǎn)登錄的功能;
      2、簡化應(yīng)用認(rèn)證用戶身份的流程;
      3、將用戶身份認(rèn)證集中于單一的Web應(yīng)用,讓用戶簡化他們的密碼管理,從而提高安全性;而且,當(dāng)應(yīng)用需要修改身份驗(yàn)證的業(yè)務(wù)邏輯時,不需要到處修改代碼;

CAS的設(shè)計(jì)和實(shí)現(xiàn)
       CAS(Central Authentication Server)被設(shè)計(jì)成一個獨(dú)立的Web應(yīng)用。它目前的實(shí)現(xiàn)是運(yùn)行在HTTPS服務(wù)器上的幾個Java Servlet。通過三個URL來訪問:Login URL,Validation URL和可選的Logout URL。下圖是CAS的單點(diǎn)登錄流程示意圖:
 

點(diǎn)擊查看原始大小 530 x 379


       為了使用CAS,Web應(yīng)用重定向它的用戶(或簡單地創(chuàng)建一個超鏈接)到Login URL,例如https://secure.its./cas/servlet/login。用戶也可以手工訪問這個URL,如果希望預(yù)先驗(yàn)證會話。
       Login URL處理初步的認(rèn)證工作,它提示用戶輸入NetID和密碼,并用Kerberos服務(wù)器校驗(yàn)它們是否匹配。為了接下來能自動重新驗(yàn)證用戶身份,CAS也會試圖給瀏覽器回送Cookie(瀏覽器關(guān)閉后會自動過期)。這個Cookie用于識別已經(jīng)成功登錄的用戶身份。
       使用這個可選的Cookie,CAS可以為用戶實(shí)現(xiàn)對于多個Web應(yīng)用單點(diǎn)登錄的效果。這就是說,用戶只需輸入一次他的NetID和密碼,即可訪問任何使用CAS的資源服務(wù)。沒有這個Cookie,當(dāng)Web應(yīng)用重定向用戶到CAS時,用戶每次都要輸入NetID和密碼。(用戶也可以通過訪問Logout URL,如https://secure.its./cas/servlet/logout,來要求CAS刪除這個Cookie。)
       為了處理初步的身份認(rèn)證,CAS也記錄了用戶被重定向時訪問的service??梢赃@樣做是因?yàn)镃AS要求重定向或鏈接用戶到Login URL的Web應(yīng)用提供一個service的標(biāo)志符(在上圖中記為serviceID)。如果驗(yàn)證成功,CAS創(chuàng)建一個位數(shù)很長的隨機(jī)數(shù)(我們稱之為ticket)。CAS把這個ticket和成功登錄的用戶以及用戶要訪問的service聯(lián)系起來。例如,如果用戶peon重定向自service S,CAS創(chuàng)建ticket T,這個ticket T允許peon訪問service S。這個ticket是個一次性的憑證;它僅僅用于peon,僅僅用于service S,并且只能使用一次,使用之后馬上會過期。
       一旦完成了初步的身份驗(yàn)證,CAS重定向用戶瀏覽器回到原來的Web應(yīng)用URL。CAS之所以能記得原來的URL,是因?yàn)樯厦嬗懻摰膕ervice ID作為一個"callback URL"。CAS重定向用戶的瀏覽器回到原來的URL,并加上上面討論的ticket作為請求參數(shù)。
       為了讓討論更加清楚,考慮下面的例子。假設(shè)用戶在訪問http://www./tp之前需要驗(yàn)證身份,我們把用戶從http://www./tp重定向到下面的Login URL:
       https://secure.its./cas/servlet/login?service=http://www./tp/authenticate.jsp
JSP頁面authenticate.jsp是網(wǎng)站資源的一部分。一旦完成了上面描述的初步身份驗(yàn)證,CAS用下面的URL重定向用戶瀏覽器到這個JSP頁面:
       http://www./tp/authenticate.jsp?ticket=opaque-ticket-string
       一旦收到請求,authenticate.jsp頁面需要校驗(yàn)這個收到的ticket,它把tickect傳送Validation URL(如http://secure.its./cas/servlet/validate)。authenticate.jsp頁面需要使用JSSE向Validation URL發(fā)送請求并讀取數(shù)據(jù)。當(dāng)生成這個請求時,authenticate.jsp頁面還需要把先前的service ID用service的參數(shù)名傳送給Validation URL,例子如下:
       http://secure.its./cas/servlet/validate?ticket=T&service=S
       當(dāng)CAS從Validation URL收到這個ticket,它檢查自己內(nèi)部數(shù)據(jù)庫,看看是否保存過這個ticket。如果數(shù)據(jù)庫有這個ticket,則進(jìn)一步檢查數(shù)據(jù)庫中和ticket關(guān)聯(lián)的service是否和剛收到的service相匹配。如果匹配,則向請求驗(yàn)證身份的應(yīng)用URL返回NetID;否則拒絕驗(yàn)證這個請求。
       Validation URL向請求身份驗(yàn)證的應(yīng)用URL返回?cái)?shù)據(jù)的方式很簡單。CAS用text/plain的應(yīng)答方式返回兩行數(shù)據(jù);第一行是yes或no,取決于ticket驗(yàn)證是否通過。如果ticket通過驗(yàn)證,第二行則是成功通過身份驗(yàn)證的用戶的NetID。如果ticket沒有通過驗(yàn)證,第二行為空。例子如下:
       yes
       peon
       如果ticket通過驗(yàn)證,CAS立即刪除該ticket,使它以后不能再使用。
       當(dāng)完成了身份驗(yàn)證的循環(huán)流程,Web應(yīng)用無需知道用戶的密碼即可校驗(yàn)用戶身份。此外,如果用戶瀏覽器接受Cookie,它將保留一個可用于多次向CAS驗(yàn)證用戶身份的Cookie,讓用戶以后不用再輸入NetID和密碼。(目前,這個用于身份驗(yàn)證的Cookie保留8個小時。)

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多