系統集成之用戶統一登錄( LDAP + wso2 Identity Server)


本文場景: LDAP + wso2 Identity Server + asp.net聲明感知 場景 ,假定讀者已經了解過ws-*協議族,及 ws-trust 和 ws-federation.

        隨着開源技術的發展,越來越多的優秀開源產品將加入到我們常規的業務系統,為了避免重復造輪子(實際上自己造的輪子質量非常差),我們最快的方法就是集成優秀的開源項目為我所用.

下面來說說集成中的挑戰之一: 用戶認證問題.

        本人是一個在ASP.NET下工作的碼農,在2010年的時候研究過windows identity foundation(下面簡稱WIF)技術,第一次感受到了聲明式認證方案的魅力.從此對聲明式認證非常狂熱. 聲明式認證有兩個主要的參與者: RP 與 STS ,詳見:http://msdn.microsoft.com/zh-cn/library/ee517293.aspx .

        若干RP應用 信任統一的STS(當然也可以STS再信任STS,場景較復雜),來實現單點登錄. 談到單點登錄,相關的技術方案太多,如CAS,不過就SOA生態下,還是習慣ws-*級別的安全.所以我下面來着重講解如何構建STS及使用聲明感知的身份驗證.

        對做過sharepoint的朋友應該非常熟悉 , sharepoint就采用了WIF技術,可以將ADFS做為STS進行企業內部統一身份認證,那么如果我們工作環境是linux怎么辦呢? 開源的東西向來不怎么依賴windows. 那們我們需要利用下LDAP ,LDAP本身是一個協議,實現此協議的有:

        有了跨平台的目錄服務,我們難道是直接用? 這當然是需要寫很多代碼的...我們還需要一個更加強大的產品包裝一下LDAP,如 :

        WSO2 identity server

        在發現WSO2這個強大的開源系列之前,我曾經嘗試過 自己手寫代碼構建STS(要具備安全領域技術棧的知識,如證書,簽名等),后來發現用WIF框架手寫STS做個簡單的demo還是很容易,但是做到兼容萬家產品可不是那么容易,畢竟各種開源項目使用的認證協議不一樣,於是我找到了一個相當出色的開源項目:

        Thinktecture.IdentityServer (c#開發的)

        此項目支持的協議(Endpoint)很多了,比如OAUTH ,ws-federation hrd,還可以擴展多種標識服務提供器(如ADFS)....

        此項目因為界面看起來很丑陋,而且目測感覺只是試驗型項目最終被我拋棄, 俗話說舊的不去新的不來,正是因為我拋棄了它,目光放得更加遠了,經常各種資源搜集,我碰到了上面提到的 WSO2 Identity Server!!!!

         WSO2旗下有很多產品,詳情可到官網上了解,貌似都開源免費.是世界頂級SOA服務商.(吹捧至此為止 ^_^)

 

         WSO2的開源產品安裝極傻瓜,只要雙擊bat文件就能運行,而且不用任何配置就能看得到界面,對於我這種java水平很差的.NET程序員來說可謂是太友好了. 你可能在思考,難道都不用配置數據庫的么? 實際上它默認用了一款嵌入式數據庫H2 database , 額,我個人只知道微軟有個SQLCE,終於見世面了.....

         WSO2 identity server 文檔里面囊括了各種安全相關的字眼,如OAuth,openid,ldap,sts,證書,.....,好吧我們現在來說說怎么用它吧.

           

         它內置了我上面介紹的apacheds LDAP ,默認把用戶保存到此,你可以在<wso2is_ROOT>\repository\conf\user-mgt.xml 下找到它的連接參數,兩樣你可以使用LDAPAdmin這類LDAP客戶端工具連接進去查看,關於LDAPAdmin的使用見:http://www.pfeng.org/archives/564

 

         關於如何使用它做 被動STS詳見: http://wso2.com/library/articles/2011/12/configuring-wso2-identity-server-passive-sts-aspnet-client/

 

稍后再補充,

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM