OIDC

配置过程

OIDC 的配置路径:系统设置用户认证添加OIDC

OIDC 配置界面

如上图所示,在用户认证管理界面中,可以查看和管理已配置的 OIDC 认证方式。点击右上角的"添加"按钮,选择 OIDC 类型即可开始配置。

配置项说明

在 OIDC 配置页面中,需要填写以下配置项:

基础配置

配置项说明
用户不存在时自动注册当找不到可匹配绑定的已有用户时,是否自动创建新用户。
Issuer由身份提供商(IdP)提供,通常以 /.well-known/openid-configuration 结尾。
Client ID客户端标识符,由 IdP 分配。
Client Secret客户端密钥,由 IdP 分配。
scope授权范围,可选,默认为 openid email profile
id_token 签名算法ID Token 的签名算法,默认为 RS256
启用 RP 发起的登出启用后,当用户登出时同时注销 IdP 的登录状态,IdP 的登出回调地址使用下方提供的 Post logout redirect URL。

字段映射

配置项说明
字段映射将 IdP 返回的用户信息映射到系统字段。目前支持映射的字段有昵称、邮箱和手机号,默认昵称使用 openid
用户绑定字段用于和已有用户匹配绑定的字段,可选择邮箱或用户名,默认为邮箱。需要 IdP 返回的用户信息包含 emailusername 字段。

高级配置

配置项说明
HTTP 协议系统回调地址是否使用 HTTP 协议,默认为 HTTPS。
端口系统回调地址的端口,默认为 443/80
State 参数用于校验请求来源,防止 CSRF 攻击。可以填写固定值,强烈建议留空以使用自动生成的随机值。如需使用固定值,请自行评估安全风险。
授权码交换参数传递方式使用授权码交换 Token 时,部分 IdP 可能要求在请求中传递 Client ID 或 Client Secret。可勾选并指定对应的参数名。
用户信息接口请求方法调用获取用户信息的 API 时使用的 HTTP 方法(GET/POST)。
Access Token 传递方式调用用户信息接口时 Access Token 的传递方式:
- Header:通过请求头传递(默认)
- Body:通过请求体传递,配合 POST 方法使用
- Query:通过查询参数传递,配合 GET 方法使用
跳过 SSL 验证请求 IdP 接口时跳过 SSL 证书验证。此选项会使系统面临中间人攻击风险,仅在明确知晓用途时勾选。强烈不推荐在生产环境使用。

使用信息

配置项说明
回调地址用于配置 IdP 的回调 URL。
登出回调地址启用 RP 发起的登出时,用于配置 IdP 的 Post logout redirect URL。

注意:本地开发测试时,请使用 127.0.0.1 而非 localhost,因为 OIDC 登录需要向客户端 Cookie 写入 state 参数用于安全校验。如果登录时窗口闪过但未成功,请检查服务端是否有 state 不匹配的日志,以及请求 Cookie 中是否包含 state 参数。