成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

什么是Keycloak和它的具體用途

譯文
安全
本文討論了一種新的身份和訪問管理工具--Keycloak的基本概念,不同發行版本,功能性特征,以及各種優缺點。

[[406217]]

【51CTO.com快譯】近年來,應用程序的安全性正在成為一個越來越重要的課題,在企業的日常運營過程中被頻繁提及。為了避免出現那些針對受保護數據被未經授權訪問到,進而招致數百萬美元的經濟處罰,企業往往希望自己手頭的幾乎每一種應用與服務,都能夠得到配套的用戶身份驗證與訪問管理(Identity and Access Management)。

目前,為了實現上述管控目的,市場上有著許多種或為免費、或是付費的安全解決方案。本文將向您介紹其中的一種新型實用工具--Keycloak。

Keycloak是什么?

Keycloak早在2014年9月就發布了其最初版本。目前,它的最新版本為13.0.1 (于2021年06月01日發布) 。由GitHub的項目描述頁面可知,Keycloak是一個“身份和訪問管理”的工具。它是由Red Hat的人員提供開發與維護。作為一個開源工具,Keycloak目前已獲得了Apache 2.0的許可證,因此任何感興趣開發者都可以對其作出貢獻。同時,由于它是Red Hat SSO的上游項目,因此可以被用戶運用到以企業為中心(enterprise-centered)的項目中。目前,Keycloak支持三個不同類型的協議,您可以在文末的實用鏈接中查看到。

Keycloak的特性

有了前面的概念,下面讓我們來具體看看Keycloak到底具有哪些功能特性。

  • 多協議支持

前文提到了Keycloak可以支持三種不同的協議,他們分別是:OpenID連接、OAuth 2.0和SAML 2.0。

  • SSO

Keycloak能夠完全支持單點登錄(Single Sign-On)與單點登出(Single Sign-Out)。

  • 管理控制臺

Keycloak提供了基于Web的GUI,您可以按需配置各種實例。

  • 用戶身份和訪問

Keycloak可以作為一個獨立的用戶身份和訪問管理器,以便我們創建用戶數據庫,自定義角色和用戶組。據此,我們可以基于預定義的角色,在應用程序的內部進行相關安全設置,以實現對于用戶身份的驗證。

  • 外部身份標識源的同步

如果您的用戶目前已經具有某種類型的用戶數據庫,那么Keycloak則能夠與此類數據庫進行同步。默認情況下,它支持LDAP和活動目錄(AD)。當然,您也可以使用Keycloak的用戶存儲API,為任何用戶創建自定義的可擴展數據庫。值得注意的是,在這種組合方案中,某些必要的數據可能無法獲取到Keycloak的齊全功能,因此您最好在實施前進行全面調研。

  • 身份代理

Keycloak可以作為用戶和一些外部身份提供者之間代理。我們可以通過Keycloak的管理面板,來編輯兩側對應關系的列表。

  • 社交身份提供者

Keycloak內置并支持Google、Twitter、Facebook、以及Stack Overflow等社交身份提供者。當然,這需要您在管理面板中進行手動配置。我們可以在Keycloak的相關文檔中,查詢到其支持的、社交身份提供者的全量列表,以及分別對應的配置手冊。

  • 頁面定制

Keycloak允許您定制所有需要顯示給用戶看的頁面。由于這些頁面是.ftl格式的,因此您可以使用經典的HTML標記和CSS風格,來統一展示應用程序和公司品牌的風格。您甚至可以通過定制JS腳本,來個性化各種原本受限的頁面。

Keycloak的發行版

目前,Keycloak有三種主要的發行版:

  • 服務器版

您可以從Keycloak的下載頁面處,獲取帶有獨立應用的tar或zip包。里面已經打包好了所有的腳本、文檔、以及能讓其正常運行的基本組件。目前,此類發行版中包含有兩個分支:一種可由WildFly服務器支持,而另一個是由Quarkus支持。由于它們目前尚處于預覽版階段,因此您在使用過程中可能會碰到一些意想不到的錯誤。

  • Docker鏡像版

它們是適合于Docker、Podman、Kubernetes、以及OpenShift的發行版。目前,有兩個針對Keycloak的官方Docker鏡像:一個是由Quay Container Registry持有的quay.io/keycloak/keycloak,另一個是Docker Hub持有的jboss/keycloak。您可以通過簡單的docker pull命令,來分別進行下載。

  • 操作者(Operator)版

這是基于Operator SDK,且針對Kubernetes和OpenShift的發行版。

可見,不同的發行版適用于不同的業務需求。如果您正在使用Docker或Kubernetes的話,請選用Keycloak的鏡像與操作者版。其中,Keycloak的Docker鏡像版對于開發和測試是非常實用的。

作為聯動,您可以先搭建Keycloak服務器版,對其進行測試與變更。在完成測試后,您再重啟Docker鏡像,恢復您對Keycloak的所有更改,從而得到一個“純凈”的環境,以便進行下一步測試。

Keycloak的集成

在理解了Keycloak的基本概念與功能特性之后,我們下面來討論一下如何將它集成到自己的應用程序中。

在此,我將主要從Java生態系統的角度展開討論,當然也會涉及到一些其他語言和框架。目前,在Java領域中,時下流行的Spring Boot、Quarkus和Micronaut之類的框架,都帶有方便與Keycloak集成的各種適配器。例如:Spring Boot就有spring-boot-keycloak-starter,而Quarkus則有quarks-keycloak-authorization。此外,Python包:python-keycloak、基于Scala的應用庫:keycloak4s、以及基于C# 應用的Keycloak.Net,也都是非常實用的。所有這些庫不但都是開源的,并且由對應的社區也在圍繞著Keycloak進行開發和維護。您可以在文末找到相關鏈接。

其中,Spring Boot和Quarkus框架提供了已有的抽象,因此整個集成只需數行代碼、以及個別配置屬性的填寫,即可實現。而其他庫則只為客戶提供了Keycloak API,因此集成起來略顯復雜。

Keycloak的優勢

  • Keycloak是免費的。而諸如AuthO或Okta之類的工具則需要付費。
  • 由于它支持三種不同的身份驗證協議,因此您可以只使用一種工具,來協同多種應用程序,滿足不同的安全需求。
  • 您可以根據實際需求,或自己的應用偏好,在不受限制的情況下,選用某種認證協議與工具。正如前文所述,Keycloak是Red Hat SSO的上游項目,因此它在產品質量和系統設計上都有保證。
  • Keycloak的強大社區支持,既體現在大量的使用案例上,又形成了良好的問題互助與解答氛圍。例如,由于Keycloak有一個內置的身份提供者同步機制,因此它對于那些已將用戶存放到LDAP或AD之類用戶數據庫環境的場景,特別實用。
  • 它支持諸如Google和Facebook之類社交身份提供者,您和您的團隊能夠直接以開箱即用(out of the box)的方式,使用社交賬號進行登錄。
  • Keycloak提供了基于Web的GUI,用戶可以對配置進行輕松地修改。
  • Keycloak SSO可以支持用戶同時訪問多項服務。

Keycloak的不足之處

Keycloak雖然有著上述顯著的優點,但是它也有著自身的不足之處。

  • 如果某個應用程序只有單個客戶用到了Keycloak,那么他將無法獲益SSO的整體規模性優勢。
  • 雖然Keycloak在原則上可以被配置成一個純用戶數據庫,但是它會附帶有各種特殊用途的表,因此您還不如直接使用專有的用戶關系型數據庫。
  • 由于Keycloak屬于一個免費的開源項目,因此在其社區中,并無固定的開發者、及其發展路線路圖。而且,它無法像Stack Overflow那樣,為用戶提供具有質量保證的企業級服務支持和響應水平。

小結

綜上所述,我們討論了有關Keycloak的基本概念,不同發行版本,功能性特征,以及各種優缺點。作為一種新的身份和訪問管理工具,它值得我們在適當的管控應用場景中進行試用。當然,如果您在使用過程中有什么心得,也可以通過其社區,給予及時的反饋,以促進其不斷迭代與改進。

實用鏈接

  • 主頁 - https://www.keycloak.org/
  • Keycloak文檔 - https://www.keycloak.org/docs/latest/getting_started/index.html
  • Keycloak下載鏈接 - https://www.keycloak.org/downloads
  • Keycloak4s - https://github.com/fullfacing/keycloak4s
  • Keycloak.Net - https://github.com/lvermeulen/Keycloak.Net
  • Python Keycloak - https://github.com/marcospereirampj/python-keycloak

原文標題:What Keycloak Is and What It Does?,作者:Bartłomiej Żyliński

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

 

責任編輯:華軒 來源: 51CTO
相關推薦

2012-03-19 20:38:06

騰訊

2016-08-31 13:48:00

AndroidRetrofit源碼解析

2022-03-24 23:06:25

大數據技術應用

2023-09-19 16:37:47

網絡

2010-02-04 16:35:24

C++ delete

2009-12-02 19:56:33

PHP中try{}ca

2022-02-24 23:37:19

區塊鏈錢包比特幣

2010-06-22 12:58:57

Linux at命令

2009-12-01 13:20:23

PHP配置函數ini_

2010-03-11 17:16:48

Python平臺

2023-02-28 07:22:14

數據血緣能DataLeap

2010-09-03 13:35:22

什么是DHCP協議

2010-09-07 08:55:21

字符串

2023-12-12 13:49:00

差量算法Myers

2010-01-25 10:05:29

Mozilla FirFirefox瀏覽器

2022-11-16 08:43:56

Linux/etc/hosts文件

2011-03-02 18:15:09

Proftpd設定

2009-09-08 18:02:20

CCNA用途

2023-11-15 13:15:52

C語言結構體

2018-12-14 11:30:00

JavaScript編程前端
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕欧美日韩 | 婷婷91| 成人免费一区二区三区视频网站 | 日韩av免费在线观看 | 日韩精品一区二区三区在线播放 | 国产91综合一区在线观看 | 日韩视频 中文字幕 | 日韩精品一区二区在线观看 | 日本高清中文字幕 | 91久久国产综合久久 | 日韩中文字幕免费 | 男女啪啪高潮无遮挡免费动态 | 国产精品久久久久无码av | 超碰电影 | 国产日韩欧美在线播放 | 久久久久国产精品一区二区 | 日韩成人免费av | 色黄网站 | 久久久精品天堂 | 精品成人在线 | 精品一区av | 久久久久免费观看 | www狠狠爱com| 大久 | 欧美三级在线 | 99re视频| 精品国产黄a∨片高清在线 www.一级片 国产欧美日韩综合精品一区二区 | 国产精品久久久久久久久久久免费看 | 久久国产区 | 日韩av免费在线电影 | 91在线精品秘密一区二区 | 九九精品在线 | yeyeav| 国产精品一区二区av | 国产视频欧美 | 亚洲成人一级 | 91久久久久久久久 | 国产成人综合在线 | 国产在线不卡 | 欧美日韩不卡合集视频 | 欧美一区|