【问题标题】:How to access Jenkins using basic authentication如何使用基本身份验证访问 Jenkins
【发布时间】:2015-05-17 12:29:59
【问题描述】:

我想使用基本身份验证访问 Jenkins。我已经启动了 Jenkins,如 Quick and Simple Security page 中提到的,用户名为“user”,密码为“password”,并为安全领域选择了委托到 servlet 容器,为授权策略选择了传统模式。 但是当我尝试使用 curl 命令访问作业(my_test_job)的作业配置时:

curl -X GET --user user:password --insecure https:///localhost:9000/job/my_test_job/config.xml

(使用与1 相同的凭据启动服务器),它没有被授权,我可以在 Kenkins 中看到以下日志:

在服务https://localhost:9000/job/my_test_job/config.xml时: hudson.security.AccessDeniedException2:anonymous 缺少 Job/ExtendedRead 权限。

我在这里缺少什么?如何配置 jenkins 以使用简单的基本身份验证进行访问?感谢您的帮助..

注意:我启用了 https 并将端口更改为 9000,我的 jenkins 版本是 1.609

【问题讨论】:

  • 嗨@alkuzad 不。我只想配置 jenkins,使其可以使用上面给出的 curl 命令中的基本身份验证进行访问。
  • 哦,好的。所以一定要使用带有 curl 的 cookie 进行身份验证, --cookie-jar 选项。我也不知道 Jenkins 是否支持这样的授权——它适用于 FTP,该站点显示用于日志记录的弹出窗口——而不是像 Jenkins 那样的自定义登录。 wiki.jenkins-ci.org/display/JENKINS/… 也表示使用 api-key,也许这会是更好的方法?

标签: curl jenkins jenkins-plugins


【解决方案1】:

Jenkins 有自己的身份验证机制,因此默认情况下您无法使用 Apache 基本身份验证访问它(它是一个 java 应用程序,而不是 Apache 网站)。尽管您可以将身份验证委托给您在 Jenkins 前面运行的反向代理。步骤如下:

  1. 考虑安装Reverse Proxy Auth 将身份验证委托给反向代理。

  2. 配置 Apachenginx 以使用 Apache 基本身份验证。请参阅:Apache frontend for securitySecure Jenkins with Apache basic authentication

  3. 通过仅侦听本地 IP 地址来限制您对 Jenkins 的直接访问。

    在 Linux 上,这可以在 /etc/default/jenkins 文件中的 JAVA_ARGS 中进行配置,但可能会因您的 Linux 发行版或操作系统而异。见:How can I get Jenkins to stop listening for remote connections?

  4. 现在通过反向代理端口访问您的 Jenkins。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 2014-12-17
    • 2012-09-08
    • 1970-01-01
    • 2020-10-28
    • 2017-05-25
    相关资源
    最近更新 更多