如何获取Jenkins的API令牌


Answers:


139

自Jenkins 2.129起,API令牌配置已更改

您现在可以拥有多个令牌并为其命名。它们可以单独撤销。

  1. 登录到詹金斯。
  2. 单击您的姓名(右上角)。
  3. 单击配置(左侧菜单)。
  4. 使用“添加新令牌”按钮生成一个新令牌,然后命名。
  5. 生成令牌时必须复制令牌,因为以后无法查看令牌。
  6. 不再需要时撤销旧令牌。

在Jenkins 2.129之前:显示API令牌,如下所示:

  1. 登录到詹金斯。
  2. 单击您的姓名(右上角)。
  3. 单击配置(左侧菜单)。
  4. 点击显示API令牌

API令牌已显示。

您可以通过单击“更改API令牌”按钮来更改令牌


2
有没有API可以做到这一点?
Madhu Avinash

2
这个令牌会过期吗?
ndh103 '18 -10-2

Show API Token似乎不再有效。
塞卡特'18

1
@MadhuAvinash在下面查看我的答案
RaGe

仅供参考。在Jenkins 2.150.1上,直到至少存在一个令牌后,“添加新令牌”按钮才出现。请检查@RaGe的答案,以了解如何在没有UI的情况下执行此操作。
m__19年

17

进行Jenkins 2.129发布的非UI方法是:

curl 'https://<jenkinsURL>/me/descriptorByName/jenkins.security.ApiTokenProperty/generateNewToken' \
--data 'newTokenName=foo' \
--user username:Password

返回:

{
  "status": "ok",
  "data": {
    "tokenName": "foo",
    "tokenUuid": "<uuid>",
    "tokenValue": "<redacted>"
  }
}

詹金斯2.129

curl http://<username>:<password>@<jenkins-url>/me/configure 

2
您需要在curl请求中包括CSRF碎屑(wiki.jenkins.io/display/JENKINS/Remote+access+API),否则它将失败并显示403:Forbidden。
MKesper

如果用户名是name@domain.com,该怎么办?我们已在jenkins服务器中启用了单点登录
SibiCoder

2
@SibiCoder尝试更换'@'以'%40'
蒂姆KIST

1

在Jenkins 2.225中测试

经过几个小时的研究,我可以找到答案:

使用Api令牌代替CSFR令牌。但是,如果要从任何其他客户端(POSTMAN,CLI。curl等)进行身份验证,会发生什么情况。

首先,您需要获取CSFR令牌,并将信息保存在Cookie中, --cookie-jar

  • 请求

curl -s --cookie-jar / tmp / cookies -u用户名:密码http:// localhost:8080 / crumbIssuer / api / json

  • 响应

{“ _class”:“ hudson.security.csrf.DefaultCrumbIssuer”,“ crumb”:“ bc92944100d12780cfc251c9255f3f323a475562b4ee0d8b9cc6e4121f50a450”,“ crumbRequestField”:“ Jenkins-Crumb”}

然后我们可以读取cookie--cookie并生成新令牌:

  • 请求

curl -X POST -H'Jenkins-Crumb:your_crumb_token_genic_above'--cookie / tmp / cookies http:// localhost:8080 / me / descriptorByName / jenkins.security.ApiTokenProperty / generateNewToken?newTokenName = \ your_token_name -u用户名:密码

  • 响应

{“ status”:“ ok”,“ data”:{“ tokenName”:“我的Android令牌”,“ tokenUuid”:“ c510e26c-b2e8-4021-bf79-81d1e4c112af”,“ tokenValue”:“ 11a2a0c91913d1391d8e8cb155ca714581”}}

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.