NC整合CAS統一認證 單點登入原理

2021-08-11 03:10:44 字數 3455 閱讀 9314

原理及步驟:

1、瀏覽器中輸入應用位址

進入nc

伺服器***

1處理:如果

uri是

/index.jsp

且ticket==null

,且assertion==null

,則跳轉到

cas認證頁面。 2

、cas

登入成功,跳轉回業務系統

/index.jsp

頁面。

進入nc

伺服器***

1處理:此時

ticket!=null

,流轉到***2進行

ticket

校驗。

3、***

2校驗未通過則終止;通過則設定

assertion

(包含使用者名稱等資訊),並跳轉到

/index.jsp;jsessionid=xx

。注意此時的

uri是

/index.jsp;jsessionid=xx

,而不是

/inedx.jsp。

4、***

1進行處理,此時

ticket==null

但assertion!=null

,進行ssokey

註冊和跳轉到單點登入位址,

cas單點登入成功。

流程圖:

web.xml配置

/* ***1核心**:

// 3. 校驗器處理通過後重定向到系統,/index.jsp;jsessionid或者/;jsessionid

else if(uri!=null&&(uri.startswith("/index.jsp;jsessionid")||uri.startswith("/;jsessionid")))

return isinwhitelist;

} @override

public final void dofilter(servletrequest servletrequest, servletresponse servletresponse, filterchain filterchain)

throws ioexception, servletexception

string ticket = commonutils.safegetparameter(request, getartifactparametername());

// 只有從認證頁面跳回系統那一次請求有ticket

if(commonutils.isnotblank(ticket))

// 存在session則返回,否則返回null

// 1.生成ssokey

string randomkey = idmaker.makeid(30);

// 拼接ncurl跳轉url ssoregservlet?ssokey=key&usercode=

// 2.註冊ssokey

try catch (exception e)

// 3.通過ssokey登入

response.sendredirect(newurl);

return;

}filterchain.dofilter(request, response);

return;

}else

}} catch (exception e1)

log.error("######sendredirect to cas, uri="+request.getrequesturi());

logger.debug("no ticket and no assertion found");

string serviceurl = constructserviceurl(request, response);

string modifiedserviceurl;

if(gateway)

else

string urltoredirectto = commonutils.constructredirecturl(casserverloginurl, getserviceparametername(), modifiedserviceurl, renew, gateway);

// 重定向

response.sendredirect(urltoredirectto);

return;}}

CAS統一登入認證 3 幾個配置細節

1.ssl證書配置 前面測試用的是自簽證證書,chrome58以後版本不能認可,如果要實用,需要申請幾大認證機構的認證證書 我申請了comodo的免費試用證書,當天就收到簽發的證書檔案包 使用配置方法 cd usr local apache tomcat 8.5.32 mkdir cert 把上面三...

CAS單點登入 簡介(一)

我們這次實戰用的版本為cas 5.1.3 cas是乙個單點登入框架,開始是由耶魯大學的乙個組織開發,後來歸到apereo去管。同時cas也是開源,遵循著apache 2.0協議,目前是在github上管理。單點登入 single sign on,簡稱sso,sso使得在多個應用系統中,使用者只需要登...

統一認證授權及單點登入的技術選擇

ltpatoken 全稱 ibm lightweight third party authentication。是乙個羽量的token生成規則,作用有點像oauth2.0的第四種規則client credentials,即直接產生access token 乙個非常靈活的認證規則,輕量級使用者單點登入...