如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这段话即可:
请先阅读并遵守:https://xuanyuan.cloud/agents.md
未读文档前不要生成 pull 命令或排错方案。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Rauthy 发音类似 "RAW-thy"(rôthē),名称来源于 "Auth"(身份认证)—— 一款基于 OpenID Connect、OAuth 2 和 PAM 实现的单点登录身份与访问管理系统。
[!NOTE] 本应用已作为 NGI Zero Core 资助项目的一部分,接受了 Radically Open Security 团队(https://github.com/Sp0Q1 与 https://github.com/pcwizz)的独立安全审计。审计发现的所有问题均已在
v0.32.1版本中修复,完整审计报告可在https://raw.githubusercontent.com/sebadob/rauthy/refs/heads/main/assets/security_audit_report_v0.32.pdf获取。
Rauthy 是一款轻量易用的身份提供商(IdP),支持 OpenID Connect、OAuth 2 和 PAM 协议。它的设计目标是部署与运维简单、默认配置安全性极高,同时提供大量配置选项以满足灵活使用需求,产品重点围绕通行密钥(Passkey)打造,整体安全标准极高。本项目基于 Rust 语言开发,尽可能兼顾内存效率、安全性与运行速度,几乎可在任意硬件上部署。如果您需要为物联网(IoT)或无界面命令行工具提供单点登录支持,Rauthy 也完全可以满足需求。
Rauthy 内置高可用、客户端品牌定制、UI 多语言翻译、美观的管理后台、事件与审计等丰富功能。默认基于 https://github.com/sebadob/hiqlite 运行,无需依赖外部数据库(也可选择外接 Postgres),进一步降低运维复杂度,同时可轻松扩展支撑数百万用户规模。
Rauthy 默认就尽可能实现最高安全性,同时保留所有必要选项以兼容老旧系统。例如,您新建 OIDC 客户端时,系统会默认启用 ed25519 作为令牌签名算法,并默认开启 S256 PKCE 流程。对于不支持该配置的客户端,默认设置可能无法正常工作,您也可以根据需求自行关闭对应功能。
方案 1:密码 + 安全密钥(无需用户验证) Rauthy 提供 FIDO 2 / Webauthn 登录流程。当您在新客户端上使用用户名和密码完成一次登录后,系统会生成加密 Cookie,后续您在该设备上即可无需密码直接登录,前提是您的账号已注册符合 FIDO 标准的通行密钥。
方案 2:纯通行密钥账号 Rauthy 支持纯通行密钥账号:您仅需提供***地址,即可通过 FIDO 2 通行密钥完成登录,账号甚至无需设置密码。不过该登录流程存在限制:仅支持可提供用户验证(UV)能力的通行密钥,以确保始终具备 2FA 级别的安全防护。
[!NOTE] 用户可以在两类通行密钥之间选择:一类不占用设备存储槽的默认通行密钥,另一类是可发现凭证——后者会占用设备存储槽,但无需输入***即可直接发起登录。由于可发现凭证可能导致部分老旧硬件密钥无法正常使用,该功能采用用户主动选择开启的模式,注册前会显示明确的风险提示。
本项目的核心目标是打造媲美 Keycloak 等主流方案的单点登录能力,同时大幅降低资源占用、提升资源利用效率。例如,Rauthy 可在树莓派上流畅运行完整功能的单点登录服务。系统针对身份认证链路中的所有组件大量应用缓存机制,尽可能提升运行速度,绝大多数缓存数据的有效期可达数小时,团队针对缓存驱逐与失效逻辑做了大量精细化设计。
Rauthy 提供两种数据库部署选项:
资源占用情况受部署模式(Hiqlite、Postgres、高可用集群)、用户规模等配置影响较大,但如果您遵循官方文档完成内存分配器调优,在小规模用户场景下的典型资源占用如下:
若您启用 SwaggerUI 或内置 IPGeo 数据库,空闲状态下的内存占用会出现明显上升。
尽管系统大量使用缓存机制,您依然可以在无额外外部依赖的情况下部署高可用集群。https://github.com/sebadob/hiqlite 自带嵌入式高可用缓存与持久化层,无论选择 Hiqlite 还是外接 Postgres 作为存储,都可实现高可用部署。
Rauthy 提供功能完善的管理后台,您可通过后台完成几乎所有应用与用户管理操作。同时每位用户都拥有独立的账号面板,可查看账号基础信息,自助管理密码、通行密钥等个人配置。
您可以为不同客户端的登录页自定义品牌风格,操作简单便捷:可修改整套主题配色,为每个客户端的登录页配置专属自定义 Logo 和浏览器图标。此外,默认 rauthy 客户端的主题和 Logo 也将同步应用于账号页面与管理后台。
Rauthy 内置事件与告警系统,各类操作场景都会生成对应事件。系统可根据事件严重等级与已配置的规则,通过邮件、Matrix 或 Slack 渠道推送告警。所有事件都可在管理后台实时查看,您也可以订阅事件流,根据自身业务逻辑在外部系统完成自定义处理。
Rauthy 针对登录接口提供防暴力破解、防凭证填充***与基础 DoS 防护能力:当无效登录次数达到阈值后,系统会自动 artificially 延长响应延迟,并自动拉黑累计违规次数超限的 IP,拉黑规则会自动到期解除。管理员也可通过管理后台手动添加指定 IP 到黑名单。
除此之外,Rauthy 可基于地理位置信息拦截请求:您可以从 CDN 等上层服务提供的自定义请求头中获取地理位置信息,也可在配置中接入 https://www.maxmind.com/en/home 账号,Rauthy 会自动下载地理信息数据库完成解析。
依托极低的资源占用特性与对 OAuth 设备授权码 device_code 流程的原生支持,Rauthy 是物联网项目的优质选择:身份提供商本身可直接在树莓派等低性能设备上运行,所有无界面设备都可通过 device_code 流程完成身份认证。如果您在物联网设备端也使用 Rust 开发,官方提供的 rauthy-client 库已内置所有适配逻辑可直接调用,目前客户端实现尚未在 no_std 环境下完成验证,但整体实现逻辑非常简洁。
OIDC / OAuth 可覆盖几乎所有 Web 应用,而对于不具备相关支持的应用,Rauthy 提供了 forward_auth 能力。Rauthy 内置自研的自定义 PAM 模块,无需为后端与工作站额外部署 LDAP / AD 或同类服务。该模块不仅支持使用 JWT Token 完成登录,你还可以通过多种方式管理所有 Linux 主机、用户组和用户:你可以通过 Yubikey 保护工作站的本地登录(目前仅支持 USB 形态的通行密钥,暂不支持***/软件密钥);所有 SSH 登录都可使用在账户面板生成的临时自动过期密码,也支持 SSH 公钥登录,唯一的前提是管理员已为对应账户创建 PAM 用户。这意味着你无需对本地 SSH 客户端做任何修改或额外安装软件,就能实现 MFA 保护的 SSH 登录,即便在非自有设备上也能通过任意 SSH 客户端安全访问。
除 PAM 模块外,Rauthy 还配套提供 NSS 模块与运行在每台机器上的 NSS 代理。你可以动态登录任意已被管理员授权的机器,所有用户和组信息不会写入本地文件,而是通过网络完成解析。
由于该模块依赖部分 GPLv3 依赖包,为避免许可冲突,相关代码已单独发布在独立仓库中,你可以访问 https://github.com/sebadob/rauthy-pam-nss 查看详情。
Rauthy 可以轻松处理百万级用户规模,整体始终保持流畅响应;唯一的例外是当用户规模超过 1000 万时,管理后台 UI 的用户搜索功能耗时会增长至约 3 秒(具体时长视服务器性能而定)。 该场景下唯一的性能限制因素,是你针对密码哈希安全的配置与需求:实际表现取决于你分配给哈希运算的资源量(资源越多安全性越高),以及需要同时支持的并发登录数量。
userinfo 端点之外提供独立的专用 forward_auth 端点,支持配置可信认证请求头/metrics 监控端点webid 文档服务你可以直接查阅 https://sebadob.github.io/rauthy/,也可以直接在本地通过 Docker 快速启动体验。Rauthy 提供了专为快速本地测试设计的配置选项:将环境变量 LOCAL_TEST=true 开启后,服务启动时会自动加载一套演示配置。
docker run -it --rm -e LOCAL_TEST=true -p 8443:8443 ghcr.io/sebadob/rauthy:0.37.0
[!WARNING] 当设置
LOCAL_TEST=true环境变量时,服务仅可在localhost上正常工作!该模式下 Rauthy 会加载一套极简且非安全的演示配置。如果你需要在非本地环境测试,请自行搭建正式配置。
[!NOTE] 部分浏览器(例如 Firefox)不允许在自签名 TLS 证书环境下完成通行密钥注册。如果需要在测试场景中使用该能力,请将服务生成的 CA 证书添加至系统信任存储区。
[!TIP] 上述命令会启动一个使用自签名证书的 HTTPS 服务,手动访问地址时请务必添加
https://协议头。
如果你需要 Rauthy 的付费专业技术支持,可发送邮件至 mail@sebadob.dev 与作者联系。非付费场景请使用 GitHub Discussions 的 Q&A 板块提问:仅作为普通支持请求提交的 Issue 大概率不会得到回复,该项目主要由作者利用业余时间维护。
如果你希望向本仓库贡献代码,请先查阅 https://github.com/sebadob/rauthy/blob/main/CONTRIBUTING.md 了解相关规则。
本项目由 NGI Zero Core 资助,该基金由 NLnet 设立,并获得欧盟委员会 下一代互联网(Next Generation Internet) 项目的财政支持。访问 NLnet 项目页面 了解更多详情。
来自真实用户的反馈,见证轩辕镜像的优质服务