dex这个东西,CoreOS做的开源身份认证服务,感觉挺适合企业用来统一管理登录和权限的吧
- 问答
- 2025-12-31 05:54:36
- 3
dex这个东西,CoreOS做的开源身份认证服务,感觉挺适合企业用来统一管理登录和权限的吧
dex这个东西,就是一个专门负责“登录”的中间人,它最初是由CoreOS公司(这家公司后来被Red Hat收购,现在属于IBM了)开发并开源的一个身份认证服务,它的核心想法很巧妙:它自己本身并不存储大量的用户账号和密码,而是充当一个“连接器”或者“翻译官”的角色,把企业里已经存在的各种用户目录连接起来,让其他应用能够用一种统一、现代的方式去登录。
想象一下,一个公司里可能已经有了一套用户系统,比如微软的Active Directory(AD),或者LDAP服务器,里面存放着所有员工的账号信息,公司可能还在使用一些支持OpenID Connect(OIDC)或者SAML2.0这类现代单点登录(SSO)协议的云服务,比如GitHub Enterprise、GitLab或者一些SaaS应用,问题来了,老的AD系统和新的云服务之间,认证协议不互通,就像讲不同语言的人很难直接沟通。
这时候,dex的价值就体现出来了,它站在这些系统中间,对于想要登录的应用(比如公司内部的Kubernetes仪表盘、代码仓库、CI/CD工具等),dex会说自己支持OIDC或SAML这类标准的、安全的协议,应用只需要信任dex就可以了,而当用户真正登录时,dex会转身去连接企业原有的用户目录,比如AD或LDAP,用那里的账号密码来验证用户的身份,验证通过后,dex会生成一个标准的令牌(比如JWT)返回给应用,告诉应用“这个用户是谁,他有什么权限”。
dex最大的优点就是“承上启下”,它避免了企业在推行统一身份认证时,需要把所有的用户数据从老系统(如AD)迁移到一个新系统的麻烦和风险,企业可以继续使用已经投资和维护多年的AD作为唯一的用户信息“真相源”,而让dex负责与各种现代应用打交道,这既保护了现有投资,又让新技术的引入变得顺畅。
除了连接传统的企业目录,dex还有一个很实用的功能:它可以同时连接多个身份提供商(IdP),这意味着,企业可以设置让员工通过公司的AD登录,而外部合作伙伴或者承包商则可以通过Google账号或者GitHub账号来登录同一个应用,dex会处理好这些不同来源的身份验证,并对应用提供统一的用户标识信息,这对于需要与外部协作的场景非常方便。
dex是开源的,这意味着企业可以完全掌控自己的身份认证流程,可以根据自己的需求进行定制化的开发和部署,不用担心被某个商业产品供应商绑定,它通常被部署在Kubernetes集群中,与云原生技术栈无缝集成,非常适合正在向容器化和微服务架构转型的企业。
在权限管理方面,dex主要负责的是认证(Authentication),也就是解决“你是谁”的问题,它可以通过配置,从后端用户目录(如AD的组信息)中获取用户的群组归属信息,并将这些信息作为声明(Claims)包含在生成的令牌里,至于更细粒度的授权(Authorization),即“你能做什么”,通常由各个应用根据令牌中的信息来自行决定,Kubernetes就可以根据令牌中的群组信息,来赋予用户对不同命名空间的访问权限,这样,dex就和企业的权限管理体系紧密地结合在了一起。
dex作为一个轻量级、可插拔的身份认证中间件,确实非常适合于希望用一套方案统一管理对内对外多种应用登录入口的企业,特别是那些已经拥有成熟用户目录(如Active Directory)并大量采用云原生技术的组织,它降低了统一身份管理的复杂度,提高了安全性,是构建现代企业IT基础设施的一个关键组件。

本文由度秀梅于2025-12-31发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:http://waw.haoid.cn/wenda/71710.html
