如何解决带有远程 URL 选项的基本身份验证
我正在使用远程 URL 选项,该选项可访问远程 Web 服务器以检索所需数据。简单地使用这个, https://rundeck:test@myserver.com 有效。但是,我想以安全的方式传递密码,所以... 选项 1 使用“安全密码输入”并从密钥存储中检索密码,但是密码不会添加到选项 2 中的远程 URL 中,选项 2 使用远程 URL,https://rundeck:${option.password.value} @myserver.com。我的远程服务器接收密码为 ${option.password.value} 而不是在选项 1 中检索到的实际密码值。我知道安全远程身份验证不能在选项中使用,但是我不相信我看到了限制关于我想用 Rundeck 文档中的安全 † 密码输入做什么。 最后,在 Secure † Password input 选项中输入密码会将密码添加到上面提到的 URL 中。我已经测试并验证了 ${option.password.value} 值可以在作业的步骤中传递,该部分有效。但是,它似乎不适用于级联选项。 非常感谢任何评论。
解决方法
目前,安全选项值不作为远程选项的一部分进行扩展,您可以建议它here(类似于this)。或者,您可以为此创建一个特定的自定义 plugin。
另一种方法是设计一个工作流,使用 HTTP Workflow Step Plugin(在 URL 中传递您的安全密码作为身份验证的一部分)来访问网络服务 + JQ Filter 以生成所需的数据,然后在另一个/步骤中,您可以使用数据变量获取该数据。
像这样:
- defaultTab: nodes
description: ''
executionEnabled: true
id: 7f34f7ff-c4a3-4616-a2aa-0df491450366
loglevel: INFO
name: HTTP
nodeFilterEditable: false
options:
- name: mypass
secure: true
storagePath: keys/password
valueExposed: true
plugins:
ExecutionLifecycle: null
scheduleEnabled: true
sequence:
commands:
- configuration:
authentication: None
checkResponseCode: 'false'
method: GET
printResponse: 'true'
printResponseToFile: 'false'
proxySettings: 'false'
remoteUrl: https://user:${option.mypass}@myserver.com
sslVerify: 'true'
timeout: '30000'
nodeStep: false
plugins:
LogFilter:
- config:
filter: .
logData: 'true'
prefix: result
type: json-mapper
type: edu.ohio.ais.rundeck.HttpWorkflowStepPlugin
- exec: echo "name 2 is ${data.Name2}"
keepgoing: false
strategy: node-first
uuid: 7f34f7ff-c4a3-4616-a2aa-0df491450366
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。