欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
sso單點(diǎn)登錄
目錄
1 單點(diǎn)登錄 1
1.1 單點(diǎn)登錄的背景 1
1.2 什么是單點(diǎn)登錄 1
1.3 單點(diǎn)登錄的好處 3
1.4 單點(diǎn)登錄的解決方案 3
2 CAS 3
2.1 CAS簡(jiǎn)介 3
2.2 CAS原理與協(xié)議 3
2.3 CAS認證依據 4
3 CAS配置 5
3.1 環(huán)境準備 5
3.2 CAS-SERVER配置 5
3.2.1 Cas-Server的部署 5
3.2.2 Cas-Server HTTPS取消配置 5
3.2.3 Cas-Server驗證方式配置 6
3.2.4 Cas-Server超時(shí)配置 7
3.3 CAS-CLIENT配置 8
3.3.1 Cas-Client的部署 8
3.3.2 Cas-Client的配置 8
3.4 HTTPS配置 10
3.4.1 生成server key 10
3.4.2 將證書(shū)導入JDK的證書(shū)信任庫中 10
3.4.3 配置tomcat 11
3.4.4 恢復相應的配置 11



1 單點(diǎn)登錄
1.1 單點(diǎn)登錄的背景
隨著(zhù)信息化進(jìn)一步發(fā)展和企業(yè)的業(yè)務(wù)運營(yíng)需要,企業(yè)內部的應用系統越來(lái)越多。如OA辦公自動(dòng)化系統,HR人力資源管理系統,企業(yè)ERP系統,企業(yè)BBS系統等,這些系統有著(zhù)自己獨立的用戶(hù)認證模塊和機制,用戶(hù)不得不記住每一個(gè)系統的登錄賬號和密碼,并且在使用不同的系統時(shí),必須重復登錄,給用戶(hù)帶來(lái)了很大的不便,同時(shí)對用戶(hù)信息沒(méi)有一個(gè)很好的統一管理,使得維護用戶(hù)信息變的比較困難。針對這種情況,單點(diǎn)登錄模型應用而生。

1.2 什么是單點(diǎn)登錄
單點(diǎn)登錄(Single Sign On),簡(jiǎn)稱(chēng)為 SSO,是目前比較流行的企業(yè)業(yè)務(wù)整合的解決方案之一。SSO的定義是在多個(gè)應用系統中,用戶(hù)只需要登錄一次就可以訪(fǎng)問(wèn)所有相互信任的應用系統。

單點(diǎn)登錄的機制如下圖所示,當用戶(hù)第一次訪(fǎng)問(wèn)應用系統1的時(shí)候,因為還沒(méi)有登錄,會(huì )被引導到認證系統中進(jìn)行登錄(1);根據用戶(hù)提供的登錄信息,認證系統進(jìn)行身份效驗,如果通過(guò)效驗,應該返回給用戶(hù)一個(gè)認證的憑據--ticket(2);用戶(hù)再訪(fǎng)問(wèn)別的應用的時(shí)候(3,5)就會(huì )將這個(gè)ticket帶上,作為自己認證的憑據,應用系統接受到請求之后會(huì )把ticket送到認證系統進(jìn)行效驗,檢查ticket的合法性(4,6)。如果通過(guò)效驗,用戶(hù)就可以在不用再次登錄的情況下訪(fǎng)問(wèn)應用系統2和應用系統3了。



從上面的視圖可以看出,要實(shí)現SSO,需要以下主要的功能:
所有應用系統共享一個(gè)身份認證系統。
統一的認證系統是SSO的前提之一。認證系統的主要功能是將用戶(hù)的登錄信息和用戶(hù)信息庫相比較,對用戶(hù)進(jìn)行登錄認證;認證成功后,認證系統應該生成統一的認證標志(ticket),返還給用戶(hù)。另外,認證系統還應該對ticket進(jìn)行效驗,判斷其有效性。
所有應用系統能夠識別和提取ticket信息
要實(shí)現SSO的功能,讓用戶(hù)只登錄一次,就必須讓?xiě)孟到y能夠識別已經(jīng)登錄過(guò)的用戶(hù)。應用系統應該能對ticket進(jìn)行識別和提取,通過(guò)與認證系統的通訊,能自動(dòng)判斷當前用戶(hù)是否登錄過(guò),從而完成單點(diǎn)登錄的功能。
上面的功能只是一個(gè)非常簡(jiǎn)單的SSO架構,在現實(shí)情況下的SSO有著(zhù)更加復雜的結構。有兩點(diǎn)需要指出的是:
單一的用戶(hù)信息數據庫并不是必須的,有許多系統不能將所有的用戶(hù)信息都集中存儲,應該允許用戶(hù)信息放置在不同的存儲中,如下圖所示。事實(shí)上,只要統一認證系統,統一ticket的產(chǎn)生和效驗,無(wú)論用戶(hù)信息存儲在什么地方,都能實(shí)現單點(diǎn)登錄。




統一的認證系統并不是說(shuō)只有單個(gè)的認證服務(wù)器,如下圖所示,整個(gè)系統可以存在兩個(gè)以上的認證服務(wù)器,這些服務(wù)器甚至可以是不同的產(chǎn)品。認證服務(wù)器之間要通過(guò)標準的通訊協(xié)議,互相交換認證信息,就能完成更高級別的單點(diǎn)登錄。如下圖,當用戶(hù)在訪(fǎng)問(wèn)應用系統1時(shí),由第一個(gè)認證服務(wù)器進(jìn)行認證后,得到由此服務(wù)器產(chǎn)生的ticket。當他訪(fǎng)問(wèn)應用系統4的時(shí)候,認證服務(wù)器2能夠識別此ticket是由第一個(gè)服務(wù)器產(chǎn)生的,通過(guò)認證服務(wù)器之間標準的通訊協(xié)議(例如SAML)來(lái)交換認證信息,仍然能夠完成SSO的功能。




1.3 單點(diǎn)登錄的好處
從用戶(hù)的角度來(lái)看:能夠及時(shí)的訪(fǎng)問(wèn)到所需的資源,提高生產(chǎn)效率,避免了記憶多個(gè)用戶(hù)名,密碼,增強了用戶(hù)體驗。
從安全的角度來(lái)看:?jiǎn)吸c(diǎn)登錄為其他應用系統提供了更強的身份認證機制,從而提高了整體系統的安全性。
從管理的角度來(lái)看:?jiǎn)吸c(diǎn)登錄統一了身份認證和機制,減少了系統維護人員的工作。

1.4 單點(diǎn)登錄的解決方案
目前有很多單點(diǎn)登錄的實(shí)現方案,其中最常用的就是單點(diǎn)認證機制。

2 CAS
2.1 CAS簡(jiǎn)介
CAS 是 Yale 大學(xué)發(fā)起的一個(gè)開(kāi)源項目,旨在為 Web 應用系統提供一種可靠的單點(diǎn)登錄方法,CAS 在 2004 年 12 月正式成為 JA-SIG 的一個(gè)項目。CAS 具有以下特點(diǎn):
開(kāi)源的企業(yè)級單點(diǎn)登錄解決方案。
CAS Server 為需要獨立部署的 Web 應用。
CAS Client 支持非常多的客戶(hù)端(這里指單點(diǎn)登錄系統中的各個(gè) Web 應用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。
2.2 CAS原理與協(xié)議
從結構上看,CAS 包含兩個(gè)部分: CAS Server 和 CAS Client。CAS Server 需要獨立部署,主要負責對用戶(hù)的認證工作;CAS Client 負責處理對客戶(hù)端受保護資源的訪(fǎng)問(wèn)請求,需要登錄時(shí),重定向到 CAS Server。下圖是 CAS 最基本的原理與協(xié)議。



CAS Client 與受保護的客戶(hù)端應用部署在一起,以 Filter 方式保護受保護的資源。對于訪(fǎng)問(wèn)受保護資源的每個(gè) Web 請求,CAS Client 會(huì )分析該請求的 Http 請求中是否包含 Service Ticket,如果沒(méi)有,則說(shuō)明當前用戶(hù)尚未登錄,于是將請求重定向到指定好的 CAS Server 登錄地址,并傳遞 Service (也就是要訪(fǎng)問(wèn)的目的資源地址),以便登錄成功過(guò)后轉回該地址。用戶(hù)在第 3 步中輸入認證信息,如果登錄成功,CAS Server 隨機產(chǎn)生一個(gè)相當長(cháng)度、唯一、不可偽造的 Service Ticket,并緩存以待將來(lái)驗證,之后系統自動(dòng)重定向到 Service 所在地址,并為客戶(hù)端瀏覽器設置一個(gè) Ticket Granted Cookie(TGC),CAS Client 在拿到 Service 和新產(chǎn)生的 Ticket 過(guò)后,在第 5,6 步中與 CAS Server 進(jìn)行身份合適,以確保 Service Ticket 的合法性。
在該協(xié)議中,所有與 CAS 的交互均采用 SSL 協(xié)議,確保,ST 和 TGC 的安全性。協(xié)議工作過(guò)程中會(huì )有 2 次重定向的過(guò)程,但是 CAS Client 與 CAS Server 之間進(jìn)行 Ticket 驗證的過(guò)程對于用戶(hù)是透明的。
2.3 CAS認證依據
TGC:(Ticket granting cookie)允許票據cookie(cookie中包含有TGT)瀏覽器在登錄CAS認證中心成功后,認證中心在該瀏覽器中寫(xiě)下的一個(gè)沒(méi)有任何人信息的cookie,主要表示該用戶(hù)已經(jīng)被認證中心通過(guò),為以后登錄應用系統提供依據。
ST:(Service Ticket)服務(wù)票據 當用戶(hù)從瀏覽器請求使用受保護的資源時(shí),應該用的CAS認證客戶(hù)端會(huì )自動(dòng)重新定向到認證中心,認證中心根據TGC分發(fā)給該請求一個(gè)服務(wù)票據,然后CAS認證客戶(hù)端持有該ST去確認并取得該用戶(hù)的身份。

3 CAS配置
3.1 環(huán)境準備
JAVA環(huán)境:JDK-1.6,Tomcat-6,MySQL-5.1
CAS:cas-server-3.4.11,cas-client-3.2.1
CAS下載地址: http://www.jasig.org/cas
3.2 Cas-Server配置
3.2.1 Cas-Server的部署
下載cas-server程序,將cas-server-webapp-<版本號>.war 拷貝到 tomcat的 webapps 目錄,并更名為 cas_server.war
啟動(dòng) tomcat,然后訪(fǎng)問(wèn):https://localhost:8080/cas_server ,如果能出現正常的 CAS 登錄頁(yè)面,則說(shuō)明 CAS Server 已經(jīng)部署成功。同時(shí)也要修改WEB-INF/ cas.properties中 server.prefix=http://localhost:8080/cas_server
3.2.2 Cas-Server HTTPS取消配置
(1)修改cas server下\WEB-INF\deployerConfigContext.xml文件
<bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" p:httpClient-ref="httpClient" p:requireSecure="false"/>
增加參數p:requireSecure="false",是否需要安全驗證,即true采用HTTPS,false為不采用。
(2)修改cas server下
WEB-INF\springconfiguration\ticketGrantingTicketCookieGenerator.xml文件
<bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
p:cookieSecure="false"
p:cookieMaxAge="-1"
p:cookieName="CASTGC"
p:cookiePath="/cas" />
</beans>
參數p:cookieSecure="true",TRUE為采用HTTPS驗證,與deployerConfigContext.xml的參數保持一致。
參數p:cookieMaxAge=“-1”,簡(jiǎn)單說(shuō)是COOKIE的最大生命周期,-1為無(wú)生命周期,即只在當前打開(kāi)的IE窗口有效,IE關(guān)閉或重新打開(kāi)其它窗口,仍會(huì )要求驗證??梢愿鶕枰薷臑榇笥?的數字,比如3600等,意思是在3600秒內,打開(kāi)任意IE窗口,都不需要驗證。
(3)修改cas server下\WEB-INF\spring-configuration\warnCookieGenerator.xml文件
<bean id="warnCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
p:cookieSecure="false"
p:cookieMaxAge="-1"
p:cookieName="CASPRIVACY"
p:cookiePath="/cas" />
兩個(gè)參數與上面同理。
3.2.3 Cas-Server驗證方式配置
cas server下\WEB-INF\deployerConfigContext.xml文件中默認了cas賬號驗證方式。該認證方式為用戶(hù)名和密碼相同即可通過(guò)認證。即默認情況下,登錄的時(shí)候我們只要輸入相同的用戶(hù)名和密碼即可登錄成功。
<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
3.2.3.1 配置數據庫驗證
(1) 加入數據庫驗證依賴(lài)包
將下載的 cas-server-3.4.11-release.zip 包解開(kāi)后,在 modules 目錄下可以找到包 cas-server-support-jdbc-3.4.11.jar,將該包加入到cas server項目的lib依賴(lài)庫中,該包提供了通過(guò) JDBC 連接數據庫進(jìn)行驗證的缺省實(shí)現,基于該包的支持,我們只需要做一些配置工作即可實(shí)現 JDBC 認證。JDBC 認證方法支持多種數據庫,DB2, Oracle, MySql, Microsoft SQL Server 等均可
(2) 配置數據源
cas server下\WEB-INF\deployerConfigContext.xml文件中配置數據源
<!-- 數據源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="${jdbc.driverClassName}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="maxPoolSize" value="${jdbc.maxPoolSize}" />
<property name="minPoolSize" value="${jdbc.minPoolSize}" />
<property name="initialPoolSize" value="${jdbc.initialPoolSize}" />
<property name="maxIdleTime" value="${jdbc.maxIdleTime}" />
</bean>
(3) 注釋默認認證方式
<!--
<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
-->

(4) 配置SQL方式的驗證
<!-- 用sql形式驗證 -->
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="sql" value="select password from t_user where username=?" />
<property name="dataSource" ref="dataSource" />
</bean>
(5) 配置指定表和字段的驗證方式
<bean class="org.jasig.cas.adaptors.jdbc.SearchModeSearchDatabaseAuthenticationHandler"
abstract="false" lazy-init="default" autowire="default">
<property name="dataSource" ref="dataSource" />
<property name=“tableUsers” value=“t_user” />
<property name="fieldUser" value="username"/>
<property name="fieldPassword" value="password"/>
</bean>
(6) 配置自己的加密驗證方式
<!-- 在用戶(hù)驗證中加入 -->
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="sql" value="select password from users where username=?" />
<property name="dataSource" ref="dataSource" />
<property name=“passwordEncoder” ref=“mypasswordEncoder”/>
</bean>
(自定義加密方式 ,此時(shí)需增加mypasswordEncoder bean)
<bean id="mypasswordEncoder"
class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder">
<constructor-arg value="MD5"/>
</bean>
此類(lèi)默認支持MD5 與SHA1兩種加密方式,若不滿(mǎn)足需求則可自定義加密方式,需實(shí)現PasswordEncoder 接口

(7) L
3.2.4 Cas-Server超時(shí)配置
服務(wù)端連接超時(shí)配置
修改cas server下\WEB-INF\sping-configuration\applicationContext.xml,
<bean id="httpClient" class="org.jasig.cas.util.HttpClient"
p:readTimeout="5000"
p:connectionTimeout="5000"/>

TGC的存活周期
修改\WEB-INF\spring-configuration\ticketExpirationPolicies.xml文件,通過(guò)TimeoutExpirationPolicy來(lái)設置CAS TGC存活周期參數,參數默認是120分鐘,在合適的范圍內設置最小值,太短,會(huì )影響SSO體驗,太長(cháng),會(huì )增加安全性風(fēng)險。
<bean id="grantingTicketExpirationPolicy" class="org.jasig.cas.ticket.support.TimeoutExpirationPolicy">
<!-- This argument is the time a ticket can exist before its considered expired. -->
<constructor-arg
index="0"
value="7200000" />
</bean>

3.3 Cas-Client配置
3.3.1 Cas-Client的部署
將下載的 cas-client-3.2.1-release.zip 包解開(kāi)后,在 modules 目錄下可以找到包 cas-client-core-3.2.1.jar和commons-logging-1.1.jar,將該包加入到cas client項目的lib依賴(lài)庫中。
3.3.2 Cas-Client的配置
在cas client項目的web.xml加入下面的配置。

<!-- 單點(diǎn)退出 可選配-->
<filter>
<filter-name>CAS Single Sign Out Filter</filter-name>
<filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CAS Single Sign Out Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener>

<!-- 用戶(hù)單點(diǎn)登錄認證,必須配置 -->
<filter>
<filter-name>CAS Authentication Filter</filter-name>
<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
<init-param>
<param-name>casServerLoginUrl</param-name>
<param-value>http://localhost:8080/cas_server/login</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://localhost:8080</param-value>
</init-param>
</filter>

<!-- ticket認證,必須配置 -->
<filter>
<filter-name>CAS Validation Filter</filter-name> <filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
<init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>http://localhost:8080/cas_server</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://localhost:8080</param-value>
</init-param>
<init-param>
<param-name>useSession</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>redirectAfterValidation</param-name>
<param-value>true</param-value>
</init-param>
</filter>

<!—request封裝請求參數配置 可選配置 -->
<filter>
<filter-name>CAS HttpServletRequest WrapperFilter</filter-name>
<filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CAS Authentication Filter</filter-name>
<url-pattern>/protected/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CAS Validation Filter</filter-name>
<url-pattern>/protected/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CAS HttpServletRequest WrapperFilter</filter-name>
<url-pattern>/protected/*</url-pattern>
</filter-mapping>

3.4 HTTPS配置
3.4.1 生成server key
進(jìn)入cmd轉到E:\下輸入
keytool -genkey -alias casserver -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore -validity 3600
注:參數 -validity 指證書(shū)的有效期(天),缺省有效期很短,只有90天。
生成證書(shū)時(shí),您的名字與姓氏是什么,必須添域名或cas server機器名,否則SSL將不能取得TGC信息。(證書(shū)至關(guān)重要,直接影響CAS是否能正常工作)

生成server.keystore文件成功.
3.4.2 將證書(shū)導入JDK的證書(shū)信任庫中
第一步是導出證書(shū),命令如下:
keytool -export -trustcacerts -alias casserver -file server.cer -keystore server.keystore -storepass changeit
第二步是導入到證書(shū)信任庫,命令如下:
keytool -import -trustcacerts -alias casserver -file server.cer -keystore D:\Java\jre1.6.0_02\lib\security\cacerts -storepass changeit
注:根據不同的JDK版本證書(shū)需要導入jdk/jre中。

列出所導入證書(shū)
keytool -list -v -keystore D:\Java\jre1.6.0_02\lib\security\cacerts
刪除存在的證書(shū)
Keytool -delete -trustcacerts -alias casserver -keystore D:\Java\jre1.6.0_02\lib\security\cacerts -storepass changeit

3.4.3 配置tomcat
將生成證書(shū)復制到tomcat主目錄下,修改%TOMCAT_HOME%\conf\server.xml,添加如下配置
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443" minSpareThreads="5" maxSpareThreads="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="e:/servercas1.keystore"
keystorePass="changeit"/>

keystoreFile為已經(jīng)生成的服務(wù)器證書(shū)的地址
keystorePass為自定義的服務(wù)器證書(shū)的密碼
3.4.4 恢復相應的配置
在cas server配置中恢復取消HTTPS的配置。
在cas client配置中修改cas server路徑,將http路徑修改為https路徑http://www.linuxso.com/architecture/11686.html
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
CAS單點(diǎn)登錄應用
CAS 與 Spring Security 3.1整合配置詳解
用Yale CAS Server 來(lái)實(shí)現單點(diǎn)登陸(SSO)
SSO單點(diǎn)登錄系列2:cas客戶(hù)端和cas服務(wù)端交互原理動(dòng)畫(huà)圖解,cas協(xié)議終極分析
CAS干單點(diǎn)登陸(SSO)
統一身份認證(CAS)簡(jiǎn)單說(shuō)明與設計方案
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久