微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带有远程 URL 选项的基本身份验证

如何解决带有远程 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 举报,一经查实,本站将立刻删除。