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

詳解使用Dex實(shí)現(xiàn)Kubernetes身份驗(yàn)證

云計(jì)算 云原生
在本文中,您了解到 Dex 是一種可行的解決方案,可以通過 Kubernetes 獲得更好的登錄體驗(yàn)。

?盡管Kubernetes是當(dāng)今使用最廣泛的開源容器編排平臺(tái),但它沒有創(chuàng)建和管理用戶的手段,至少?zèng)]有本地方式。然而,這并不是一個(gè)缺點(diǎn),因?yàn)樗梢詫?duì)接多種認(rèn)證服務(wù)。也正因此,Dex已成為Kubernetes可用的最佳身份驗(yàn)證解決方案之一。

在本文中,您將了解有關(guān) Dex for Kubernetes 的更多信息。我們將探討它可以解決的一些問題,通過使用第三方身份提供者進(jìn)行設(shè)置的高級(jí)概述,并考慮 Dex 未涵蓋的一些仍需要解決的問題。

什么是Dex?

Dex是 CoreOS, Inc. 發(fā)布的開源 CNCF 沙箱項(xiàng)目和身份驗(yàn)證服務(wù),它使用 OpenID Connect (OIDC) 將 Kubernetes 和其他與 OIDC 兼容的服務(wù)與無數(shù)身份提供者鏈接。換句話說,您可以將 Dex 視為kubectl Okta、GitHub、Google、Microsoft 和 Linkedin 等廣泛使用的身份提供商之間的中介。

Dex 作為 Kubernetes 和其他身份提供者之間的橋梁的能力允許管理員實(shí)施集中的用戶和組管理,這對(duì)于擁有多個(gè)團(tuán)隊(duì)的組織來說是必不可少的。

此外,正如您將在以下部分中了解的那樣,Dex 還可以加強(qiáng)安全性,并為 Kubernetes 帶來現(xiàn)代便捷的登錄體驗(yàn)。

Dex for Kubernetes 是如何工作的?

在深入了解 Dex 的工作原理之前,了解 Kubernetes 身份驗(yàn)證過程的工作原理非常重要。

與 Kubernetes 集群通信時(shí),kubectl?實(shí)際上是在與 API 服務(wù)器進(jìn)行交互。對(duì)于 API 服務(wù)器的每個(gè) HTTP 請(qǐng)求,身份驗(yàn)證插件都會(huì)查找用戶名、UID 和組。此類屬性可以由客戶端證書、身份驗(yàn)證代理或不記名令牌提供。這就是 Dex 的用武之地,充當(dāng)身份提供者和kubectl客戶端之間的橋梁。

由于 Dex 使用 OIDC,它可以使用所謂的“connectors”訪問存儲(chǔ)在第三方身份提供商中的用戶信息。這允許 Dex 以不記名令牌的形式將用戶信息轉(zhuǎn)發(fā)給 Kubernetes 以完成身份驗(yàn)證過程。所有這些對(duì)用戶都是透明的,因?yàn)樗峭ㄟ^單點(diǎn)登錄 (SSO) 流程完成的。

此外,正如我們將在下一節(jié)中討論的那樣,Dex 發(fā)送的 ID 令牌包含可用于用戶授權(quán)的信息。

上述過程是對(duì) Kubernetes 中身份驗(yàn)證工作方式的簡化。有關(guān)身份驗(yàn)證過程的更多詳細(xì)信息,請(qǐng)查看官方Kubernetes 文檔。

(https://kubernetes.io/docs/reference/access-authn-authz/authentication/)

Dex 解決了什么問題?

我們已經(jīng)提到,Dex 通過允許管理員使用組織的身份服務(wù)提供者來管理用戶和組來擴(kuò)展 Kubernetes 的功能。

然而,這并不是 Dex 解決的唯一問題。讓我們來看看它提供的其他一些好處。

01提高安全性

Dex 以多種方式提高了 Kubernetes 集群的安全性:

它提供了一種通過身份提供者將用戶登錄到集群的安全方式。

它消除了與為多個(gè)用戶使用相同的 kubeconfig 文件相關(guān)的安全風(fēng)險(xiǎn)。

它可以通過審核日志有效地檢測每個(gè)用戶執(zhí)行的操作。

它消除了無時(shí)間限制地創(chuàng)建不記名令牌的做法。

由于使用 RBAC 規(guī)則(零信任 RBAC 訪問)進(jìn)行有效的用戶和組管理,它有助于執(zhí)行身份驗(yàn)證和授權(quán)策略。

02靈活性

每個(gè)組織都有獨(dú)特的要求,而 Dex 足夠靈活,幾乎可以使用任何身份提供者。Okta、GitHub、GitLab、Microsoft、Linkedin 以及使用 OpenID Connect、OAuth 2.0、LDAP 和 SAML 2.0 協(xié)議等的服務(wù)可用的連接器就是證明。 更多Dex的信息請(qǐng)操作github地址。(https://github.com/dexidp/dex)

03提供集中認(rèn)證系統(tǒng)

實(shí)施 Dex 可能不是小型團(tuán)隊(duì)的最佳解決方案。但是,對(duì)于擁有數(shù)十名用戶分布在不同團(tuán)隊(duì)中的組織來說,Dex 是一個(gè)非常強(qiáng)大的工具。不必手動(dòng)創(chuàng)建、管理和分發(fā) kubeconfig 文件在節(jié)省時(shí)間和安全性方面都是一個(gè)巨大的優(yōu)勢(shì)。

此外,Dex 通過實(shí)現(xiàn)更精細(xì)的訪問控制來補(bǔ)充 Kubernetes。正如您將在下一節(jié)中看到的,Dex 控制 ID 令牌的發(fā)行,允許您指定其持續(xù)時(shí)間,這對(duì)于涉及臨時(shí)用戶訪問的情況非常方便。

此外,如有必要,您可以撤銷所有 ID 令牌。您甚至可以撤銷特定用戶或組的訪問權(quán)限。

總而言之,Dex 可以讓你為 Kubernetes 添加一個(gè)高效易用的集中式認(rèn)證系統(tǒng)。

使用 Dex 在 Kubernetes 上設(shè)置身份驗(yàn)證

正如我們已經(jīng)建立的那樣,Dex 充當(dāng)了一個(gè)門戶,它使用連接器將 Kubernetes 與多個(gè)身份提供者鏈接起來。

下圖提供了單點(diǎn)登錄過程的高級(jí)概述:

圖片

在身份驗(yàn)證過程中,將執(zhí)行以下步驟:

  1. 最終用戶發(fā)起登錄 Dex 的請(qǐng)求。這通常通過用戶啟動(dòng)單點(diǎn)登錄的 Web 應(yīng)用程序或門戶來完成。
  2. Dex 將此請(qǐng)求轉(zhuǎn)發(fā)給第三方身份提供商(例如,Active Directory、Google、GitHub 或 Okta)。為此,Dex 使用“connectors”,它具有一系列用于查詢其他用戶管理系統(tǒng)的協(xié)議。
  3. 多虧了這些“connectors”,Dex 可以從身份提供者那里訪問相關(guān)的用戶信息,例如姓名、電子郵件、唯一標(biāo)識(shí)符、組、訪問令牌等。在 Okta 的情況下,這些數(shù)據(jù)以 ID 令牌的形式出現(xiàn)。根據(jù)Dex 文檔,“ID 令牌是 JSON Web 令牌 (JWT)……作為證明最終用戶身份的 OAuth2 響應(yīng)的一部分返回?!?/li>
  4. 一旦 Dex 從第三方上游身份提供者那里獲得了用戶信息,它就會(huì)承擔(dān)身份提供者的角色,并頒發(fā)一個(gè)簽名的 ID 令牌發(fā)送給kubectl客戶端,客戶端將 JWT 轉(zhuǎn)發(fā)給 API 服務(wù)器。
  5. API 服務(wù)器使用 Kubernetes OpenID Connect 令牌身份驗(yàn)證器插件使用 ID 令牌。此時(shí)的結(jié)果可以是驗(yàn)證或拒絕用戶。如果用戶成功通過身份驗(yàn)證,API 服務(wù)器將使用 ID 令牌信息來應(yīng)用 RBAC 規(guī)則。
  6. 來自 API 服務(wù)器的響應(yīng)被發(fā)送回kubectl客戶端。
  7. 客戶端將kubectl結(jié)果顯示給最終用戶。

有關(guān)通過 LDAP 進(jìn)行身份驗(yàn)證的信息,請(qǐng)閱讀此處(https://dexidp.io/docs/connectors/ldap/?) 的文檔。有關(guān)如何通過 OpenID Connect 提供程序(例如 Okta)進(jìn)行身份驗(yàn)證的其他信息,請(qǐng)參閱此處(?https://dexidp.io/docs/connectors/oidc/?) 的文檔。

Dex 沒有解決哪些問題?

盡管 Dex 為尋求 Kubernetes 單點(diǎn)登錄體驗(yàn)的組織提供了出色的解決方案,但它也不能免除與某些身份提供者相關(guān)的限制。

正如Dex 文檔(https://github.com/dexidp/dex) 所示,并非所有身份提供者都支持刷新令牌請(qǐng)求。這意味著根據(jù)身份提供者的不同,用戶將不得不不時(shí)重復(fù)上一節(jié)中描述的身份驗(yàn)證過程。

此外,并非所有的 Dex 連接器都是穩(wěn)定的。Google、Bitbucket Cloud 和 OAuth 2.0 的連接器狀態(tài)仍為 alpha。

要記住的另一點(diǎn)是,Dex 僅用作身份驗(yàn)證解決方案。環(huán)境變量、kube-contexts 和成本的管理必須手動(dòng)完成或通過使用其他工具完成。

結(jié)論

在本文中,您了解到 Dex 是一種可行的解決方案,可以通過 Kubernetes 獲得更好的登錄體驗(yàn)。

作為 OIDC 提供商,Dex 允許您的組織利用正在使用的身份提供商連接到 Kubernetes。

這是一個(gè)巨大的優(yōu)勢(shì),因?yàn)闊o需添加額外的基礎(chǔ)設(shè)施,您的組織就可以為 Kubernetes 實(shí)施集中式身份管理,從而節(jié)省時(shí)間并有助于改進(jìn)安全策略。

原文: ?https://loft.sh/blog/dex-for-kubernetes-how-does-it-work/

責(zé)任編輯:武曉燕 來源: 新鈦云服
相關(guān)推薦

2024-02-23 07:18:40

JWTWeb應(yīng)用程序

2010-11-30 15:31:38

SharePoint Kerberos

2009-07-29 12:55:44

ASP.NET身份驗(yàn)證

2010-09-06 11:24:47

CHAP驗(yàn)證PPP身份驗(yàn)證

2012-04-10 09:36:58

2020-08-04 08:04:46

VueAPI驗(yàn)證

2025-04-25 07:00:00

身份驗(yàn)證CISO無密碼

2011-02-21 10:54:45

2013-07-21 18:32:13

iOS開發(fā)ASIHTTPRequ

2009-08-05 15:54:49

Web Service

2024-05-17 09:51:11

2021-02-17 08:51:55

cookie身份驗(yàn)證

2020-08-23 09:04:04

SSH身份驗(yàn)證FIDO2 USB

2010-07-17 00:57:52

Telnet身份驗(yàn)證

2024-05-06 00:00:00

ASP.NET授權(quán)機(jī)制

2021-07-19 10:10:15

身份驗(yàn)證漏洞Windows Hel

2010-11-03 16:07:38

DB2身份驗(yàn)證

2022-06-05 00:15:31

驗(yàn)證身份網(wǎng)絡(luò)

2015-01-28 10:00:49

2021-08-30 14:23:41

身份驗(yàn)證隱私管理網(wǎng)絡(luò)安全
點(diǎn)贊
收藏

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