Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
73 changes: 72 additions & 1 deletion ruoyi-fastapi-backend/.env.dev
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,77 @@ LOG_SERVICE_NAME = 'ruoyi-fastapi-backend'
# Worker 标识(auto 自动生成)
LOG_WORKER_ID = 'auto'

# -------- 统一认证中心 OIDC 配置 --------
# 默认关闭;启用前必须配置生产密钥、Pepper 和已注册 Origin。
# 是否启用统一认证中心 OIDC 功能
OIDC_ENABLED = false
# OIDC 签发者地址(必须为公开的绝对 URL)
OIDC_ISSUER = 'https://auth.example.com'
# OIDC 对外公开基址,须与 OIDC_ISSUER 一致
OIDC_PUBLIC_BASE_URL = 'https://auth.example.com'
# 是否强制所有授权请求使用 PKCE
OIDC_REQUIRE_PKCE = true
# 允许的 PKCE 方法,多个值使用逗号分隔(当前仅支持 S256)
OIDC_PKCE_METHODS = 'S256'
# 校验令牌时间戳时允许的时钟偏差(秒)
OIDC_ALLOWED_CLOCK_SKEW_SECONDS = 60
# 授权码有效期(秒)
OIDC_AUTHORIZATION_CODE_TTL_SECONDS = 90
# 登录、同意等交互状态有效期(秒)
OIDC_INTERACTION_TTL_SECONDS = 300
# ID Token 有效期(秒)
OIDC_ID_TOKEN_TTL_SECONDS = 300
# Access Token 默认有效期(秒)
OIDC_ACCESS_TOKEN_TTL_SECONDS = 600
# Access Token 允许的最大有效期(秒)
OIDC_MAX_ACCESS_TOKEN_TTL_SECONDS = 1800
# Refresh Token 闲置有效期(秒)
OIDC_REFRESH_TOKEN_IDLE_SECONDS = 604800
# Refresh Token 绝对有效期(秒)
OIDC_REFRESH_TOKEN_ABSOLUTE_SECONDS = 2592000
# SSO 会话闲置超时时间(秒)
OIDC_SSO_IDLE_SECONDS = 1800
# SSO 会话绝对有效期(秒)
OIDC_SSO_ABSOLUTE_SECONDS = 28800
# SSO“记住我”模式的绝对有效期(秒)
OIDC_SSO_REMEMBER_ABSOLUTE_SECONDS = 604800
# OIDC 签名算法
OIDC_SIGNING_ALGORITHM = 'RS256'
# 签名密钥来源,可选 file、kms、hsm
OIDC_SIGNING_KEY_SOURCE = 'file'
# 签名私钥文件路径(file 模式使用)
OIDC_SIGNING_PRIVATE_KEY_PATH = ''
# 签名私钥加密密钥
OIDC_SIGNING_KEY_ENCRYPTION_KEY = ''
# 当前启用的签名密钥 KID,留空由数据库 active 密钥决定
OIDC_ACTIVE_KID = ''
# 密钥轮换期间旧密钥保留时间(秒)
OIDC_KEY_ROTATION_OVERLAP_SECONDS = 86400
# 不透明 Token 哈希 Pepper(至少 32 bytes,生产环境必须配置)
OIDC_TOKEN_HASH_PEPPER = ''
# 允许的 CORS Origin 列表,多个值使用逗号分隔
OIDC_CORS_ALLOWED_ORIGINS = ''
# 登录交互页面 URL
OIDC_INTERACTION_LOGIN_URL = 'https://auth.example.com/auth-center/login'
# 授权同意页面 URL
OIDC_INTERACTION_CONSENT_URL = 'https://auth.example.com/auth-center/consent'
# 交互错误页面 URL
OIDC_INTERACTION_ERROR_URL = 'https://auth.example.com/auth-center/error'
# SSO Cookie 名称(必须使用 __Host- 前缀)
OIDC_SSO_COOKIE_NAME = '__Host-ruoyi-sso'
# SSO Cookie 是否启用 Secure 属性
OIDC_SSO_COOKIE_SECURE = true
# SSO Cookie SameSite 策略(当前必须为 lax)
OIDC_SSO_COOKIE_SAMESITE = 'lax'
# SSO Cookie Domain(__Host- Cookie 必须留空)
OIDC_SSO_COOKIE_DOMAIN = ''
# 是否启用 Legacy 认证隔离
OIDC_LEGACY_AUTH_ISOLATION_ENABLED = true
# 审计日志保留天数
OIDC_AUDIT_RETENTION_DAYS = 180
# Back-channel Logout 请求超时时间(秒)
OIDC_BACKCHANNEL_LOGOUT_TIMEOUT_SECONDS = 5

# -------- 传输层加解密配置 --------
# 是否启用传输层加解密
TRANSPORT_CRYPTO_ENABLED = false
Expand Down Expand Up @@ -187,7 +258,7 @@ TRANSPORT_CRYPTO_ENABLED_PATHS = ''
# 强制要求传输层加密的路径列表,多个值使用逗号分隔
TRANSPORT_CRYPTO_REQUIRED_PATHS = ''
# 排除传输层加密的路径列表,多个值使用逗号分隔
TRANSPORT_CRYPTO_EXCLUDE_PATHS = '/openapi.json,/docs,/docs/oauth2-redirect,/redoc,/transport/crypto/frontend-config,/transport/crypto/public-key,/common/download,/common/download/resource,/common/files,/system/file/download'
TRANSPORT_CRYPTO_EXCLUDE_PATHS = '/openapi.json,/docs,/docs/oauth2-redirect,/redoc,/transport/crypto/frontend-config,/transport/crypto/public-key,/common/download,/common/download/resource,/common/files,/system/file/download,/.well-known/openid-configuration,/.well-known/oauth-authorization-server,/oauth2/authorize,/oauth2/token,/oauth2/userinfo,/oauth2/jwks,/oauth2/revoke,/oauth2/introspect,/oauth2/logout'

# -------- 插件依赖安装策略配置 --------
# 策略模式:可填单一模式,或按环境映射。可选 disabled、plan_only、explicit、locked、offline
Expand Down
73 changes: 72 additions & 1 deletion ruoyi-fastapi-backend/.env.dockermy
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,77 @@ LOG_SERVICE_NAME = 'ruoyi-fastapi-backend'
# Worker 标识(auto 自动生成)
LOG_WORKER_ID = 'auto'

# -------- 统一认证中心 OIDC 配置 --------
# 默认关闭;启用前必须配置生产密钥、Pepper 和已注册 Origin。
# 是否启用统一认证中心 OIDC 功能
OIDC_ENABLED = false
# OIDC 签发者地址(必须为公开的绝对 URL)
OIDC_ISSUER = 'https://auth.example.com'
# OIDC 对外公开基址,须与 OIDC_ISSUER 一致
OIDC_PUBLIC_BASE_URL = 'https://auth.example.com'
# 是否强制所有授权请求使用 PKCE
OIDC_REQUIRE_PKCE = true
# 允许的 PKCE 方法,多个值使用逗号分隔(当前仅支持 S256)
OIDC_PKCE_METHODS = 'S256'
# 校验令牌时间戳时允许的时钟偏差(秒)
OIDC_ALLOWED_CLOCK_SKEW_SECONDS = 60
# 授权码有效期(秒)
OIDC_AUTHORIZATION_CODE_TTL_SECONDS = 90
# 登录、同意等交互状态有效期(秒)
OIDC_INTERACTION_TTL_SECONDS = 300
# ID Token 有效期(秒)
OIDC_ID_TOKEN_TTL_SECONDS = 300
# Access Token 默认有效期(秒)
OIDC_ACCESS_TOKEN_TTL_SECONDS = 600
# Access Token 允许的最大有效期(秒)
OIDC_MAX_ACCESS_TOKEN_TTL_SECONDS = 1800
# Refresh Token 闲置有效期(秒)
OIDC_REFRESH_TOKEN_IDLE_SECONDS = 604800
# Refresh Token 绝对有效期(秒)
OIDC_REFRESH_TOKEN_ABSOLUTE_SECONDS = 2592000
# SSO 会话闲置超时时间(秒)
OIDC_SSO_IDLE_SECONDS = 1800
# SSO 会话绝对有效期(秒)
OIDC_SSO_ABSOLUTE_SECONDS = 28800
# SSO“记住我”模式的绝对有效期(秒)
OIDC_SSO_REMEMBER_ABSOLUTE_SECONDS = 604800
# OIDC 签名算法
OIDC_SIGNING_ALGORITHM = 'RS256'
# 签名密钥来源,可选 file、kms、hsm
OIDC_SIGNING_KEY_SOURCE = 'file'
# 签名私钥文件路径(file 模式使用)
OIDC_SIGNING_PRIVATE_KEY_PATH = ''
# 签名私钥加密密钥
OIDC_SIGNING_KEY_ENCRYPTION_KEY = ''
# 当前启用的签名密钥 KID,留空由数据库 active 密钥决定
OIDC_ACTIVE_KID = ''
# 密钥轮换期间旧密钥保留时间(秒)
OIDC_KEY_ROTATION_OVERLAP_SECONDS = 86400
# 不透明 Token 哈希 Pepper(至少 32 bytes,生产环境必须配置)
OIDC_TOKEN_HASH_PEPPER = ''
# 允许的 CORS Origin 列表,多个值使用逗号分隔
OIDC_CORS_ALLOWED_ORIGINS = ''
# 登录交互页面 URL
OIDC_INTERACTION_LOGIN_URL = 'https://auth.example.com/auth-center/login'
# 授权同意页面 URL
OIDC_INTERACTION_CONSENT_URL = 'https://auth.example.com/auth-center/consent'
# 交互错误页面 URL
OIDC_INTERACTION_ERROR_URL = 'https://auth.example.com/auth-center/error'
# SSO Cookie 名称(必须使用 __Host- 前缀)
OIDC_SSO_COOKIE_NAME = '__Host-ruoyi-sso'
# SSO Cookie 是否启用 Secure 属性
OIDC_SSO_COOKIE_SECURE = true
# SSO Cookie SameSite 策略(当前必须为 lax)
OIDC_SSO_COOKIE_SAMESITE = 'lax'
# SSO Cookie Domain(__Host- Cookie 必须留空)
OIDC_SSO_COOKIE_DOMAIN = ''
# 是否启用 Legacy 认证隔离
OIDC_LEGACY_AUTH_ISOLATION_ENABLED = true
# 审计日志保留天数
OIDC_AUDIT_RETENTION_DAYS = 180
# Back-channel Logout 请求超时时间(秒)
OIDC_BACKCHANNEL_LOGOUT_TIMEOUT_SECONDS = 5

# -------- 传输层加解密配置 --------
# 是否启用传输层加解密
TRANSPORT_CRYPTO_ENABLED = true
Expand Down Expand Up @@ -187,7 +258,7 @@ TRANSPORT_CRYPTO_ENABLED_PATHS = ''
# 强制要求传输层加密的路径列表,多个值使用逗号分隔
TRANSPORT_CRYPTO_REQUIRED_PATHS = ''
# 排除传输层加密的路径列表,多个值使用逗号分隔
TRANSPORT_CRYPTO_EXCLUDE_PATHS = '/openapi.json,/docs,/docs/oauth2-redirect,/redoc,/transport/crypto/frontend-config,/transport/crypto/public-key,/common/download,/common/download/resource,/common/files,/system/file/download'
TRANSPORT_CRYPTO_EXCLUDE_PATHS = '/openapi.json,/docs,/docs/oauth2-redirect,/redoc,/transport/crypto/frontend-config,/transport/crypto/public-key,/common/download,/common/download/resource,/common/files,/system/file/download,/.well-known/openid-configuration,/.well-known/oauth-authorization-server,/oauth2/authorize,/oauth2/token,/oauth2/userinfo,/oauth2/jwks,/oauth2/revoke,/oauth2/introspect,/oauth2/logout'

# -------- 插件依赖安装策略配置 --------
# 策略模式:可填单一模式,或按环境映射。可选 disabled、plan_only、explicit、locked、offline
Expand Down
73 changes: 72 additions & 1 deletion ruoyi-fastapi-backend/.env.dockerpg
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,77 @@ LOG_SERVICE_NAME = 'ruoyi-fastapi-backend'
# Worker 标识(auto 自动生成)
LOG_WORKER_ID = 'auto'

# -------- 统一认证中心 OIDC 配置 --------
# 默认关闭;启用前必须配置生产密钥、Pepper 和已注册 Origin。
# 是否启用统一认证中心 OIDC 功能
OIDC_ENABLED = false
# OIDC 签发者地址(必须为公开的绝对 URL)
OIDC_ISSUER = 'https://auth.example.com'
# OIDC 对外公开基址,须与 OIDC_ISSUER 一致
OIDC_PUBLIC_BASE_URL = 'https://auth.example.com'
# 是否强制所有授权请求使用 PKCE
OIDC_REQUIRE_PKCE = true
# 允许的 PKCE 方法,多个值使用逗号分隔(当前仅支持 S256)
OIDC_PKCE_METHODS = 'S256'
# 校验令牌时间戳时允许的时钟偏差(秒)
OIDC_ALLOWED_CLOCK_SKEW_SECONDS = 60
# 授权码有效期(秒)
OIDC_AUTHORIZATION_CODE_TTL_SECONDS = 90
# 登录、同意等交互状态有效期(秒)
OIDC_INTERACTION_TTL_SECONDS = 300
# ID Token 有效期(秒)
OIDC_ID_TOKEN_TTL_SECONDS = 300
# Access Token 默认有效期(秒)
OIDC_ACCESS_TOKEN_TTL_SECONDS = 600
# Access Token 允许的最大有效期(秒)
OIDC_MAX_ACCESS_TOKEN_TTL_SECONDS = 1800
# Refresh Token 闲置有效期(秒)
OIDC_REFRESH_TOKEN_IDLE_SECONDS = 604800
# Refresh Token 绝对有效期(秒)
OIDC_REFRESH_TOKEN_ABSOLUTE_SECONDS = 2592000
# SSO 会话闲置超时时间(秒)
OIDC_SSO_IDLE_SECONDS = 1800
# SSO 会话绝对有效期(秒)
OIDC_SSO_ABSOLUTE_SECONDS = 28800
# SSO“记住我”模式的绝对有效期(秒)
OIDC_SSO_REMEMBER_ABSOLUTE_SECONDS = 604800
# OIDC 签名算法
OIDC_SIGNING_ALGORITHM = 'RS256'
# 签名密钥来源,可选 file、kms、hsm
OIDC_SIGNING_KEY_SOURCE = 'file'
# 签名私钥文件路径(file 模式使用)
OIDC_SIGNING_PRIVATE_KEY_PATH = ''
# 签名私钥加密密钥
OIDC_SIGNING_KEY_ENCRYPTION_KEY = ''
# 当前启用的签名密钥 KID,留空由数据库 active 密钥决定
OIDC_ACTIVE_KID = ''
# 密钥轮换期间旧密钥保留时间(秒)
OIDC_KEY_ROTATION_OVERLAP_SECONDS = 86400
# 不透明 Token 哈希 Pepper(至少 32 bytes,生产环境必须配置)
OIDC_TOKEN_HASH_PEPPER = ''
# 允许的 CORS Origin 列表,多个值使用逗号分隔
OIDC_CORS_ALLOWED_ORIGINS = ''
# 登录交互页面 URL
OIDC_INTERACTION_LOGIN_URL = 'https://auth.example.com/auth-center/login'
# 授权同意页面 URL
OIDC_INTERACTION_CONSENT_URL = 'https://auth.example.com/auth-center/consent'
# 交互错误页面 URL
OIDC_INTERACTION_ERROR_URL = 'https://auth.example.com/auth-center/error'
# SSO Cookie 名称(必须使用 __Host- 前缀)
OIDC_SSO_COOKIE_NAME = '__Host-ruoyi-sso'
# SSO Cookie 是否启用 Secure 属性
OIDC_SSO_COOKIE_SECURE = true
# SSO Cookie SameSite 策略(当前必须为 lax)
OIDC_SSO_COOKIE_SAMESITE = 'lax'
# SSO Cookie Domain(__Host- Cookie 必须留空)
OIDC_SSO_COOKIE_DOMAIN = ''
# 是否启用 Legacy 认证隔离
OIDC_LEGACY_AUTH_ISOLATION_ENABLED = true
# 审计日志保留天数
OIDC_AUDIT_RETENTION_DAYS = 180
# Back-channel Logout 请求超时时间(秒)
OIDC_BACKCHANNEL_LOGOUT_TIMEOUT_SECONDS = 5

# -------- 传输层加解密配置 --------
# 是否启用传输层加解密
TRANSPORT_CRYPTO_ENABLED = true
Expand Down Expand Up @@ -187,7 +258,7 @@ TRANSPORT_CRYPTO_ENABLED_PATHS = ''
# 强制要求传输层加密的路径列表,多个值使用逗号分隔
TRANSPORT_CRYPTO_REQUIRED_PATHS = ''
# 排除传输层加密的路径列表,多个值使用逗号分隔
TRANSPORT_CRYPTO_EXCLUDE_PATHS = '/openapi.json,/docs,/docs/oauth2-redirect,/redoc,/transport/crypto/frontend-config,/transport/crypto/public-key,/common/download,/common/download/resource,/common/files,/system/file/download'
TRANSPORT_CRYPTO_EXCLUDE_PATHS = '/openapi.json,/docs,/docs/oauth2-redirect,/redoc,/transport/crypto/frontend-config,/transport/crypto/public-key,/common/download,/common/download/resource,/common/files,/system/file/download,/.well-known/openid-configuration,/.well-known/oauth-authorization-server,/oauth2/authorize,/oauth2/token,/oauth2/userinfo,/oauth2/jwks,/oauth2/revoke,/oauth2/introspect,/oauth2/logout'

# -------- 插件依赖安装策略配置 --------
# 策略模式:可填单一模式,或按环境映射。可选 disabled、plan_only、explicit、locked、offline
Expand Down
73 changes: 72 additions & 1 deletion ruoyi-fastapi-backend/.env.prod
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,77 @@ LOG_SERVICE_NAME = 'ruoyi-fastapi-backend'
# Worker 标识(auto 自动生成)
LOG_WORKER_ID = 'auto'

# -------- 统一认证中心 OIDC 配置 --------
# 默认关闭;启用前必须配置生产密钥、Pepper 和已注册 Origin。
# 是否启用统一认证中心 OIDC 功能
OIDC_ENABLED = false
# OIDC 签发者地址(必须为公开的绝对 URL)
OIDC_ISSUER = 'https://auth.example.com'
# OIDC 对外公开基址,须与 OIDC_ISSUER 一致
OIDC_PUBLIC_BASE_URL = 'https://auth.example.com'
# 是否强制所有授权请求使用 PKCE
OIDC_REQUIRE_PKCE = true
# 允许的 PKCE 方法,多个值使用逗号分隔(当前仅支持 S256)
OIDC_PKCE_METHODS = 'S256'
# 校验令牌时间戳时允许的时钟偏差(秒)
OIDC_ALLOWED_CLOCK_SKEW_SECONDS = 60
# 授权码有效期(秒)
OIDC_AUTHORIZATION_CODE_TTL_SECONDS = 90
# 登录、同意等交互状态有效期(秒)
OIDC_INTERACTION_TTL_SECONDS = 300
# ID Token 有效期(秒)
OIDC_ID_TOKEN_TTL_SECONDS = 300
# Access Token 默认有效期(秒)
OIDC_ACCESS_TOKEN_TTL_SECONDS = 600
# Access Token 允许的最大有效期(秒)
OIDC_MAX_ACCESS_TOKEN_TTL_SECONDS = 1800
# Refresh Token 闲置有效期(秒)
OIDC_REFRESH_TOKEN_IDLE_SECONDS = 604800
# Refresh Token 绝对有效期(秒)
OIDC_REFRESH_TOKEN_ABSOLUTE_SECONDS = 2592000
# SSO 会话闲置超时时间(秒)
OIDC_SSO_IDLE_SECONDS = 1800
# SSO 会话绝对有效期(秒)
OIDC_SSO_ABSOLUTE_SECONDS = 28800
# SSO“记住我”模式的绝对有效期(秒)
OIDC_SSO_REMEMBER_ABSOLUTE_SECONDS = 604800
# OIDC 签名算法
OIDC_SIGNING_ALGORITHM = 'RS256'
# 签名密钥来源,可选 file、kms、hsm
OIDC_SIGNING_KEY_SOURCE = 'file'
# 签名私钥文件路径(file 模式使用)
OIDC_SIGNING_PRIVATE_KEY_PATH = ''
# 签名私钥加密密钥
OIDC_SIGNING_KEY_ENCRYPTION_KEY = ''
# 当前启用的签名密钥 KID,留空由数据库 active 密钥决定
OIDC_ACTIVE_KID = ''
# 密钥轮换期间旧密钥保留时间(秒)
OIDC_KEY_ROTATION_OVERLAP_SECONDS = 86400
# 不透明 Token 哈希 Pepper(至少 32 bytes,生产环境必须配置)
OIDC_TOKEN_HASH_PEPPER = ''
# 允许的 CORS Origin 列表,多个值使用逗号分隔
OIDC_CORS_ALLOWED_ORIGINS = ''
# 登录交互页面 URL
OIDC_INTERACTION_LOGIN_URL = 'https://auth.example.com/auth-center/login'
# 授权同意页面 URL
OIDC_INTERACTION_CONSENT_URL = 'https://auth.example.com/auth-center/consent'
# 交互错误页面 URL
OIDC_INTERACTION_ERROR_URL = 'https://auth.example.com/auth-center/error'
# SSO Cookie 名称(必须使用 __Host- 前缀)
OIDC_SSO_COOKIE_NAME = '__Host-ruoyi-sso'
# SSO Cookie 是否启用 Secure 属性
OIDC_SSO_COOKIE_SECURE = true
# SSO Cookie SameSite 策略(当前必须为 lax)
OIDC_SSO_COOKIE_SAMESITE = 'lax'
# SSO Cookie Domain(__Host- Cookie 必须留空)
OIDC_SSO_COOKIE_DOMAIN = ''
# 是否启用 Legacy 认证隔离
OIDC_LEGACY_AUTH_ISOLATION_ENABLED = true
# 审计日志保留天数
OIDC_AUDIT_RETENTION_DAYS = 180
# Back-channel Logout 请求超时时间(秒)
OIDC_BACKCHANNEL_LOGOUT_TIMEOUT_SECONDS = 5

# -------- 传输层加解密配置 --------
# 是否启用传输层加解密
TRANSPORT_CRYPTO_ENABLED = true
Expand Down Expand Up @@ -187,7 +258,7 @@ TRANSPORT_CRYPTO_ENABLED_PATHS = ''
# 强制要求传输层加密的路径列表,多个值使用逗号分隔
TRANSPORT_CRYPTO_REQUIRED_PATHS = ''
# 排除传输层加密的路径列表,多个值使用逗号分隔
TRANSPORT_CRYPTO_EXCLUDE_PATHS = '/openapi.json,/docs,/docs/oauth2-redirect,/redoc,/transport/crypto/frontend-config,/transport/crypto/public-key,/common/download,/common/download/resource,/common/files,/system/file/download'
TRANSPORT_CRYPTO_EXCLUDE_PATHS = '/openapi.json,/docs,/docs/oauth2-redirect,/redoc,/transport/crypto/frontend-config,/transport/crypto/public-key,/common/download,/common/download/resource,/common/files,/system/file/download,/.well-known/openid-configuration,/.well-known/oauth-authorization-server,/oauth2/authorize,/oauth2/token,/oauth2/userinfo,/oauth2/jwks,/oauth2/revoke,/oauth2/introspect,/oauth2/logout'

# -------- 插件依赖安装策略配置 --------
# 策略模式:可填单一模式,或按环境映射。可选 disabled、plan_only、explicit、locked、offline
Expand Down
1 change: 1 addition & 0 deletions ruoyi-fastapi-backend/cli/core/app_builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -349,6 +349,7 @@ def build(self) -> typer.Typer:
'job': 'cli.groups.job',
'config': 'cli.groups.config',
'crypto': 'cli.groups.crypto',
'oidc': 'cli.groups.oidc',
'gen': 'cli.groups.gen',
'dev': 'cli.groups.dev',
'plugin': 'cli.groups.plugin',
Expand Down
Loading
Loading