跳转至

接入 SSO 登录

场景:应用需要用户身份认证功能 预计时间:30 分钟 前置条件:已完成部署第一个应用


概述

平台提供 Authentik 作为统一 SSO 服务:

  • 访问地址https://sso${ENV_DOMAIN_SUFFIX}.${INTERNAL_DOMAIN}
  • 协议:OIDC (OpenID Connect)

ENV_DOMAIN_SUFFIX 生产为空,staging 为 -staging


接入步骤

1. 创建 OIDC 应用

方式 1: 联系运维创建(推荐)

提供以下信息: - 应用名称:my-app - Redirect URI:https://my-app${ENV_DOMAIN_SUFFIX}.${INTERNAL_DOMAIN}/auth/callback

方式 2: 自己在 Authentik UI 创建

  1. 登录 https://sso${ENV_DOMAIN_SUFFIX}.${INTERNAL_DOMAIN}
  2. 创建 Provider (OAuth2/OIDC)
  3. 创建 Application 并绑定 Provider
  4. 记录 Client ID/Secret

2. 将 Client Secret 存入 Vault

bash vault kv put secret/platform/<env>/my-app client_id=... client_secret=...

3. 在应用中集成 OIDC

以 NextAuth 为例:

typescript providers: [ { id: "authentik", name: "Authentik", type: "oauth", wellKnown: `${process.env.OIDC_ISSUER}/.well-known/openid-configuration`, clientId: process.env.OIDC_CLIENT_ID, clientSecret: process.env.OIDC_CLIENT_SECRET, }, ],

配置环境变量: OIDC_ISSUER=https://sso${ENV_DOMAIN_SUFFIX}.${INTERNAL_DOMAIN}/application/o/my-app OIDC_CLIENT_ID=... OIDC_CLIENT_SECRET=...


验证

  • 访问应用登录页
  • 跳转到 Authentik 登录并完成回调