單點登入(SSO)—簡介

來源:互聯網
上載者:User
  單點登入SSO(Single Sign-On)是身份管理中的一部分。SSO的一種較為通俗的定義是:SSO是指訪問同一伺服器不同應用中的受保護資源的同一使用者,只需要登入一次,即通過一個應用中的安全驗證後,再訪問其他應用中的受保護資源時,不再需要重新登入驗證。

目前的公司專屬應用程式環境中,往往有很多的應用系統,如辦公自動化(OA)系統,財務管理系統,檔案管理系統,資訊查詢系統等等。這些應用系統服務於企業的資訊化建設,為企業帶來了很好的效益。但是,使用者在使用這些應用系統時,並不方便。使用者每次使用系統,都必須輸入使用者名稱稱和使用者密碼,進行身分識別驗證;而且應用系統不同,使用者帳號就不同,使用者必須同時牢記多套使用者名稱稱和使用者密碼。特別是對於應用系統數目較多,使用者數目也很多的企業,這個問題尤為突出。問題的原因並不是系統開發出現失誤,而是缺少整體規劃,缺乏統一的使用者登入平台,使用SSO技術可以解決以上這些問題。

一、使用SSO的好處主要有
(1)方便使用者
使用者使用應用系統時,能夠一次登入,多次使用。使用者不再需要每次輸入使用者名稱稱和使用者密碼,也不需要牢記多套使用者名稱稱和使用者密碼。單點登入平台能夠改善使用者使用應用系統的體驗。
(2)方便管理員
系統管理員只需要維護一套統一的使用者帳號,方便、簡單。相比之下,系統管理員以前需要管理很多套的使用者帳號。每一個應用系統就有一套使用者帳號,不僅給管理上帶來不方便,而且,也容易出現管理漏洞。
(3)簡化應用系統開發
開發新的應用系統時,可以直接使用單點登入平台的使用者認證服務,簡化開發流程。單點登入平台通過提供統一的認證平台,實現單點登入。因此,應用系統並不需要開發使用者認證程式。
二、實現SSO的技術主要有
(1)基於cookies實現,需要注意如下幾點:如果是基於兩個網域名稱之間傳遞sessionid的方法可能在windows中成立,在 unix&linux中可能會出現問題;可以基於資料庫實現;在安全性方面可能會作更多的考慮。另外,關於跨域問題,雖然cookies本身不跨域,但可以利用它實現跨域的SSO。
(2)Broker-based(基於經紀人),例如Kerberos等;
這種技術的特點就是,有一個集中的認證和使用者帳號管理的伺服器。經紀人給被用於進一步請求的電子的身份存取。中央資料庫的使用減少了管理的代價,並為認證提供一個公用和獨立的"第三方"。例如Kerberos、Sesame、IBM KryptoKnight(憑證庫思想)等。
(3)Agent-based(基於代理)
在這種解決方案中,有一個自動地為不同的應用程式認證使用者身份的代理程式。這個代理程式需要設計有不同的功能。比如, 它可以使用口令表或加密金鑰來自動地將認證的負擔從使用者移開。代理被放在伺服器上面,在伺服器的認證系統和用戶端認證方法之間充當一個"翻譯"。例如 SSH等。
(4)Token-based,例如SecurID、WebID、
現在被廣泛使用的口令認證,比如FTP,郵件伺服器的登入認證,這是一種簡單易用的方式,實現一個口令在多種應用當中使用。
(5)基於網關
Agent and Broker-based,這裡不作介紹。
(6)基於安全性聲明標記語言(SAML)實現,SAML(Security Assertion Markup Language,安全性聲明標記語言)的出現大大簡化了SSO,並被OASIS批准為SSO的執行標準。開源組織OpenSAML 實現了 SAML 規範,可參考http//www.opensaml.org。
三、SUN SSO技術

SUN SSO技術是Sun Java System Access Manager產品中的一個組成部分。
Sun 的新身份管理產品包括Sun Java System Identity Manager、Sun Java System Directory Server Enterprise Edition 和 Sun Java System Access Manager,以上三者為Sun Java Identity Management Suite (身份識別管理套件)的組成部分,它們與Sun Java Application Platform Suite、Sun Java Availability Suite、Sun Java Communications Suite、Sun Java Web Infrastructure Suite組成Java ES。具有革新意義的這一系列產品提供端到端身份管理,同時可與 60 多種第三方資源和技術實現互操作,整合產品可以從SUN公司網站下載,一般以Agent軟體方式提供,是業內整合程式最高、最為開放的身份管理解決方案之一。
在Sun 的新身份管理產品中,Sun Java System Access Manager是基中的一個重要組成部分,Java Access Manager基於J2EE架構,採用標準的API,可擴充性強,具有高可靠性和高可用性,應用是部署在Servlets容器中的,支援分布式,容易部署且有較低的TCO。通過使用集中驗證點、其於角色的存取控制以及 SSO,Sun Java System Access Manager 為所有基於 Web 的應用程式提供了一個可伸縮的安全模型。它簡化了資訊交換和交易,同時能保護隱私及重要身份資訊的安全。
四、CAS 介紹
CAS(Central Authentication Service),是耶魯大學開發的單點登入系統(SSO,single sign-on),應用廣泛,具有獨立於平台的,易於理解,支援代理功能。CAS系統在各個大學如耶魯大學、加州大學、劍橋大學、香港科技大學等得到應用。
Spring Framework的Acegi安全系統支援CAS,並提供了便於使用的方案。Acegi安全系統,是一個用於Spring Framework的安全架構,能夠和目前流行的Web容器無縫整合。它使用了Spring的方式提供了安全和認證安全服務,包括使用Bean Context,攔截器和面向介面的編程方式。因此,Acegi安全系統能夠輕鬆地適用於複雜的安全需求。Acegi安全系統在國內外得到了廣泛的應用,有著良好的社區環境。
CAS 的設計目標
(1)為多個Web應用提供單點登入基礎設施,同時可以為非Web應用但擁有Web前端的功能服務提供單點登入的功能;
(2)簡化應用認證使用者身份的流程;
(3)將使用者身份認證集中於單一的Web應用,讓使用者簡化他們的密碼管理,從而提高安全性;而且當應用需要修改身分識別驗證的商務邏輯時,不需要到處修改代碼。
CAS 的實現原理
CAS(Central Authentication Server)被設計成一個獨立的Web應用。實現原理非常簡單。

CAS建立一個位元很長的隨機數(ticket)。CAS把這個ticket和成功登入的使用者以及使用者要訪問的service聯絡起來。例如,如果使用者 peon重新導向自service S,CAS建立ticket T,這個ticket T允許peon訪問service S。這個ticket是個一次性的憑證;它僅僅用於peon和僅僅用於service S,並且只能使用一次,使用之後馬上會到期,即ticket通過驗證,CAS立即刪除該ticket,使它以後不能再使用。這樣可以保證其安全性。
關於ST,在取一個ST時,即使用delete Ticket(ticketId)同時將一次性的ST刪除;而對於TGT或PT,則通過reset Timer(ticketId)以更新TGT或PT的時間。在CAS服務端返回的ST中只能得出使用者名稱。
另外,CAS3.0版本也已經發布了,現在最新的版本是3.03,希望CAS3.0在向下相容的同時,更能向我們提供一些新東西。 SUN SSO 實現原理
SSO的核心在於統一使用者認證,登入、認證請求通過IDENTITY SERVER伺服器完成,然後分發到相應應用。
SUN SSO是java Access Manager的一個組成部分,SSO基於Cookie實現解釋如下:
(1)Policy Agent on Web or Application Server intercepts resource requests and enforces access control;
(2)Client is issued SSO token containing information for session Validation with Session service.
(3)SSO token has no content- just a long random string used as a handle.
(4)Web-based applications use browser session cookies or URL rewriting to issue SSO token.
(5)Non Web applications use the SSO API(Java/c) to obtain the SSO token to validate the users identity.SUN SSO 的應用
這裡說的應用是指Sun Java System Access Manager的應用。成功應用例子很多,包括德國電信等公司的應用,國內也有大量高校在使用,也有相當多的其它行業的應用。SUN SSO的開源
Sun 將發布其網路驗證與網路單點登入技術,給一項新的開放原始碼計劃“Open Web Single Sign-On”(Open SSO)。OpenSSO網站位於:https://opensso.dev.java.net/。該網站對OpenSSO的概述為:This project is based on the code base of Sun Java(tm) System Access Manager Product, a core identity infrastructure product offered by Sun Microsystems.
OpenSSO 計劃的第一部份原始碼,將於今年年底完成,基本的版本將於明年3月份發布,而完整的版本可能要等到明年五月份。Sun 採用與Solaris 作業系統相同的共同開發暨流通授權(Common Development and Distribution License)方式。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.