作者:祝祥 翻译 2023-04-18 08:00:35
云计算
云原生 在本文中,您了解到 Dex 是一种可行的解决方案,可以通过 Kubernetes 获得更好的登录体验。
创新互联建站长期为1000多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为定兴企业提供专业的网站建设、成都网站设计,定兴网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。
尽管Kubernetes是当今使用最广泛的开源容器编排平台,但它没有创建和管理用户的手段,至少没有本地方式。然而,这并不是一个缺点,因为它可以对接多种认证服务。也正因此,Dex已成为Kubernetes可用的最佳身份验证解决方案之一。
在本文中,您将了解有关 Dex for Kubernetes 的更多信息。我们将探讨它可以解决的一些问题,通过使用第三方身份提供者进行设置的高级概述,并考虑 Dex 未涵盖的一些仍需要解决的问题。
Dex是 CoreOS, Inc. 发布的开源 CNCF 沙箱项目和身份验证服务,它使用 OpenID Connect (OIDC) 将 Kubernetes 和其他与 OIDC 兼容的服务与无数身份提供者链接。换句话说,您可以将 Dex 视为kubectl Okta、GitHub、Google、Microsoft 和 Linkedin 等广泛使用的身份提供商之间的中介。
Dex 作为 Kubernetes 和其他身份提供者之间的桥梁的能力允许管理员实施集中的用户和组管理,这对于拥有多个团队的组织来说是必不可少的。
此外,正如您将在以下部分中了解的那样,Dex 还可以加强安全性,并为 Kubernetes 带来现代便捷的登录体验。
在深入了解 Dex 的工作原理之前,了解 Kubernetes 身份验证过程的工作原理非常重要。
与 Kubernetes 集群通信时,kubectl实际上是在与 API 服务器进行交互。对于 API 服务器的每个 HTTP 请求,身份验证插件都会查找用户名、UID 和组。此类属性可以由客户端证书、身份验证代理或不记名令牌提供。这就是 Dex 的用武之地,充当身份提供者和kubectl客户端之间的桥梁。
由于 Dex 使用 OIDC,它可以使用所谓的“connectors”访问存储在第三方身份提供商中的用户信息。这允许 Dex 以不记名令牌的形式将用户信息转发给 Kubernetes 以完成身份验证过程。所有这些对用户都是透明的,因为它是通过单点登录 (SSO) 流程完成的。
此外,正如我们将在下一节中讨论的那样,Dex 发送的 ID 令牌包含可用于用户授权的信息。
上述过程是对 Kubernetes 中身份验证工作方式的简化。有关身份验证过程的更多详细信息,请查看官方Kubernetes 文档。
(https://kubernetes.io/docs/reference/access-authn-authz/authentication/)
我们已经提到,Dex 通过允许管理员使用组织的身份服务提供者来管理用户和组来扩展 Kubernetes 的功能。
然而,这并不是 Dex 解决的唯一问题。让我们来看看它提供的其他一些好处。
Dex 以多种方式提高了 Kubernetes 集群的安全性:
它提供了一种通过身份提供者将用户登录到集群的安全方式。
它消除了与为多个用户使用相同的 kubeconfig 文件相关的安全风险。
它可以通过审核日志有效地检测每个用户执行的操作。
它消除了无时间限制地创建不记名令牌的做法。
由于使用 RBAC 规则(零信任 RBAC 访问)进行有效的用户和组管理,它有助于执行身份验证和授权策略。
每个组织都有独特的要求,而 Dex 足够灵活,几乎可以使用任何身份提供者。Okta、GitHub、GitLab、Microsoft、Linkedin 以及使用 OpenID Connect、OAuth 2.0、LDAP 和 SAML 2.0 协议等的服务可用的连接器就是证明。 更多Dex的信息请操作github地址。(https://github.com/dexidp/dex)
实施 Dex 可能不是小型团队的最佳解决方案。但是,对于拥有数十名用户分布在不同团队中的组织来说,Dex 是一个非常强大的工具。不必手动创建、管理和分发 kubeconfig 文件在节省时间和安全性方面都是一个巨大的优势。
此外,Dex 通过实现更精细的访问控制来补充 Kubernetes。正如您将在下一节中看到的,Dex 控制 ID 令牌的发行,允许您指定其持续时间,这对于涉及临时用户访问的情况非常方便。
此外,如有必要,您可以撤销所有 ID 令牌。您甚至可以撤销特定用户或组的访问权限。
总而言之,Dex 可以让你为 Kubernetes 添加一个高效易用的集中式认证系统。
正如我们已经建立的那样,Dex 充当了一个门户,它使用连接器将 Kubernetes 与多个身份提供者链接起来。
下图提供了单点登录过程的高级概述:
在身份验证过程中,将执行以下步骤:
有关通过 LDAP 进行身份验证的信息,请阅读此处(https://dexidp.io/docs/connectors/ldap/) 的文档。有关如何通过 OpenID Connect 提供程序(例如 Okta)进行身份验证的其他信息,请参阅此处(https://dexidp.io/docs/connectors/oidc/) 的文档。
尽管 Dex 为寻求 Kubernetes 单点登录体验的组织提供了出色的解决方案,但它也不能免除与某些身份提供者相关的限制。
正如Dex 文档(https://github.com/dexidp/dex) 所示,并非所有身份提供者都支持刷新令牌请求。这意味着根据身份提供者的不同,用户将不得不不时重复上一节中描述的身份验证过程。
此外,并非所有的 Dex 连接器都是稳定的。Google、Bitbucket Cloud 和 OAuth 2.0 的连接器状态仍为 alpha。
要记住的另一点是,Dex 仅用作身份验证解决方案。环境变量、kube-contexts 和成本的管理必须手动完成或通过使用其他工具完成。
在本文中,您了解到 Dex 是一种可行的解决方案,可以通过 Kubernetes 获得更好的登录体验。
作为 OIDC 提供商,Dex 允许您的组织利用正在使用的身份提供商连接到 Kubernetes。
这是一个巨大的优势,因为无需添加额外的基础设施,您的组织就可以为 Kubernetes 实施集中式身份管理,从而节省时间并有助于改进安全策略。
原文: https://loft.sh/blog/dex-for-kubernetes-how-does-it-work/
分享名称:详解使用Dex实现Kubernetes身份验证
文章链接:http://www.mswzjz.cn/qtweb/news29/551629.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能