單點登陸問題

2021-08-22 17:13:10 字數 2126 閱讀 8319

單點登入

單點登入(sso,single sign-on)是一種方便使用者訪問多個系統的技術,使用者只需在登入時進行一次註冊,就可以在多個系統間自由穿梭,不必重複輸入使用者名稱和密碼來確定身份。單點登入的實質就是安全上下文(security context)或憑證(credential)在多個應用系統之間的傳遞或共享。當使用者登入系統時,客戶端軟體根據使用者的憑證(例如使用者名稱和密碼)為使用者建立乙個安全上下文,安全上下文包含用於驗證使用者的安全資訊,系統用這個安全上下文和安全策略來判斷使用者是否具有訪問系統資源的許可權。遺憾的是j2ee規範並沒有規定安全上下文的格式,因此不能在不同廠商的j2ee產品之間傳遞安全上下文。

圖1 sso原理示意圖

目前業界已有很多產品支援sso,如ibm的websphere和bea的weblogic,但各家sso產品的實現方式也不盡相同。websphere通過cookie記錄認證資訊,weblogic則是通過session共享認證資訊。cookie是一種客戶端機制,它儲存的內容主要包括: 名字、值、過期時間、路徑和域,路徑與域合在一起就構成了cookie的作用範圍,因此用cookie方式可實現sso,但網域名稱必須相同; session是一種伺服器端機制,當客戶端訪問伺服器時,伺服器為客戶端建立乙個惟一的sessionid,以使在整個互動過程中始終保持狀態,而互動的資訊則可由應用自行指定,因此用session方式實現sso,不能在多個瀏覽器之間實現單點登入,但卻可以跨域。

實現sso有無標準可尋?如何使業界產品之間、產品內部之間資訊互動更標準、更安全呢?基於此目的,oasis(結構化資訊標準促進組織)提出了saml解決方案(有關saml的知識參看鏈結)。

使用者認證中心實際上就是將以上所有功能、所有概念形成乙個整體,為企業提供一套完整的使用者認證和單點登入解決方案。乙個完整的使用者認證中心應具備以下功能:

1. 統一使用者管理。實現使用者資訊的集中管理,並提供標準介面。

2. 統一認證。使用者認證是集中統一的,支援pki、使用者名稱/密碼、b/s和c/s等多種身份認證方式。

圖2 統一使用者認證與單點登入設計模型

3. 單點登入。支援不同域內多個應用系統間的單點登入。

使用者認證中心提供了統一認證的功能,那麼使用者認證中心如何提供統一授權的功能呢?這就是授權管理中,其中應用最多的就是pmi。

pmi(privilege management infrastructure,授權管理基礎設施)的目標是向使用者和應用程式提供授權管理服務,提供使用者身份到應用授權的對映功能,提供與實際應用處理模式相對應的、與具體應用系統開發和管理無關的授權和訪問控制機制,簡化具體應用系統的開發與維護。pmi是屬性證書(attribute certificate)、屬性權威(attribute authority)、屬性證書庫等部件的集合體,用來實現許可權和證書的產生、管理、儲存、分發和撤銷等功能。

pmi以資源管理為核心,對資源的訪問控制權統一交由授權機構統一處理,即由資源的所有者來進行訪問控制。同公鑰基礎設施pki相比,兩者主要區別在於: pki證明使用者是誰,而pmi證明這個使用者有什麼許可權,能幹什麼,而且pmi可以利用pki為其提供身份認證。

單點登入通用設計模型

圖2是統一使用者認證和單點登入通用設計模型,它由以下產品組成:

1. pki體系: 包括ca伺服器、ra伺服器、kmc和ocsp伺服器。

2. aa管理伺服器: 即認證(authentication)和授權(authorization)伺服器,它為系統管理員提供使用者資訊、認證和授權的管理。

3. uums模組: 為各應用系統提供uums介面。

4. sso: 包括sso**和sso伺服器。sso**部署在各應用系統的伺服器端,負責截獲客戶端的sso請求,並**給sso伺服器,如果**的是ocsp請求,則sso伺服器將其**給ocsp伺服器。在c/s方式中,sso**通常部署在客戶端。

5. pmi: 包括pmi**和pmi伺服器。pmi**部署在各應用系統的伺服器端,負責截獲客戶端的pmi請求,並**給pmi伺服器。

6. ldap伺服器: 統一儲存使用者資訊、證書和授權資訊。

為判斷使用者是否已經登入系統,sso伺服器需要儲存一張使用者會話(session)表,以記錄使用者登入和登出的時間,sso伺服器通過檢索會話表就能夠知道使用者的登入情況,該錶通常儲存在資料庫中。aa系統提供了對會話的記錄、監控和撤消等管理功能。為保證穩定與高效,sso、pmi和ocsp可部署兩套或多套應用,同時提供服務。

單點登陸 單點登陸設計

1單點登入基本流程場景1 使用者未登入情況下訪問受限資源 例如 使用者在站點a 登入成功了,這時候使用者再去訪問站點 下的受限資源。private a.do 由於使用者在站點a登入了,那麼在 x.com 域下一定存在authid的cookie,並且redis中一定儲存了使用者的登入資訊。當使用者訪問...

SSO 單點登陸

1.單點登陸概述 單點登入 single sign on 簡稱為 sso,是目前比較流行的企業業務整合的解決方案之一。sso的定義是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。很早期的公司,一家公司可能只有乙個server,慢慢的server開始變多了。每個server都...

CAS單點登陸

1 主要是兩個應用server和client 2 server一般單獨部署。client跟應用一起,通過filter的方式監控,保護受保護的資源 3 流程 客戶端先傳送請求受保護的資源 需要登陸才能獲取到的東西 發現沒有登陸 http請求中沒有service ticket,一般登陸成功後會返回這個s...