SuperAPI AI 工具集

zitadel-identity

安全与审计

查看项目

更新于 10-16 05:06

技能介绍

用途:本技能用于搭建和配置 Zitadel 身份提供方(OIDC/OAuth2/SAML),并通过 Caddy 反向代理对外提供服务,同时完成 OIDC 应用集成。

架构与容器:请求经 Internet 进入 Caddy(80/443),再转发至 Zitadel API(h2c://zitadel:8080)与登录 UI(http://zitadel-login:3000);PostgreSQL 支撑 zitadel-init(一次性初始化后退出)、zitadel(API,gRPC/REST 端口 8080)和 zitadel-login(端口 3000)。

关键变量:需配置 ZITADEL_MASTERKEY(32 位随机串,可用 tr -dc A-Za-z0-9 </dev/urandom | head -c 32 生成)、ZITADEL_DATABASE_POSTGRES_HOST、ZITADEL_DATABASE_POSTGRES_USER_PASSWORD、ZITADEL_EXTERNALDOMAIN、ZITADEL_EXTERNALPORT、ZITADEL_EXTERNALSECURE,并由 Caddy 处理 TLS(ZITADEL_TLS_ENABLED=false)。

Caddy 配置要点:/ui/v2/login/* 反代到 http://zitadel-login:3000,其余反代到 h2c://zitadel:8080,gRPC 必须使用 h2c:// 而非 http://。

部署步骤:docker compose up -d postgres;docker compose run zitadel-init;docker compose up -d zitadel zitadel-login caddy;用 curl https://auth.example.com/healthz 验证;控制台位于 https://auth.example.com/ui/console。

OIDC 应用:在控制台 Organization → Projects → Applications 新建,选择 Web/Native/API 类型,配置重定向 URI(如 Nextcloud 的 /apps/user_oidc/code、Windmill 的 /user/login_callback/zitadel),保存后复制 Client ID 与 Client Secret。

服务用户:Users → Service Users 新建并创建 Personal Access Token,分配角色后以 Authorization: Bearer <PAT> 调用 API,例如 https://auth.example.com/management/v1/orgs/me。

常用排查:容器未启动检查 masterkey 是否 32 位;登录页空白检查 Caddy 路由;gRPC 报错检查是否使用 h2c://;OIDC 404 检查外部域名。

限制:官方资料未提供具体的性能、配额、收费或版本兼容性信息,暂未提供;实际变量值与域名需按自身环境替换。