热门搜索:
ghcr.io/dexidp/dex

ghcr.io/dexidp/dex:master-alpine

ghcr.iolinux/amd64master-alpine大小: 未知更新于 2026年5月23日

dex - 联邦式 OpenID Connect 提供程序

Dex 是一项身份服务,它使用 OpenID Connect 为其他应用程序提供身份验证支持。

Dex 通过"连接器"充当其他身份提供程序的门户。这使得 Dex 能够将身份验证委托给 LDAP 服务器、SAML 提供程序或成熟的身份提供程序(如 GitHub、Google 和 Active Directory)。客户端只需编写一次与 Dex 通信的身份验证逻辑,然后由 Dex 处理特定后端的协议。

ID 令牌

ID 令牌是 OpenID Connect 引入的 OAuth2 扩展,也是 Dex 的主要功能。ID 令牌是由 Dex 签名的JSON Web 令牌(JWT),作为 OAuth2 响应的一部分返回,用于证明最终用户的身份。示例 JWT 如下:

ID 令牌包含标准声明,用于确认哪个客户端应用程序登录了用户、令牌何时过期以及用户的身份。

{
"iss": "http://127.0.0.1:5556/dex",
"sub": "CgcyMzQyNzQ5EgZnaXRodWI",
"aud": "example-app",
"exp": 1492882042,
"iat": 1492795642,
"at_hash": "bi96gOXZShvlWYtal9Eqiw",
"email": "jane.doe@coreos.com",
"email_verified": true,
"groups": [
"admins",
"developers"
],
"name": "Jane Doe"
}

由于这些令牌由 Dex 签名并包含基于标准的声明,其他服务可以将其用作服务间凭据。已支持使用 Dex 颁发的 OpenID Connect ID 令牌的系统包括:

  • Kubernetes
  • AWS STS

有关如何请求或验证 ID 令牌的详细信息,请参见《编写使用 Dex 的应用程序》。

Kubernetes 与 Dex

Dex 使用自定义资源定义(Custom Resource Definitions)原生运行在任何 Kubernetes 集群之上,并可通过 OpenID Connect 插件驱动 API 服务器身份验证。客户端(如 https://github.com/int128/kubeloginkubectl)可以代表用户操作,这些用户可以通过 Dex 支持的任何身份提供程序登录集群。

  • 有关将 Dex 作为 Kubernetes 身份验证器运行的更多文档,请参见此处。
  • 有关使用 Dex 的公司和项目的更多信息,请参见此处。

连接器

当用户通过 Dex 登录时,用户身份通常存储在另一个用户管理系统中:如 LDAP 目录、GitHub 组织等。Dex 充当客户端应用程序与上游身份提供程序之间的适配层。客户端只需理解 OpenID Connect 即可查询 Dex,而 Dex 则实现一系列协议来查询其他用户管理系统。

"连接器"是 Dex 用于针对另一个身份提供程序对用户进行身份验证的策略。Dex 实现了针对特定平台(如 GitHub、LinkedIn 和 Microsoft)以及成熟协议(如 LDAP 和 SAML)的连接器。

根据连接器的不同,协议限制可能会阻止 Dex 颁发刷新令牌或返回组成员身份声明。例如,由于 SAML 不提供非交互式刷新断言的方式,如果用户通过 SAML 连接器登录,Dex 将不会向其客户端颁发刷新令牌。刷新令牌支持对于需要离线访问的客户端(如 kubectl)是必需的。

Dex 实现了以下连接器:

名称支持刷新令牌支持组声明支持 preferred_username 声明状态说明
LDAP稳定
GitHub稳定
SAML 2.0稳定

[!WARNING] 未维护,可能存在身份验证绕过漏洞 (https://github.com/dexidp/dex/discussions/1884) | | GitLab | 是 | 是 | 是 | 测试版 | | | OpenID Connect | 是 | 是 | 是 | 测试版 | 包括 Salesforce、Azure 等 | | OAuth 2.0 | 否 | 是 | 是 | 预览版 | | | Google | 是 | 是 | 是 | 预览版 | | | LinkedIn | 是 | 否 | 否 | 测试版 | | | Microsoft | 是 | 是 | 否 | 测试版 | | | AuthProxy | 否 | 是 | 否 | 预览版 | 身份验证代理,如 Apache2 mod_auth 等 | | Bitbucket Cloud | 是 | 是 | 否 | 预览版 | | | OpenShift | 是 | 是 | 否 | 预览版 | | | Atlassian Crowd | 是 | 是 | 是 * | 测试版 | preferred_username 声明必须通过配置进行设置 | | Gitea | 是 | 否 | 是 | 测试版 | | | OpenStack Keystone | 是 | 是 | 否 | 预览版 | |

稳定、测试版和预览版的定义如下:

  • 稳定:经过充分测试,正在积极使用,且不会以向后不兼容的方式更改。
  • 测试版:经过测试,不太可能以向后不兼容的方式更改。
  • 预览版:可能未经核心维护者测试,且可能以向后不兼容的方式更改。

所有连接器功能的变更或弃用将在https://github.com/dexidp/dex/releases中公布。

文档

有关入门、配置和使用指南,请参见官方文档。

报告漏洞

有关报告漏洞的详细信息,请参见我们的安全政策。

获取帮助

  • 对于功能请求和错误,请提交https://github.com/dexidp/dex/issues%E3%80%82
  • 有关使用和开发 Dex 的一般讨论:
  • 加入 CNCF Slack 上的 #dexidp 频道
  • 发起新的https://github.com/dexidp/dex/discussions

贡献

有关开发设置、指南以及如何提交拉取请求,请参见CONTRIBUTING.md。

许可证

本项目采用Apache License, Version 2.0许可证。

镜像拉取常见问题

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

镜像拉取问题咨询请 提交工单。官方公众号:源码跳动。官方技术交流群:51517718。轩辕镜像所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。