自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

什么是Keycloak和它的具體用途

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

[[406217]]

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

目前,為了實(shí)現(xiàn)上述管控目的,市場上有著許多種或?yàn)槊赓M(fèi)、或是付費(fèi)的安全解決方案。本文將向您介紹其中的一種新型實(shí)用工具--Keycloak。

Keycloak是什么?

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

Keycloak的特性

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

  • 多協(xié)議支持

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

  • SSO

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

  • 管理控制臺(tái)

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

  • 用戶身份和訪問

Keycloak可以作為一個(gè)獨(dú)立的用戶身份和訪問管理器,以便我們創(chuàng)建用戶數(shù)據(jù)庫,自定義角色和用戶組。據(jù)此,我們可以基于預(yù)定義的角色,在應(yīng)用程序的內(nèi)部進(jìn)行相關(guān)安全設(shè)置,以實(shí)現(xiàn)對(duì)于用戶身份的驗(yàn)證。

  • 外部身份標(biāo)識(shí)源的同步

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

  • 身份代理

Keycloak可以作為用戶和一些外部身份提供者之間代理。我們可以通過Keycloak的管理面板,來編輯兩側(cè)對(duì)應(yīng)關(guān)系的列表。

  • 社交身份提供者

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

  • 頁面定制

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

Keycloak的發(fā)行版

目前,Keycloak有三種主要的發(fā)行版:

  • 服務(wù)器版

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

  • Docker鏡像版

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

  • 操作者(Operator)版

這是基于Operator SDK,且針對(duì)Kubernetes和OpenShift的發(fā)行版。

可見,不同的發(fā)行版適用于不同的業(yè)務(wù)需求。如果您正在使用Docker或Kubernetes的話,請(qǐng)選用Keycloak的鏡像與操作者版。其中,Keycloak的Docker鏡像版對(duì)于開發(fā)和測試是非常實(shí)用的。

作為聯(lián)動(dòng),您可以先搭建Keycloak服務(wù)器版,對(duì)其進(jìn)行測試與變更。在完成測試后,您再重啟Docker鏡像,恢復(fù)您對(duì)Keycloak的所有更改,從而得到一個(gè)“純凈”的環(huán)境,以便進(jìn)行下一步測試。

Keycloak的集成

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

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

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

Keycloak的優(yōu)勢

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

Keycloak的不足之處

Keycloak雖然有著上述顯著的優(yōu)點(diǎn),但是它也有著自身的不足之處。

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

小結(jié)

綜上所述,我們討論了有關(guān)Keycloak的基本概念,不同發(fā)行版本,功能性特征,以及各種優(yōu)缺點(diǎn)。作為一種新的身份和訪問管理工具,它值得我們在適當(dāng)?shù)墓芸貞?yīng)用場景中進(jìn)行試用。當(dāng)然,如果您在使用過程中有什么心得,也可以通過其社區(qū),給予及時(shí)的反饋,以促進(jìn)其不斷迭代與改進(jìn)。

實(shí)用鏈接

  • 主頁 - 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

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

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2012-03-19 20:38:06

騰訊

2016-08-31 13:48:00

AndroidRetrofit源碼解析

2022-03-24 23:06:25

大數(shù)據(jù)技術(shù)應(yīng)用

2023-09-19 16:37:47

網(wǎng)絡(luò)

2010-02-04 16:35:24

C++ delete

2009-12-02 19:56:33

PHP中try{}ca

2022-02-24 23:37:19

區(qū)塊鏈錢包比特幣

2010-06-22 12:58:57

Linux at命令

2009-12-01 13:20:23

PHP配置函數(shù)ini_

2010-03-11 17:16:48

Python平臺(tái)

2023-02-28 07:22:14

數(shù)據(jù)血緣能DataLeap

2010-09-03 13:35:22

什么是DHCP協(xié)議

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文件

2009-09-08 18:02:20

CCNA用途

2011-03-02 18:15:09

Proftpd設(shè)定

2011-12-05 23:29:09

應(yīng)用

2023-11-15 13:15:52

C語言結(jié)構(gòu)體
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)