dex:CoreOS的开源身份认证服务解决方案

dex:CoreOS的开源身份认证服务解决方案

作者:翻译:姚洪 2015-09-06 10:34:47

云计算 dex是近日CoreOS发布的一项新的开源项目,它是一个基于多种标准的身份服务提供者和认证的解决方案。对于企业应用而言, 安全的进行认证和授权是必选项,dex无疑是解决这一问题的一大利器。

近日,CoreOS发布了一个新的开源项目dex,一个基于OpenID Connect的身份服务组件。 CoreOS已经将它用于生产环境:自家的tectonic.com上。用户认证和授权是应用安全的一个重要部分,用户身份管理本身也是一个特别专业和复杂的问题,尤其对于企业应用而言, 安全的进行认证和授权是必选项,dex无疑是解决这一问题的一大利器。

今天我们兴奋的发布CoreOS家族一个新的开源项目 dex:一个基于多种标准的身份服务提供者和认证解决方案。

几乎每一个项目都需要某种认证和用户管理。应用也需要一种方式能让用户从多种平台安全地登录, 例如web、移动端、命令行工具(CLI),以及自动化系统等。开发者通常使用一个依赖于平台的解决方案, 或者当常常发现已有的解决方案无法的解决他们的需求后就自己从头写一个解决方案。

然而, 大多数开发者并不负责安全的业务。让他们自己写认证软件不仅会让他们从核心产品的开发工作中分心,同时也显然会带来软件安全方面的危险。正确的处理安全方面的工作是很有难度的, 我们最近看到很多引人注目的安全事故,在没有被其他工程师或者安全专家做恰当审计的情况下任意而为只会带来更多的风险。

正是基于这些原因, 我们决定开源dex,这样我们已经完成的让dex成为一个安全健壮的平台的工作会让其他人也能受益。开放给社区之后,dex反过来也会从更多的合作者中受益。没有人再需要自己写一遍“忘记密码?”的流程,或者“以X,Y或者Z来登录”的功能了。

项目起名为『dex』是因为它是一个中心化的用户索引, 软件里面其他组件可以基于dex做认证。

核心设计元素

Dex如此独特是它包含了以下这些元素, 这些元素从最开始就驱动着设计和实现:

安全

安全是首要的工作:dex的设计采用了安全和加密的最佳实践来最小化攻击者获得系统访问权限的风险。 更进一步, dex的架构划分也可以减轻任何单个攻击可能带来的损害。例如,dex缺省使用软token生命周期,并自动轮换它的签名秘钥。由于秘钥本身是加密的,攻击者需要在短时间内同时侵入数据库和一个dex worker才能得到一个tocken。

标准

Dex是OpenID Connect(OIDC)核心标准的实现。OIDC(不要与OpenID混淆)是由业界领袖和安全专家基于web安全领域的多年经验合作创建的。它是OAuth 2之上的一层,提供了一个安全并且易于实现的认证协议。今天OIDC 已经作为一个单点登录的解决方案使用在众多互联网巨头里,例如Google、Facebook、Amazon等。

语言与平台无关性

因为dex实现了OpenID Connect(OIDC) 核心标准,所以将dex集成入你的应用中十分简单。仅需要一步:加入你所用的编程语言的OIDC客户端库。我们用Go写了一个 go-oidc,其他的几乎每种语言都有(请审查对应的客户端库以保证有适当的签名验证和协议符合度)。

联合身份

dex有自己的用户的概念, 但也允许通过不同的方式做认证, 称之为连接器connector。 现在, dex自带了两种类型的连接器: 本地local连接器和OIDC 连接器。 当使用local连接器做认证时, 用户使用email和密码通过dex本身提供的定制化UI来登录; 当使用OIDC连接器时, 用户可以通过登录第三方的OIDC身份服务提供方来认证, 例如Google或者Salesforce。

因为dex本身就是一个OIDC身份服务提供者, 它甚至可以做到将多个dex实例串联到一起,每个实例依次将认证工作委派给下一个。

现在用户必须在连接器中做选择,但是在未来我们计划允许身份的链接linking, 这样每个单独的用户都可以以不同的方式登录。 可扩展的连接器架构将会允许与多种身份服务做集成,例如GitHub, LDAP, SAML系统等。

案例学习: Tectonic.com

在CoreOS我们正使用dex的一种方式是做Tectonic客户的注册和认证。当一个用户首次决定成为Tectonic客户并按下Join的按钮时, 他们会被带到https://auth.tectoinc.com, 也就是OpenID Connect术语中的Issuer URL。 他们可以使用自己的Google身份或者输入用户名密码来注册。然后他们会被重定向回Tectonic.com网站来完成注册。

下面的图描述了整个部署:

图:dex架构图解

在我们的防火墙之后,我们有如下几个组件:

  • 一个postgres数据库用作dex的后端存储
  • 一个单独的dex-overlord, 负责轮换秘钥和其他的管理任务
  • 多个dex-worker, 提供前端给终端用户做认证
  • 产品站点,Tectonic.com

在OIDC中的依赖方(Relying Party, RP)-此案例中, 即我们的产品站点-为了一个ID token, 与身份提供者(identity provider, IdP),也就是dex, 交换一个Authorization Token(从终端用户那得到, 这里是Tectnoic的用户)。 注意虽然这里我们把我们的应用和dex都一起放在同一个防火墙后面, 但这并不是必须的。 他们互相之间是通过跨公网的一个TLS连接来沟通;如果你有多个不同的应用跑在不同的环境并都需要认证时这是相当有用的。

当用户选择使用Google账号做认证时,dex就临时变成RP,Google就变成了IdP来认证和识别用户。 一但dex完成了这个工作(通过上面提到的token交换协议), dex就回来成为IdP并完成与Tectonic.com的token交换。

整个过程中token都是加密签名过的,客户端会检查签名。 签名的秘钥会持续的被IdP来轮换并被RP来同步。

dex未来的计划

dex现在已经可以使用, 但是还有许多工作要做。 除了GitHub上的issues, dex路线图中还包括:

  • 授权 – 除了让dex处理认证之外,我们也想要让它成为一个通用的授权服务器
  • 用户管理 – 我们正处理初始开发阶段:开发API让管理员来管理用户, 但是很快它会更加完整并且也会带UI。
  • 多个远程的身份 – 如上所述,用户将会可以使用多种认证方法做认证
  • 更多的连接器类型 – 例如,LDAP、GitHub等。

dex仍然相当年轻, 接下来有很多工作要做。 如果你也对它感兴趣, 我们欢迎你的帮助!

原文链接:http://dockone.io/article/643
 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/263989.html<

(0)
管理的头像管理
上一篇2025-05-04 19:58
下一篇 2025-05-04 20:00

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注