——能力全景、部署方式与仓库源码解读)
authentik面向现代 SSO 的开源身份提供商IdP——能力全景、部署方式与仓库源码解读【免费下载链接】authentikThe authentication glue you need.项目地址: https://gitcode.com/GitHub_Trending/au/authentikauthentik 是一个开源的身份提供商Identity Provider, IdP为现代单点登录SSO场景提供 SAML、OAuth2/OIDC、LDAP、RADIUS 等多协议支持专为自托管环境设计可从小型实验环境平滑扩展到大型生产集群。本文以仓库根目录 README.md 为主线结合 Docker Compose 编排文件、Makefile、pyproject.toml 与 配置默认文件 等源码佐证系统讲解 authentik 的定位、部署路径、核心架构与开发调试方法帮助读者完成从认识到落地的完整闭环。authentik 是什么一个开源的身份提供商IdPREADME 开篇给出了 authentik 的精确定位authentik is an open-source Identity Provider (IdP) for modern SSO. It supports SAML, OAuth2/OIDC, LDAP, RADIUS, and more, designed for self-hosting from small labs to large production clusters.翻译过来即authentik 是面向现代 SSO 的开源身份提供商支持 SAML、OAuth2/OIDC、LDAP、RADIUS 等协议专为自托管设计覆盖从小型实验室到大型生产集群的场景。这也正是仓库描述中 The authentication glue you need.你需要的身份认证粘合剂的含义——它位于各种应用与用户目录之间统一承担认证与授权职责。在认证之外README 同时说明项目提供enterprise offering企业版用于帮助组织安全地替换 Okta、Auth0、Entra ID、Ping Identity 等既有 IdP实现大规模身份管理。企业版代码以独立模块存在于仓库的 authentik/enterprise 目录含LICENSE、license.py、public.pem等并拥有独立的 EE License与核心的 MIT 许可相互区分。协议支持面从源码看实现分布README 提到的四种核心协议在仓库中都有独立、完整的实现目录可作为深入阅读的入口协议服务端实现出站/集成实现OAuth2 / OIDCauthentik/providers/oauth2含id_token.py、dpop.py、views/、token/authentik/sources/oauth作为 OAuth 源SAMLauthentik/providers/samlauthentik/sources/samlLDAPauthentik/providers/ldapauthentik/sources/ldapRADIUSauthentik/providers/radius—SCIM目录同步authentik/providers/scimauthentik/sources/scim此外还包含 Kerberos、Plex、Telegram 等登录源见 authentik/sources以及丰富的认证流程阶段authentik/stages 下的 identification、password、authenticator_totp、authenticator_webauthn、email、captcha 等共同构成登录源 流程编排 协议输出的完整 IdP 能力链。README 中的 and more 在这些目录中得到了一一印证。安装与部署从单机 Compose 到集群 HelmREADME 列出了四条官方安装路径并明确给出了适用建议Docker Compose推荐用于小型/测试环境KubernetesHelm Chart推荐用于更大规模的部署AWS CloudFormation通过官方模板在 AWS 上部署DigitalOcean Marketplace通过官方 Marketplace 应用一键部署。仓库根目录的 lifecycle/container/compose.yml 正是 Docker Compose 部署的核心编排文件也是理解 authentik 运行时组成的最佳起点。三个核心运行时组件从 compose 文件可见一个最小可用部署包含三个服务services: postgresql: image: docker.io/library/postgres:16-alpine environment: POSTGRES_DB: ${PG_DB:-authentik} POSTGRES_PASSWORD: ${PG_PASS:?database password required} POSTGRES_USER: ${PG_USER:-authentik} healthcheck: test: [CMD-SHELL, pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}] volumes: - database:/var/lib/postgresql/data server: image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2026.11.0-rc1} command: server ports: - ${COMPOSE_PORT_HTTP:-9000}:9000 - ${COMPOSE_PORT_HTTPS:-9443}:9443 volumes: - ./data:/data - ./custom-templates:/templates worker: image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2026.11.0-rc1} command: worker volumes: - /var/run/docker.sock:/var/run/docker.sock - ./data:/data - ./certs:/certs - ./custom-templates:/templatespostgresql持久化后端使用 PostgreSQL 16PG_PASS用${PG_PASS:?database password required}强制要求必须提供缺省即启动失败这是刻意为之的fail fast安全设计serverWeb 服务主体监听 9000HTTP与 9443HTTPS.env中通过AUTHENTIK_SECRET_KEY签名密钥、AUTHENTIK_POSTGRESQL__*数据库连接注入配置worker异步任务与 outpost 管理进程挂载 Docker socket 以便管理嵌入式/外部 outpost同时挂载./certs与./custom-templates供自定义证书和模板使用。server 与 worker 使用同一镜像默认ghcr.io/goauthentik/server:2026.11.0-rc1通过command区分角色并通过depends_oncondition: service_healthy保证数据库就绪后才启动。容器入口脚本中的职责分工lifecycle/ak 是容器内的引导脚本揭示了各进程的实际启动逻辑server、worker、allinone都会先执行wait_for_db内部调用python -m lifecycle.wait_for_db等待数据库可用dump_config直接调用python -m authentik.lib.config输出解析后的最终配置是排查配置问题的利器以 root 运行时脚本会自动根据 Docker socket 的 GID 创建同名组并将authentik用户加入其中见check_if_root_and_run随后用setpriv降权运行体现了容器内最小权限的实践。.env 环境变量速查变量默认值说明PG_DBauthentik数据库名PG_USERauthentik数据库用户PG_PASS无必填数据库密码缺失时启动失败AUTHENTIK_SECRET_KEY无必填签名密钥缺失时启动失败AUTHENTIK_IMAGEghcr.io/goauthentik/server镜像仓库AUTHENTIK_TAG2026.11.0-rc1镜像版本标签COMPOSE_PORT_HTTP9000HTTP 宿主机端口COMPOSE_PORT_HTTPS9443HTTPS 宿主机端口Kubernetes / AWS / DigitalOcean 部署路径KubernetesHelm ChartREADME 明确推荐用于更大规模部署核心组件server、worker、outpost由 Helm Chart 统一编排配合自动扩缩容与滚动升级。仓库源码层面Kubernetes outpost 控制器位于 authentik/outposts/controllers/k8s与 Docker 控制器docker.py并列说明同一套 outpost 管理逻辑可同时面向容器与集群两种运行时。AWS CloudFormation官方模板的生成逻辑位于 lifecycle/aws含app.py、template.yaml、cdk.json基于 AWS CDK 定义基础设施Makefile 中的aws-cfn目标即执行pnpm --dir lifecycle/aws run aws-cfn生成模板。这也解释了 README deploy on AWS using our official templates 的实现来源。DigitalOcean Marketplace面向 DO 的镜像化一键部署入口适合在 DO 平台上快速验证不涉及自定义基础设施代码。适用前提说明以上端口号、镜像标签2026.11.0-rc1与版本号均以当前仓库 pyproject.toml 中version 2026.11.0-rc1及 compose 文件实际内容为准实际安装时请以官方发布的最新稳定版标签为准。仓库中的开发与贡献体系README 将贡献者引导至 Developer Documentation 目录其中文档风格指南位于 style-guide.mdx要求贡献文档遵循统一术语、格式与可访问性规范。仓库为开发与 CI 提供了一整套 Makefile 目标Makefile核心包括目标作用make run运行主 server 与 worker等价于uv run ak allinonemake run-watch监听py,rs变更自动热重载make test运行服务端测试并生成 coverage 报告make lint/make lint-fixPythonblack、ruff、mypy、bandit与 Rustfmt、clippy、deny静态检查make migrate执行 Django 数据库迁移uv run python -m lifecycle.migratemake dev-reset删除并重建开发数据库至全新安装状态make install安装 node、web、core 全部依赖make gen从数据库提取 schema 并生成 Go/Rust/TS API 客户端make docker基于当前源码树构建 Docker 镜像make docs构建文档站点从依赖清单看技术栈pyproject.toml 的依赖列表直接反映了 authentik 的技术底座可作为了解其架构的快捷方式Web 框架Django 5.2django5.2.17 Django REST Frameworkdjangorestframework3.18.0 drf-spectacularOpenAPI schema 生成多租户django-tenants3.13.0支撑 brands/tenants 模块异步与任务channels4.3.2、uvicorn0.52.4、django-dramatiq-postgresworker 任务队列安全加密cryptography、argon2-cffi、fido2WebAuthn、webauthn3.0.0、pyjwt、jwcrypto、xmlsecSAML 签名协议与集成ldap3、pyradRADIUS、requests-oauthlib、twilioSMS、duo-clientDuo MFA、msgraph-sdkMicrosoft Entra可观测性OpenTelemetry 系列 SDK 与 instrumentation、sentry-sdk、prometheusdjango-prometheus前端Web UI 使用 Lit TypeScript源码位于 web/src构建产物通过web/static.go嵌入。依赖中还包含ak-guardianPython 侧权限守卫库与多个位于 packages 的自研 Django 增强包django-channels-postgres、django-dramatiq-postgres、django-postgres-cache它们作为 workspace 成员与主项目一起开发、发布。安全策略与许可模型README 将安全信息指向 SECURITY.md其中明确采用**负责任披露responsible disclosure**流程漏洞应通过私有安全通告渠道而非公开渠道报告定期开展独立渗透测试与安全审计CVE 的分类依据 NIST 对 vulnerability 的定义支持版本策略当前仓库 SECURITY.md 标注 2026.5.x 与 2026.8.x 两个受支持版本线x 为各线最新补丁版本提交漏洞报告时应包含受影响版本、复现步骤、影响评估、附加信息日志/配置/缓解建议。许可方面README 展示了三份并行的许可证许可适用范围MIT License核心代码LICENSECC BY-SA 4.0文档站点website/LICENSEauthentik EE License企业版模块authentik/enterprise/LICENSE这种核心 MIT 文档 CC BY-SA 企业功能专属许可的三层结构在开源代码与商业化企业版之间划出了清晰的边界。从源码结构验证 README 的能力描述README 是项目的门面而仓库源码则提供了可逐条验证的证据。下表把 README 的若干关键论断与源码落点一一对应README 表述源码证据supports SAML, OAuth2/OIDC, LDAP, RADIUS, and moreproviders 目录下的 oauth2、saml、ldap、radius 完整实现designed for self-hosting ... to large production clusters同时提供 Docker 控制器 与 K8s 控制器覆盖单机到集群enterprise offeringauthentik/enterprise 独立模块与 EE LicenseAWS CloudFormation ... official templateslifecycle/aws 基于 CDK 的模板生成工程文档风格规范website/docs/developer-docs/docs/style-guide.mdx快速上手路线图基于上述内容从零开始体验 authentik 的推荐路径是本地验证参照 compose.yml 编写.env至少提供PG_PASS与AUTHENTIK_SECRET_KEY执行docker compose up -d启动 postgresql server worker首次登录访问http://host:9000/if/flow/initial-setup/创建管理员账号完成 bootstrap 流程对应 blueprints/system/bootstrap.yaml 定义的系统引导蓝图配置登录源与流程在 Web UI 中配置来源LDAP/OAuth/SAML 等与认证流程对应 authentik/sources 与 authentik/stages接入应用创建 Provider协议输出端并绑定 Application将业务系统接入 SSO大规模部署需要横向扩展时迁移至 Kubernetes Helm Chart 部署模式参与开发按 Developer Documentation 搭建本地环境使用make run-watch热重载开发提交前运行make lint与make test保证质量。小结作为 authentik 官方仓库的门面文档README 用极短的篇幅勾勒出了项目的完整轮廓一个支持 SAML、OAuth2/OIDC、LDAP、RADIUS 等协议的开源 IdP为自托管而生提供从 Docker Compose、Kubernetes 到 AWS/DigitalOcean 的多条部署路径并通过 MIT CC BY-SA EE 的三层许可体系兼顾开源与商业化。而深入仓库源码后可以看到这些简洁表述背后是完整的协议实现、双运行时 outpost 控制器、基于 Django 5.2 的多租户架构与自动化 CI 体系。无论你是要部署一个生产级 IdP、将现有系统接入 SSO还是希望参与这样一个大型开源项目的开发README 给出的入口与本文梳理的源码地图都能帮助你快速定位、按图索骥。【免费下载链接】authentikThe authentication glue you need.项目地址: https://gitcode.com/GitHub_Trending/au/authentik创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考