如何配置Rundeck OSS实现自动登录?(GCP IAP前置认证场景)
解决方案:Rundeck OSS 对接GCP IAP前置认证(禁用自身登录)
1. 移除原有AD认证环境变量
删除所有Rundeck JAAS LDAP相关环境变量,包括但不限于:
RUNDECK_JAAS_LDAP_PROVIDERURLRUNDECK_JAAS_LDAP_USERBASEDN- 所有
RUNDECK_JAAS_LDAP_*前缀的变量
2. 配置JAAS头部认证模块
创建或修改Rundeck的JAAS配置文件(Docker环境路径通常为/etc/rundeck/jaas-login.conf),添加以下配置:
rundeck { com.dtolabs.rundeck.jetty.jaas.JettyHeaderLoginModule required debug="true" headerName="X-Goog-Authenticated-User-Email" userHeader="X-Goog-Authenticated-User-Email" roleHeader="X-Goog-Authenticated-User-Groups" roles="user,admin" # 可自定义默认角色,或从IAP传递的组头获取 ignoreCase="true"; };
注:GCP IAP会自动在请求头注入
X-Goog-Authenticated-User-Email(格式如accounts.google.com:user@example.com)和X-Goog-Authenticated-User-Groups(用户所属GCP组),直接用这些字段作为Rundeck的用户、角色来源即可。
3. 配置Rundeck信任IAP代理
在rundeck-config.properties中添加代理信任配置,防止头部信息被伪造:
server.forward-headers-strategy=NATIVE server.use-forward-headers=true server.trusted-proxies=35.191.0.0/16,130.211.0.0/22 # 替换为实际GCP IAP代理IP段
4. 禁用Rundeck原生登录功能
在rundeck-config.properties中添加以下配置,关闭登录页面并启用自动登录:
rundeck.login.enabled=false rundeck.user.create.enabled=false rundeck.automatic.login=true
5. 角色映射配置(可选)
若需根据IAP传递的GCP组自动分配Rundeck角色,可在framework.properties中添加映射规则:
rundeck.security.roleMapping.admin=gcp-admin-group@example.com rundeck.security.roleMapping.user=gcp-user-group@example.com
6. 验证配置
重启Rundeck服务后,通过IAP访问Rundeck URL,应自动完成登录,无需输入账号密码。可通过Rundeck右上角用户信息确认当前登录身份是否为IAP传递的用户。
内容的提问来源于stack exchange,提问作者Gary Turner
相关产品推荐
相关产品推荐

