ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

快速上手 authentik:3 步搭好可自托管的身份认证与 SSO 中心

快速上手 authentik:3 步搭好可自托管的身份认证与 SSO 中心 快速上手 authentik3 步搭好可自托管的身份认证与 SSO 中心【免费下载链接】authentikThe authentication glue you need.项目地址: https://gitcode.com/GitHub_Trending/au/authentik公司系统越来越多员工却在每个系统里记一套账号Grafana 一套、内部 OA 一套、LDAP 里还有一套。想统一登录商业 IdP 按人头收费数据还留在别人家。开源的 authentik 就是来解决这件事的它是一个自托管的身份提供商IdP支持 SAML、OAuth2/OIDC、LDAP、RADIUS 等主流协议帮你把用户是谁这件事集中管理。项目定位一个自托管的开源 IdPauthentik 官方给自己的定位是authentication glue认证胶水把分散在各处的用户来源、应用系统、认证策略粘合成一层统一身份。它适合两类人中小团队没有专职安全团队但想让内部几十个工具共享一套登录运维/平台工程师需要在实验室到生产集群之间灵活选择部署方式从 Docker Compose 单机到 Kubernetes 都可以。代码主体是 PythonDjango Go Rust 的多语言结构MIT 协议开源。管理界面长这样它解决什么问题不用单独罗列功能清单直接看几个典型痛点账号分散、离职难清理。员工离职往往要挨个系统删账号。authentik 把用户集中存放在 Directory 里应用只认它发的身份用户支持按路径类似文件夹组织配合组Group和绑定Binding控制谁能看到哪个应用删除一个人就能切断全部访问。协议太杂接不动。老系统要 LDAPSaaS 要 SAML新应用要 OIDC网络设备认 RADIUS。authentik 内置了 providers/ 目录下的全套协议 ProviderOAuth2、SAML、LDAP、RADIUS、Proxy、RAC、SCIM 等一份用户数据可以同时服务这些协议。反过来它也能把外部目录当作来源Source同步进来比如把 Active Directory、Google Workspace、GitHub、企业微信等接成身份源见 users-sources/sources/。登录流程写死在代码里。来自新地区的登录要加一步 MFA新员工第一次登录要改密码这类规则商业产品往往只能在 UI 表单里勾选。authentik 把登录过程拆成可编排的 Flow 和 Stage后文详述逻辑在界面上拖出来还能用策略Policy做条件判断。快速上手用 Docker Compose 跑起 authentik官方推荐 Docker Compose 用于测试和小型生产环境要求约 2 核 CPU / 2 GB 内存起步。最小路径三步# 1. 下载官方 compose 文件并生成密钥 wget https://docs.goauthentik.io/compose.yml echo PG_PASS$(openssl rand -base64 36 | tr -d \n) .env echo AUTHENTIK_SECRET_KEY$(openssl rand -base64 60 | tr -d \n) .env # 2. 启动 docker compose pull docker compose up -d浏览器访问http://服务器地址:9000在初始设置向导中给默认管理员akadmin设密码。之后在管理界面里依次Applications 里新建应用 Provider如 OAuth2/OpenID Connect→ 拿到 Client ID/Secret 填进目标应用如 Grafana→ Directory 里建第一个用户就完成了一次完整的 SSO 闭环。详细步骤可参考 first-steps 文档。核心特性深解析Flow / Stage把登录流程变成可视化编辑器是什么。authentik 把一次认证拆成阶段Stage——比如输入用户名密码、输入 TOTP 验证码、展示验证码、发送邮件——再用流程Flow把这些阶段按条件串起来形成登录、注册、找回密码等完整旅程。怎么用。在 Flow 编辑器里拖拽添加 Stage 节点、条件分支Expression 语法即可比如给默认登录流程加一个条件分支request.geoip.country不是本国时追加一个 TOTP 校验 Stage。改完即生效不用发版。适合谁。需要条件化 MFA分角色差异化登录体验的团队。所有内置流程初始设置、注册、恢复本身也是 Flow意味着你可以把它整个换掉。Outposts把认证能力派到网络各处是什么。Outpost 是部署在目标系统旁的小型代理组件负责代理认证、注入身份头等重活。Server 内置一个 embedded outpost也可以按需再拉起独立的。怎么用。在管理界面点击新建 Outpost选择类型Proxy / LDAP / RADIUS 等如果宿主机开了 Dockerauthentik 可以直接通过 Docker socket 帮你部署和管理无需手工维护容器适合谁。两类场景一是接老系统——给不支持现代 SSO 的应用套一层 Proxy Provider把 Cookie/Basic Auth 换成 authentik 会话二是让 LDAP/RADIUS 客户端如网络设备、Windows 域控直接指向 authentik 的 Outpost而不必改客户端配置。事件与审计每次登录都留痕是什么。authentik 的 events 模块把认证、管理操作、策略判定都记录成事件可以按用户、应用、IP 检索支持 diff 视图看配置变更前后差异还能基于事件触发告警与通知。怎么用。系统页的事件面板提供统计图表和详情对比适合谁。有等保/合规审计要求的组织。相比事后翻应用日志这里能直接回答谁在什么时间、从哪个 IP、通过哪个应用登过陆这类问题。实战场景从入职到多因子登录新员工入职。在 Directory 邀请或创建用户 → 拉入对应的组 → 通过 Binding 让组自动获得对应应用可见性 → 邀请邮件里附带初始设置链接新员工自己完成改密和 MFA 注册。整个过程不碰任何业务系统配置跨系统 SSO。给 Grafana 建一个 OAuth2 Provider拿到 Client ID/Secret/Slug 填入 Grafana 配置用户登录后直接落到 Grafana 首页同一份用户身份可以同时驱动 SAML 应用、LDAP 客户端。应用之间互相信任登录一次即可。风险加验。在默认登录 Flow 的密码 Stage 之后加一个条件分支新设备或异地 IP 时追加 WebAuthn/TOTP Stage普通场景则直接放行。MFA 方式TOTP、WebAuthn 密钥、短信、静态口令在 stages/ 下都有现成实现。authentik vs 商业 IdP选型对比社区版MIT与主流商业方案的关键差异价格为常见公开报价量级实际以厂商报价为准维度authentik 社区版OktaAuth0许可成本免费约 $2~10/人/月随功能档位上升免费额度后按 MAU 计费约 $2~8/人/月自托管完全支持数据在自己机房基本仅 SaaS企业级有限场景基本仅 SaaS协议SAML、OAuth2/OIDC、LDAP、RADIUS、Proxy、SCIM 等全以 OIDC 为主SAML 支持有限流程定制Flow/Stage 全可视化 策略表单化 付费功能表单化 Action 脚本定制边界源码级API 层API 层高可用/企业增强需自行搭建HA 文档支持产品内置产品内置选择 authentik 的主要动因通常是自托管与数据主权、成本、深度定制。代价也要说清楚社区版的 HA、故障转移、合规报表需要你自己在 Kubernetes/反向代理层面搭建官方企业版见 enterprise/才把这些打包成产品特性。生产部署与运维要点HA 与扩缩Server 无状态Kubernetes Helm 部署时可水平扩容 负载均衡PostgreSQL 做主从。参考 high-availability 文档 与 install/kubernetes。反向代理与 HTTPS生产环境务必前置 Nginx/Traefik 等处理 TLS见 reverse-proxy 文档。注意内部统一 UTC不要改容器时区会影响 OAuth/SAML 签名校验。镜像版本官方已废弃:latesttag固定使用具体版本 tag如:2025.12升级前读 upgrade 文档。Docker socket 风险Compose 默认把 Docker socket 挂进 worker 以便自动部署 Outpost有权限放大风险敏感环境可改用 socket proxy 或手工部署 Outpost。时钟与备份数据库备份 /media文件目录备份即可恢复邮件SMTP建议配置用于告警、找回和通知。下一步部署细节install-config 文档应用接入add-secure-apps 文档。想读源码或提 issuegit clone https://gitcode.com/GitHub_Trending/au/authentik贡献流程见 CONTRIBUTING.md开发环境说明见 website/docs/developer-docs/。建议现在就做一件事在一台 2 核 2 GB 的机器上按上面的三步把 authentik 跑起来给最顺手的那个应用比如 Grafana 或 GitLab接上 OAuth2 登录——跑通一次完整 SSO 后再决定要不要把它作为团队统一 IdP。【免费下载链接】authentikThe authentication glue you need.项目地址: https://gitcode.com/GitHub_Trending/au/authentik创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进