SSO身份統一認證系統技術實現_第1頁
SSO身份統一認證系統技術實現_第2頁
SSO身份統一認證系統技術實現_第3頁
SSO身份統一認證系統技術實現_第4頁
SSO身份統一認證系統技術實現_第5頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、用戶身份統一認證系統技術實現方案用戶身份統一認證系統 西安維信軟件有限公司2014年4月22日目 錄一、認證中心的主要功能:3二、認證中心的設計要求:3三、對業務系統的要求:4四、認證中心的登錄4五、SSO驗證實現過程5六、接口設計7七、業務系統的集成工作10一、 認證中心的主要功能:1) 用戶登錄認證(平臺機構、用戶名和密碼的校驗、數字證書簽名校驗、實時短信校驗)2) 憑證生成和傳遞3) 憑證有效性檢查4) 記錄日志、提供審計5) 關聯系統信息的維護6) 證書的管理和公共服務二、 認證中心的設計要求:1) 考慮到憑證的安全性,引入了加密和數字簽名技術;2) 不提供注冊功能,而是分別在各自應用

2、進行注冊,但提供到各個系統的注冊鏈接;3) 注銷系統時,只需清除認證中心的Session信息即可,其它已經通過認證登錄過的業務系統不受影響;4) 各應用系統的用戶信息分別各自管理,綜合接入平臺提供平臺統一機構和統一用戶信息的生成和維護功能,并提供平臺統一用戶和應用系統用戶的綁定功能;5) 認證中心專有憑證模塊負責憑證的創建,解析及驗證,并對外提供服務接口;6) 業務系統可根據憑證得到用戶的相關信息,比如業務系統用戶機構、用戶名等信息,認證中心對外提供用戶信息獲取服務;7) 提供應用系統管理功能,方便統計登錄行為,提供審計和日志功能,方便將其他應用系統經過簡單配置,就可加入認證整合系統中,方便證

3、書的注冊、注銷、查詢等;8) 為了確保認證中心的健壯,系統支持熱備份等功能。三、 對業務系統的要求:1) 憑證信息的相互傳送都是已加密的方式進行傳送,即使憑證信息被截取到,也無法解析到憑證信息中的內容,各業務系統只可使用自己的私鑰才可以解密憑證信息;2) 業務系統不可以每次都去認證中心驗證,所以可將憑證保存在會話中,即Session的方式;3) 業務系統不要過于復雜,以方便和現有系統的整合,建議采用過濾器或Servlet方式;4) 由于業務系統的權限管理機制可能不同,故認證中心不做權限管理,由業務系統自己負責;5) 業務系統和認證中心的通信采用Web Services 接口服務。四、 認證中心

4、的登錄業務系統要使用認證中心進行驗證操作,第一次需要登錄一次認證中心,之后的認證的操作則不需要再次登錄認證中心。當認證中心登錄成功之后,用戶便可在認證中心的“業務應用列表”當中選擇相應的業務系統,進行業務系統的用戶登錄驗證操作。五、 SSO驗證實現過程1、 當用戶要使用認證中心進行業務系統的統一認證時候,分為兩種情況:a) 用戶未登錄過統一認證系統此時用戶的瀏覽器界面首先會跳轉到認證中心的登錄地址,用戶輸入相關的登錄信息(機構號、柜員號、密碼、短信效驗碼等),待驗證通過后,則會跳轉到認證中心的“業務系統列表”頁面;b) 用戶已登錄過統一認證系統如果用戶之前已經登錄過認證中心,則當前用戶的瀏覽器

5、頁面會直接跳轉到“業務系統列表”。2、 當進入到“業務系統列表”之后,用戶通過選擇相應的業務系統,然后頁面會跳轉到業務系統中“用于重定向到SSO驗證服務認證地址的轉發地址”,跳轉完成后,業務系統自身會生成一個用于驗證本次認證請求的隨機碼,并攜帶認證中心所提供的應用編號,向認證中心發起一次用戶驗證請求(即將頁面重定向到認證中心所提供的“用于業務系統請求SSO驗證服務的認證地址”)。3、 當認證中心接收到業務系統發起的用戶驗證請求后,首先認證中心會從SSO服務端的Session中獲取到當前所登錄用戶的用戶信息,然后再從業務系統的請求當中接收到由業務系統所發送的隨機碼和應用編號,根據認證中心登陸的用

6、戶編號,業務系統的應用編號,從數據庫查詢到業務系統所需要的映射用戶信息。然后再將業務系統所發送的隨機碼等信息通過相關加密方式生成一個用于本次業務系統登錄認證的憑證信息,返還給業務系統。4、 業務系統通過回調地址接收到認證中心所返回的憑證信息,然后對其的可用性進行檢測(驗簽、隨機碼比對、憑證可用性效驗等)。如果當前憑證信息正確無誤且可用,則對其進行解密。隨后業務系統根據自己的需求,從憑證信息中獲取到相應的用戶信息,加載自己系統的用戶權限、菜單等信息,跳轉到業務系統自身的系統界面,即完成了一次SSO登錄驗證過程。六、 接口設計1) 憑證的設計(算法、結構)a) 憑證采用RAS非對稱密碼算法,服務端

7、采用電子信封和數字簽名生成一個用于業務系統登錄驗證的憑證信息;b) 憑證的數據采用JSON格式存儲,結構包括:i. 當驗證成功后,返回響應碼(00)和驗證通過的用戶信息憑證,如:響應碼"user":"brhId":"用戶機構編號","userId":"用戶編號","caSerialId":"CA證書序列號",ssoUseId:”SSO用戶編號”,"tokenMark":"憑證唯一標識","clientMar

8、k":"業務系統所生成的隨機碼","signData":"簽名值";ii. 當驗證失敗后,則返回響應碼和未通過驗證的異常信息憑證;響應碼"errInfo":"詳細的異常信息說明"。響應碼說明:響應碼響應碼詳細說明00驗證通過01代表當前所請求的應用信息不存在;02代碼當前所請求的應用暫時不可用;03代表當前所請求的應用在SSO服務端暫為添加映射用戶信息;04代表當前所請求的應用在SSO服務端中的映射用戶信息不可用;09其他異常信息;2) 認證中心提供用于業務系統請求SSO驗證服務的認證

9、地址業務系統每次使用SSO驗證服務,需請求以下鏈接:http:/serverIp:port/verificationApp?appId=應用編號&clientMark=業務系統隨機碼 應用編號將會由SSO服務提供,業務系統隨機碼由業務系統自身生成。3) 業務系統提供用于重定向到SSO驗證服務認證地址的轉發地址當需要進行登錄驗證時,SSO系統首先跳轉到此地址,然后由業務系統自身生成一個隨機碼,并攜帶認證系統所分配給自己的應用編號,重定向到認證中心所提供的用于業務系統請求SSO驗證服務的認證地址:http:/clientIp:port/SSOLoginRedirect4) 業務系統提供接收

10、服務端返回憑證的回調地址 http:/clientIp:port/SSOLoginServlet 接收服務端返回的憑證(String):響應碼+憑證業務應用系統讀取響應碼判斷憑證是否正確返回,解密憑證讀取隨機碼(clientMark),驗證隨機碼是否是業務系統生成。5) 認證中心提供業務系統用于驗證本次憑證相關信息的WebService接口地址當業務通過回調地址接收到SSO服務端的憑證信息后,需要對憑證信息進行相關的驗證操作,此時就需要調用SSO服務端的WebService接口進行驗證,此接口地址為:http:/serverIp:port/service/SSOService?wsdl調用方法

11、及說明:方法名稱方法說明方法參數返回結果verificationToken用于驗證憑證信息是否可用String,憑證唯一標識(唯一標識為憑證信息中的tokenMark值)Boolean,憑證是否可用6) 認證中心提供業務系統用于本地驗簽,解密數據相關方法相關的方法都位于sso_client.jar文件當中。方法名稱方法說明方法參數返回結果verificationSign用于驗證憑證信息是否由SSO服務端所發送String,SSO服務端返回的憑證信息Boolean,驗簽結果deAppToken用于解密服務端所返回的憑證信息中的數據String,SSO服務端返回的憑證信息String,解密后的憑證

12、信息7) 認證中心提供業務系統用于調用SSO驗證服務所需的配置文件業務系統調用SSO驗證服務所有所需的相關配置參數均存放于ssoCperties文件當中,文件當中主要包含以下幾條屬性信息:serviceUrl:業務系統用于調用SSO驗資服務的遠程WebService地址;privateKey:業務系統用于驗簽,解密服務端返回憑證信息的私鑰信息。七、 業務系統的集成工作業務系統如要整合SSO用戶驗證系統,需要按以下步驟對現有業務系統進行改造,為了各業務系統更方便的整合SSO用戶驗證服務,以下步驟中會出現部分代碼示例,其中的代碼可能對部分業務系統并不適用,各業務系統也可以更具具體

13、情況更改其中的代碼。1、 將相關的JAR包、配置文件添加到項目當中:Ø sso_client.jar(該JAR包用于調用遠程SSO服務端相關驗證接口);Ø WebService相關JAR包,由于SSO服務端的WebService服務采用Xfire方式,所以業務系統需要自行添加Xfire的相關JAR包文件;Ø 將ssoCperties文件拷貝到業務系統的src目錄下,并根據情況修改其中的參數。2、 集成判斷用戶在線狀態功能: 可以通過Filter等技術方式,判斷業務系統的用戶是否已登錄。如果未登錄,調轉到SSO的認證地址http:/serverIp

14、:port/verificationApp?appId=應用編號。3、 集成憑證接收、處理、頁面重定向功能:在業務系統的web.xml文件中增加以下內容: <servlet> <servlet-name>SSOLoginRedirect</servlet-name> <servlet-class>com.webtec.servlet.SSOLoginRedirect</servlet-class> </servlet> <servlet> <servlet-name>SSOLoginServle&l

15、t;/servlet-name> <servlet-class>com.webtec.servlet.SSOLoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>SSOLoginServle</servlet-name> <url-pattern>/ssoLogin</url-pattern> </servlet-mapping> <servlet-mapping> <ser

16、vlet-name>SSOLoginRedirect</servlet-name> <url-pattern>/ssoLoginRedirect</url-pattern> </servlet-mapping>創建用于重定向到SSO驗證服務認證地址的Servlet,以下為示例代碼:public class SSOLoginRedirect extends HttpServlet public void doPost(HttpServletRequest request, HttpServletResponse response) throw

17、s ServletException, IOException / 由業務系統自己生成一個隨機碼String clientMark = UUID.randomUUID().toString();/ 將頁面重定向到SSO驗證服務的認證地址response.sendRedirect("http:/serverIp:port/verificationApp?appId=app1&clientMark=" + clientMark);創建用于接收認證返回憑證的Servlet,以下為示例代碼:public class SSOLoginServlet extends HttpS

18、ervlet public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException / 獲取從SSO服務端返回的憑證信息String appToken = request.getParameter("appToken");/ 對SSO服務端返回的憑證信息進行驗簽操作boolean signState = SSOClientService.verificationSign(appToken);if(signState)/ 如果驗簽無誤則對憑證信息進行解密操作,SSOBean實體為對解密后的JSON對象進行封裝而成SSOBean ssoBean = SSOClientService.deAppToken(appToken);/ 調用SS

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論