接入 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 创建
- 登录
https://sso${ENV_DOMAIN_SUFFIX}.${INTERNAL_DOMAIN} - 创建 Provider (OAuth2/OIDC)
- 创建 Application 并绑定 Provider
- 记录 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 登录并完成回调