siteminder sso agent 初探

siteminder sso agent 初探


公司一直用weblogic開發,CA有現成的sso agent for weblogic,只需要簡單封裝即可,主要是通過filter+serevlet來實現的。

後來又有了sso agent from jboss,自己也設想一下tomcat/jetty 替換weblogic 來作爲web server,所以考慮custom sso agent for web container的開發.



大致的設計架構:

      組件1:authenticator/filter       :可以支持cross domain,cookie,form                                                                       

       組件2:loginModule/Provider:包括Identity 和Form 個獨立組件







1.tomcat 使用 jaas(sso realm + form realm) + authenticator來實現

2.jetty  使用 jass(sso realm _+ realm )+ authenticator來實現

sso realm 和 form realm 都是標準的jaas實現,tomcat 和jetty 分別繼承自身的FormAuthenticator來擴展.





認證流程處理:
a.SSO跨域
  需要配置siteminder 的cookie provider,用於生成cookie和SESSION,以便於不同域cookie生成的橋樑;
  .判斷請求是否已經認證過,如何認證過直接通過。
  .如果是登陸請求j_security_check,使用SMSSION來登陸,如果通過,realm 認證(獲取權限role);認證成功,跳轉到cookieprovider(生成cookieprovider domain的cookie或smsession);如何認證成功,結束。
  .使用SSO Cookie登陸,如果通過,realm認證;認證成功,跳轉到cookieprovider(生成cookieprovider domain的cookie或smsession);如果認證成功,結束
  .跳轉到登陸頁面.
  
b.SSO同域
  .判斷請求是否已經認證過,如何認證過直接通過。
  .如果是登陸請求j_security_check,使用SSO Cookie登陸,如果通過,realm認證(獲取權限role).如何認證成功,結束
  .跳轉到登陸頁面.
  
c.非SSO
  .realm認證。如果成功,跳轉到welcome頁面。否則跳轉到登陸錯誤頁面.
   
smagent sdk 4.x 是需要在policy server上配置靜態密鑰,5.x 就可以先註冊生成Smhost.conf,smagent加載即可,  


參考:
JAAS:http://docs.oracle.com/javase/6/docs/technotes/guides/security/jaas/tutorials/index.html
SiteMinder:https://support.ca.com/cadocs/0/CA%20SiteMinder%20r6%200%20SP6-ENU/Bookshelf_Files/HTML/index.htm?toc.htm?937146.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章