如何将其发布给Jenkins以使用基本的Auth标题来建立工作



我正在尝试配置众所周知的事件管理工具,以对詹金斯作业构建URL执行邮政请求以响应某些警报。

在此工具中,出于某种原因我不能放置 jenkins作业构建端点如下:

https://<user>:<apiToken>@my-jenkins.com/blabla/job/blabla/build?token=<myTokenName>

因此,该工具提供的唯一替代方法是将授权详细信息作为标题

在这样做之前,我正在尝试检查是否有效,使用curl 。因此,我将其称为Jenkins URL带有基本auth标题,并使用以下curl命令:

curl -X POST -H 'Authorization:Basic <user:apiToken in base64>' -H 'Jenkins-Crumb:<my-crumb>' 'https://my-jenkins.com/blabla/job/blabla/build?token=<myTokenName>'

,但正在给我一个 401:未授权(用户:my-user的无效密码/令牌(。如果我将与第一个代码段相同的凭据放置在URL中。

我已经阅读了以下文档:https://wiki.jenkins.io/display/jenkins/jenkins/authenticating scripted clients,似乎设置了基本的auth标题很简单,但是我认为我想念一些东西在这里,因为我使用curl时对我不起作用。

我还谷歌搜索了一点,似乎每个人都在URL中使用user:apiToken称呼jenkins构建URL,但是正如我提到的那样,该工具不允许将URL放置。

是否有人使用基本的auth标题进行了詹金斯的作业?

任何帮助将不胜感激。非常感谢!

好吧...相当尴尬,但看来我正在用macos命令行壳生成base64字符串,但它不起作用。

我与Postman同样的事情生成了auth标题,现在它正在工作...

希望对某人有所帮助。

我面临同一问题。以下是我的解决方案。

  1. 使用IAP&amp;在詹金斯面前
  2. 使用新标头来为詹金斯而不是"授权"。对我来说,我使用了"詹金斯 - 授权"标题。
  3. 在nginx配置中,我使用" proxy_set_header"来设置" jenkins-perorization"的"授权"标题。
  4. 在nginx配置中,使用内部IP

nginx配置:

upstream app {
    server jenkin_internal_ip:8080;
}
server {
    listen 80 default_server;
    charset utf-8;
    location / {
        include proxy_params;
        proxy_set_header Authorization $http_jenkins_authorization;
        proxy_pass http://app;
        proxy_redirect off;
    }
}

  • 请记住,nginx配置中的" jenkin_internal_ip"作为jenkins内部IP。

相关内容

  • 没有找到相关文章

最新更新