推薦:J2EE中使用者授權和SSO(單點登入)
今天才看到這篇文章,非常好,從各個方面闡述了J2EE中使用者驗證系統的原理和應用技術,其中關於JAAS和Petstore的論述很精彩,文章考證了Petstore的三個版本中不同使用者系統的實現:
1.Java Pet Store 1.0.1
使用form-based authentication ,表單式認證,這是我們常用的,但使用者到達一個不被授權訪問的資源時,web容器就推出一個html頁面,要求輸入使用者名稱和密碼,缺點:not portable across containers.
2.Java Pet Store 1.1.2
一個基於servlet的sign in/sign out來集中處理所有的request,缺點是必須由應用程式自己來處理。
3.Java Pet Store 1.3
使用filter概念來防止使用者訪問一些被授權的資源,filter會擷取所有的request/response,然後放置一個驗證透過的標識在使用者的session中,然後filter每次依靠這個標識來決定是否放行response.
但是也是沒有使用Jaas。
文章認為,我們必須使用Jaas,這樣才能開發出一個可重用 可移植的健壯的使用者許可權系統。
文章開始分析幾個很好的使用者許可權系統:
M$的.net的Passport
Netegrity SiteMinder
IBM WebSphere Portal Server
IBM是使用寫加密的key到使用者瀏覽器cookiet中的辦法實現跨域名驗證。
文章最後提出SSO模式:
這個模式分為:
gatekeeper :採取filter 或統一servlet的方式
authenticator: 在WEB中使用JAAS自己來實現。
使用者資格儲存: LDAP或資料庫
1.gatekeeper攔截檢查每個到達受保護的資源。首先檢查這個使用者是否有已經建立好的login session,如果沒有,gatekeeper 檢查是否有一個全域性的和authenticator相關的SSO session?
2.如果沒有全域性的SSO session, 這個使用者被導向到authenticator的 sign-on 頁面,要求提供使用者名稱和密碼。
3.authenticator接受使用者名稱和密碼,透過使用者的資格系統驗證使用者。
4.如果驗證成功, authenticator將建立一個全域性的login session,並且導向gatekeeper來為這個使用者在他的web應用中建立一個login session
5.authenticator和gatekeepers聯合分享cookie,或者使用tokens在query字元裡
文章地址:
1.Java Pet Store 1.0.1
使用form-based authentication ,表單式認證,這是我們常用的,但使用者到達一個不被授權訪問的資源時,web容器就推出一個html頁面,要求輸入使用者名稱和密碼,缺點:not portable across containers.
2.Java Pet Store 1.1.2
一個基於servlet的sign in/sign out來集中處理所有的request,缺點是必須由應用程式自己來處理。
3.Java Pet Store 1.3
使用filter概念來防止使用者訪問一些被授權的資源,filter會擷取所有的request/response,然後放置一個驗證透過的標識在使用者的session中,然後filter每次依靠這個標識來決定是否放行response.
但是也是沒有使用Jaas。
文章認為,我們必須使用Jaas,這樣才能開發出一個可重用 可移植的健壯的使用者許可權系統。
文章開始分析幾個很好的使用者許可權系統:
M$的.net的Passport
Netegrity SiteMinder
IBM WebSphere Portal Server
IBM是使用寫加密的key到使用者瀏覽器cookiet中的辦法實現跨域名驗證。
文章最後提出SSO模式:
這個模式分為:
gatekeeper :採取filter 或統一servlet的方式
authenticator: 在WEB中使用JAAS自己來實現。
使用者資格儲存: LDAP或資料庫
1.gatekeeper攔截檢查每個到達受保護的資源。首先檢查這個使用者是否有已經建立好的login session,如果沒有,gatekeeper 檢查是否有一個全域性的和authenticator相關的SSO session?
2.如果沒有全域性的SSO session, 這個使用者被導向到authenticator的 sign-on 頁面,要求提供使用者名稱和密碼。
3.authenticator接受使用者名稱和密碼,透過使用者的資格系統驗證使用者。
4.如果驗證成功, authenticator將建立一個全域性的login session,並且導向gatekeeper來為這個使用者在他的web應用中建立一個login session
5.authenticator和gatekeepers聯合分享cookie,或者使用tokens在query字元裡
文章地址:
http://www.javaworld.com/javaworld/jw-05-2002/jw-0524-signon.html
相關文章
- 推薦一個分散式單點登入框架XXL-SSO!分散式框架
- 單點登入(SSO)
- SSO 單點登入
- SSO單點登入
- 初探單點登入 SSO
- JEECG 單點登入 SSO
- SSO單點登入邏輯
- 認證授權:IdentityServer4 - 單點登入IDEServer
- 單點登入SSO和Oauth2.0 文章3OAuth
- Blazor OIDC 單點登入授權例項7 - Blazor hybird app 端授權BlazorAPP
- 什麼是單點登入(SSO)
- Casdoor + OAuth 實現單點登入 SSOOAuth
- CAS單點登入(SSO)實戰(一)
- CAS SSO單點登入框架學習框架
- OAuth2.0協議入門(三):OAuth2.0授權與單點登入(SSO)的區別以及單點登入服務端從設計到實現OAuth協議服務端
- OAuth2實現單點登入SSOOAuth
- 對SSO單點登入和OAuth2.0的區別和理解OAuth
- 14、sso單點登陸
- 記一次 SSO 單點登入實現
- 微信授權登入
- 客服系統配置抖音開放平臺,實現授權登入回覆私信和評論 實現授權登入,為授權使用者管理回覆私信和評論
- MongoDB 6.0 單例項基於使用者角色實現授權登入MongoDB單例
- 談談SSO單點登入的設計實現
- CAS SSO單點登入服務端環境搭建服務端
- CAS SSO單點登入客戶端環境搭建客戶端
- 實戰模擬│單點登入 SSO 的實現
- CAS實現單點登入SSO執行原理探究
- laravel使用EasyWeChat 授權登入Laravel
- 關於QQ授權登入
- SSO單點登入最全詳解(圖文全面總結)
- Spring+ Spring cloud + SSO單點登入應用認證SpringCloud
- oauth2.0實現sso單點登入的方式和相關程式碼OAuth
- 基於Spring Security Oauth2的SSO單點登入+JWT許可權控制實踐SpringOAuthJWT
- java 微信授權登入配置Java
- 整合spring cloud雲架構 - SSO單點登入之OAuth2.0登入認證SpringCloud架構OAuth
- Spring Cloud雲架構 - SSO單點登入之OAuth2.0登入認證(1)SpringCloud架構OAuth
- 3.CAS SSO單點登入客戶端環境搭建客戶端
- spring cloud微服務分散式雲架構-單點登入(SSO)SpringCloud微服務分散式架構
- 不務正業的前端之SSO(單點登入)實踐前端