【问题标题】:How to properly authenticate into Jenkins webhooks from Github when LDAP is enabled?启用 LDAP 后,如何从 Github 正确验证 Jenkins Webhook?
【发布时间】:2014-05-25 20:03:41
【问题描述】:

我们已经完成了大量工作,并且已经非常接近让 Jenkins 在向 Github 推送时自动启动构建。但是,Github 在尝试发布到 Github 插件 webhook 时记录了来自 Jenkins 的错误,如下所示:

错误 401 没有这样的用户 'CN=Github Account,OU=Jenkins,OU=Applications,DC=mydomain,DC=com' 或者密码错误;嵌套异常是 javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 52e, vece?]

我们在环境中启用了 LDAP 以允许活动目录登录。在我们的域上创建了一个名为“github”的帐户,并被授权为 Jenkins 用户。 我们可以通过输入此帐户的用户名和密码来手动登录 Jenkins,它可以按预期工作。“github”帐户已在项目中获得授权,可用于工作中的 READ 和 BUILD 指令.

在 Github 上,push webhook 的 url 定义如下:

http://github:password@jenkins.mydomain.com:8080/github-webhook/

我们可以确认推送事件有效地触发了对 URL 的发布,但响应是 401 错误详细信息,如上所述。我们知道帐户有效且密码正确,但我们被卡住了,因为我们无法理解为什么 Jenkins 会提示它无效。

我们使用以下链接作为指南:

http://fourkitchens.com/blog/2011/09/20/trigger-jenkins-builds-pushing-github

据我们所知,我们的配置与其他在博客和 Stackoverflow 上发布成功的人的配置之间的唯一区别是我们使用 LDAP 身份验证。

有没有人有任何指导可以帮助我们克服这个障碍?目前,我们可以成功地手动运行构建,所以我们从 Jenkins 到 Github 的交流是最重要的。但是 Github 上的 Jenkins 是一个令人沮丧的不行。

【问题讨论】:

    标签: authentication github build jenkins webhooks


    【解决方案1】:

    这正在工作。这是出了什么问题。配置以下字符串时,请注意用户名和密码:

    http://github:password@jenkins.mydomain.com:8080/github-webhook/

    在我们的例子中,密码包含了 Jenkins 被绊倒的特殊字符。带有特殊字符的用户名和密码必须经过 URL 编码,否则身份验证将失败。比如下面的密码

    !test+pw

    必须是 URL 编码如下:

    %21test%2Bpw

    【讨论】:

    • 在 URL 中提供凭据不应被视为令人满意的安全答案。私有 URL 更好,但并不完美。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-10
    • 2023-02-09
    相关资源
    最近更新 更多