OAuth2 认证插件

OAuth2 认证插件,支持通过标准 OAuth2 协议进行用户身份认证。

功能特性

  • 支持标准 OAuth2 授权码流程
  • 可配置的 OAuth2 提供商设置
  • 自动用户注册
  • 自定义字段映射
  • 支持嵌套字段映射(自动展平)
  • 支持 HTTP/HTTPS 协议
  • 支持 SSL 证书跳过验证
  • 支持自动重定向到 SSO 登录页面

配置

安装插件后,在认证设置中进行配置:

  1. 进入 设置 > 认证
  2. 点击 添加 并选择 OAuth2
  3. 配置以下设置项

基础配置

配置项说明是否必填
Client IDOAuth2 应用的客户端 ID
Client SecretOAuth2 应用的客户端密钥
Authorization URLOAuth2 提供商的授权端点
Token URLOAuth2 提供商的令牌端点
User Info URLOAuth2 提供商的用户信息端点
ScopeOAuth2 权限范围,默认为 openid profile email
Redirect URI回调地址,默认值为 http(s)://<系统域名>/api/oauth2:redirect

字段映射

配置项说明默认值
Field Map字段映射配置,用于将 OAuth2 返回的字段映射到系统用户字段-
Use this field to bind the user用于绑定已有用户的字段email

字段映射说明:

  • source: OAuth2 提供商返回的字段名(支持嵌套字段,如 user.profile.email
  • target: 系统用户字段(可选值:昵称、邮箱、手机号、用户名)

插件会自动展平嵌套字段,例如:

{
  "id": "123",
  "user": {
    "name": "张三",
    "profile": {
      "email": "zhangsan@example.com"
    }
  }
}

展平后:

{
  "id": "123",
  "user.name": "张三",
  "user.profile.email": "zhangsan@example.com"
}

高级配置

配置项说明
Automatically redirect to SSO URL when unauthenticated未登录时自动重定向到 SSO 登录页面
HTTP如果系统运行在 HTTP 协议上,请勾选此项
Port如果系统服务端口不是 80 或 443,请填写端口号
Skip SSL verification跳过 SSL 证书验证(仅用于测试环境)

其他选项

配置项说明
Sign up automatically when the user does not exist用户不存在时自动注册

使用方法

  1. 在管理后台配置 OAuth2 设置
  2. 用户在登录页面点击 OAuth2 登录按钮
  3. 用户被重定向到 OAuth2 提供商进行认证
  4. 认证成功后,用户被重定向回系统并自动登录

常见 OAuth2 提供商配置示例

企业微信

Authorization URL: https://open.weixin.qq.com/connect/qrconnect
Token URL: https://qyapi.weixin.qq.com/cgi-bin/gettoken
User Info URL: https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo
Scope: snsapi_base

钉钉

Authorization URL: https://login.dingtalk.com/oauth2/auth
Token URL: https://api.dingtalk.com/v1.0/oauth2/userAccessToken
User Info URL: https://api.dingtalk.com/v1.0/contact/users/me
Scope: openid

GitHub

Authorization URL: https://github.com/login/oauth/authorize
Token URL: https://github.com/login/oauth/access_token
User Info URL: https://api.github.com/user
Scope: read:user user:email

GitLab

Authorization URL: https://gitlab.com/oauth/authorize
Token URL: https://gitlab.com/oauth/token
User Info URL: https://gitlab.com/api/v4/user
Scope: read_user

注意事项

  1. 确保 OAuth2 提供商的回调地址配置正确
  2. 在生产环境中不建议启用"跳过 SSL 验证"选项
  3. 字段映射时,确保 source 字段名与 OAuth2 提供商返回的字段名一致