Rundeck社区版单点登录(SSO)预认证模式实现咨询
Rundeck社区版SSO(预认证模式)实现方案
一、可运行的预认证模式示例(基于Nginx前置代理)
这是目前仍广泛使用的成熟方案,核心是通过反向代理完成身份认证,再将用户信息传递给Rundeck:
1. Nginx配置片段
server { listen 443 ssl; server_name rundeck.example.com; # SSL配置(自行补充证书、加密套件等内容) location / { # 此处对接你的SSO认证逻辑(如LDAP、OAuth2代理等) # 示例:假设已通过外部认证拿到用户名,注入请求头 proxy_set_header X-Remote-User $remote_user; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://localhost:4440; } }
2. Rundeck配置修改(rundeck-config.properties)
# 启用预认证模式 rundeck.security.authentication.provider=preauth # 从请求头获取用户名 preauth.username.header=X-Remote-User # 可选:自动创建不存在的用户 preauth.createUser=true # 可选:传递用户角色(需代理层提供角色信息) preauth.role.header=X-Remote-Roles preauth.role.delimiter=,
3. 验证流程
- 启动Nginx和Rundeck服务
- 访问Nginx代理的Rundeck地址,完成外部SSO认证后,会自动登录到Rundeck系统
二、近期新增的实现方法
1. 社区版OIDC插件支持
现在Rundeck社区版可通过第三方插件实现OpenID Connect(OIDC)SSO,无需依赖预认证代理:
- 安装插件:在Rundeck插件市场搜索并安装
OpenID Connect Authentication插件 - 配置插件:在系统设置中填入OIDC提供商的客户端ID、密钥、授权端点等信息
- 启用插件:将认证provider设置为
oidc,重启Rundeck后即可使用OIDC账号登录
2. JWT预认证扩展
部分场景会用JWT令牌作为预认证凭证:在代理层验证JWT合法性后,将用户名、角色信息注入请求头,Rundeck只需调整预认证的请求头参数即可适配,这种方式比传统预认证更安全,适合微服务架构环境
内容的提问来源于stack exchange,提问作者skp15
相关产品推荐
相关产品推荐

