統一認證受權平臺keycloak太牛了,我要搞一搞

 最近想要打通幾個應用程序的用戶關係,搞一個集中式的用戶管理系統來統一管理應用的用戶體系。通過一番調研選中了紅帽開源的Keycloak,這是一款很是強大的統一認證受權管理平臺。之因此選中了Keycloak是基於如下幾個緣由。程序員

易用性

Keycloak爲Web應用和Restful服務提供了一站式的單點登陸解決方案。它的目標就是讓應用的安全管理變得簡單,讓開發人員能夠輕鬆地保護他們的應用程序和服務。而且Keycloak爲登陸、註冊、用戶管理提供了可視化管理界面,你能夠藉助於該界面來配置符合你須要的安全策略和進行用戶管理。 並且還能夠面試

f6b9a0483daa08f2b26e9e7bdd458c2c.png

a1bd54298bef6bfea9ce981c7dae4f5a.png

功能強大

Keycloak實現了業內常見的認證受權協議和通用的安全技術,主要有:瀏覽器

  • 瀏覽器應用程序的單點登陸(SSO)。
  • OIDC認證受權。
  • OAuth 2.0。
  • SAML。
  • 多租戶支持。
  • 身份代理 - 使用外部 OpenID Connect 或 SAML 身份提供商進行身份驗證。
  • 第三方登陸。
  • 用戶聯盟 - 從 LDAP 和 Active Directory 服務器同步用戶。
  • Kerberos 網橋 - 自動驗證登陸到 Kerberos 服務器的用戶。
  • 用於集中管理用戶、角色、角色映射、客戶端和配置的管理控制檯。
  • 用戶帳戶集中管理的管理控制檯。
  • 自定義主題。
  • 兩段身份認證。
  • 完整登陸流程 - 可選的用戶自注冊、恢復密碼、驗證電子郵件、要求密碼更新等。
  • 會話管理 - 管理員和用戶本身能夠查看和管理用戶會話。
  • 令牌映射 - 將用戶屬性、角色等映射到令牌和語句中。
  • 安全策略恢復功能。
  • CORS 支持 - 客戶端適配器具備對 CORS 的內置支持。
  • 自定義SPI接口擴展。
  • JavaScript 應用程序、WildFly、JBoss EAP、Fuse、Tomcat、Jetty、Spring 等客戶端適配器。
  • 支持任何具備 OpenID Connect Relying Party 庫或 SAML 2.0 Service Provider 庫的平臺/語言。

並且有專門的Spring Boot Starter,很是容易集成到Spring Boot中。安全

基於實踐的開源

紅帽出品,必屬精品。紅帽良好的口碑決定了Keycloak的可靠性。它遵循Apache 2.0開源協議進行開源,通過八年的持續開源,代碼質量很高,很是適合作定製化開發。紅帽的商業付費認證受權產品Red Hat SSO就是基於Keycloak。爲企業提供了動態單點登陸的解決方案,間接證實了Keycloak的可靠性。服務器

適配Spring Security

這個框架對Spring SecuritySpring Boot作了適配,很是適合使用了這兩種體系的遷移擴展。這也是我選擇它的重要緣由之一。架構

缺點

雖然優勢很是多,可是缺點也很明顯。功能強大就意味着架構比較複雜,概念比較多,學習成本比較高。框架

c0fbc4f271dd6d6c34c72498be21399b.png

學習成本比較高的另外一個緣由是中文資料比較少,須要本身去啃官方的文檔。對於業務須要的認證方式可能會須要自行實現一些接口,一樣考驗着我的的編碼能力。ide

總結

若是你對Keycloak進行了詳細的研究和實踐,基本上可以搞定一些大中型的應用安全體系構建,既有誘惑也有挑戰。另外這個程序適合作統一認證受權門戶構建,不太適合一些小應用,相對比較重,不過微服務用這個應該很是棒。在目前新的Spring認證服務器尚未達到生產可用時是一個不錯的選擇微服務

 

最後

最近我整理了整套《JAVA核心知識點總結》,說實話 ,做爲一名Java程序員,不論你需不須要面試都應該好好看下這份資料。拿到手老是不虧的~個人很多粉絲也所以拿到騰訊字節快手等公司的Offer學習

Java進階之路羣,找管理員獲取哦-!

b047b0239e6998058dd347091cd448a9.png

b1b2b181f4cf66d72a77857a1e9b2015.png

相關文章
相關標籤/搜索