1. 程式人生 > >統一認證管理系統(單點登入系統)sso 淺談

統一認證管理系統(單點登入系統)sso 淺談

        我所在的公司比較大,內部的各種管理系統和業務系統比較多,然而所有的系統都可以用公司的OA的員工工號和密碼直接進行登入 (當然登入介面都是一個就是內部OA門戶)。從進入公司以來我就一直有個問題,這是怎麼做到的?畢竟假如每個系統一套資料庫,那麼所有的系統都得同步OA系統的員工賬戶表,這是比較繁瑣的工程,也容易出錯,比如人員的入職離職等等。後來請教了一下某個老員工,才知道單點登入這樣的好東西。

sso原理淺談

       SSO 是一個非常大的主題,我對這個主題有著深深的感受,無數網友都在嘗試使用開源的 CAS , Kerberos 也提供另外一種方式的 SSO ,即基於 Windows 域的 SSO ,還有就是從 2005 年開始一直興旺不衰的 SAML 。

       如果將這些免費的 SSO 解決方案與商業的 Tivoli 或 Siteminder 或 RSA Secure SSO 產品做對比,差距是存在的。畢竟,商業產品的安全性和使用者體驗都是無與倫比的,我們現在提到的 SSO ,僅僅是 Web SSO ,即 Web-SSO 是體現在客戶端;另外一種 SSO 是桌面 SSO ,例如,只需要作為 Administrator 登入一次 windows 2000 ,我便能夠在使用 MSN/QQ 的時候免去登入的環節 ( 注意,這不是用客戶端軟體的密碼記憶功能 ) ,是一種代理使用者輸入密碼的功能。因此,桌面 SSO 是體現在 OS 級別上。

       今天,當我們提起 SSO 的時候,我們通常是指 Web SSO ,它的主要特點是, SSO 應用之間走 Web 協議 ( 如HTTP/SSL) ,並且 SSO 都只有一個登入入口。

       簡單的 SSO 的體系中,會有下面三種角色:

       1 ) User (多個)

       2 ) Web 應用(多個)

       3 ) SSO 認證中心( 1 個)

       雖然 SSO 實現模式千奇百怪,但萬變不離其宗:

    ◆  Web 應用不處理 User 的登入,否則就是多點登陸了,所有的登入都在 SSO 認證中心進行。

    ◆   SSO 認證中心通過一些方法來告訴 Web 應用當前訪問使用者究竟是不是張三 / 李四。

    ◆  SSO 認證中心和所有的 Web 應用建立一種信任關係, SSO 認證中心對使用者身份正確性的判斷會通過某種方法告之 Web 應用,而且判斷結果必須被 Web 應用信任。

JBoss SSO (or JBoss Federated Single Sign-On) 是一個產品從JBoss的SOA套件,使單點登入和註冊取捨和聯邦訪問多個應用和計算資源在整個網路和網際網路。

single sign on

單點登入(SSO)是一種專門形式的使用者身份驗證,可讓使用者進行身份驗證後,和獲得資源的多個系統/ Web應用程式在該屆會議期間。

通過使用SSO在您的Web應用程式聯合好處會包括:

◆鞏固發射井商店的身份出現了一段時間內有多個Web應用程式。

◆提高使用者帳戶配置程序顯著。

◆提供更好的終端使用者體驗,使用網路的SSO 。

◆提高效率的使用者時,將獲得新的應用,包括第三方的ASP服務,如SalesForce.com 。

◆使安全公司內部獲得應用企業之間和它們的合作伙伴,供應商和客戶的組織。

功能簡介:

      端到端的安全跨域/跨組織的單點登入/採用行業標準單點登入,如SAML的

更實際的集中辦法的SSO相比,更多的限制樞紐和以架構。

      ◆可插拔聯結器框架身份連線到自定義儲存系統,如身份( JDBC的資料庫等) 。包括一個基於標準的LDAP身份連線。成功測試Red Hat Directory Server, OpenLDAP和OpenDS 。

      ◆乾淨的區分框架和應用驗證。同時支援基於標準的JAAS的認證機制以及自定義驗證機制,如(Struts actions, Servlet Filters,JSF Actions, Plain Servlets等)。

      ◆無縫整合與JBoss門戶。工作進展情況的JBoss Seam Framework的一體化。

組成部分:

JBoss SSO Framework(Java開源 身份認證管理)

JBoss SSO Framework是一個元件集能夠很容易整合到現有的web應用中提供單一登入功能.該框架已經能夠支援一些重要的SSO標準如SAML。整個系統

包括以下元件:

1、聯合伺服器(Federation Server) 一個聯合伺服器用於為放置在不同安全域(security domain)中的web應用程式安全地傳播Federation Token。

2、Token編排框架(Token Marshalling Framework) 這是一組靈活的/可外掛的Java API用來marshal/unmarshal一個Federation Token。該系統預設提供一個SAML相容的編排器(Marshaller) 。

3、身份管理框架(Identity Management Framework)這是一組靈活的/可外掛的Java API用來連線中中央身份儲存庫(Identity Store)。該系統預設提供一個Provider來連線基於LDAP的身份儲存庫。

另外python也有不少支援sso第三方庫,例如Django-simple-sso

Github地址:https://github.com/ojii/django-simple-sso

有興趣的朋友可以去看一看,自己寫個demo試一試。