Skip to content

feat: 新增单点登录功能#217

Merged
mouday merged 1 commit intodromara:masterfrom
Bisns:master
Apr 4, 2026
Merged

feat: 新增单点登录功能#217
mouday merged 1 commit intodromara:masterfrom
Bisns:master

Conversation

@Bisns
Copy link
Copy Markdown
Contributor

@Bisns Bisns commented Feb 4, 2026

OpenID Connect (OIDC) 单点登录配置指南

本项目已集成 OpenID Connect (OIDC) 单点登录功能,支持 pocket-id 等 OIDC 提供商。

功能特性

  • 使用 authlib 库实现标准 OIDC 协议
  • 支持自动创建用户账号
  • 不修改现有数据模型
  • 与现有 JWT 认证系统无缝集成

配置方式

1. 环境变量配置

.env 文件中添加以下配置:

# 启用 OIDC 单点登录
OIDC_ENABLED=true

# OIDC 客户端 ID(必填)
OIDC_CLIENT_ID=your_client_id

# OIDC 客户端密钥(必填)
OIDC_CLIENT_SECRET=your_client_secret

# OIDC 提供商的 Issuer URL(必填,不包含 .well-known/openid-configuration)
OIDC_ISSUER_URL=https://your-oidc-provider.com

# OIDC 请求的权限范围(可选,默认为 "openid profile email")
OIDC_SCOPES=openid profile email

# 自动创建用户的默认角色(可选,默认为 1)
# 1 = 普通用户(RoleEnum.USER)
# 10 = 管理员(RoleEnum.ADMIN)
OIDC_AUTO_CREATE_USER_ROLE=1

# 自动创建用户的默认状态(可选,默认为 false)
# true = 启用账号
# false = 禁用账号(需要管理员手动启用)
OIDC_AUTO_CREATE_USER_STATUS=false

重要说明:

  • 回调地址由系统自动生成(/api/oidc/callback),无需手动配置
  • 在 OIDC 提供商中配置回调地址时,使用完整 URL,例如:https://xxx.com/api/oidc/callback
  • 生产环境建议使用 HTTPS 协议

注意事项

  1. 本实现尽可能不修改现有数据模型,OIDC 用户使用现有的 UserModel
  2. OIDC 用户的 password 字段为空字符串,不影响系统功能
  3. 用户可以同时使用 OIDC 登录和传统登录(如果管理员为 OIDC 用户设置了密码)
  4. 系统会自动处理用户创建和更新,无需手动干预

@mouday mouday merged commit d01d4fe into dromara:master Apr 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants