JenkinsのAPIトークンを取得する方法


86

jenkins restapiを使用しようとしています。指示では、APIキーが必要であると書かれています。私はそれを見つけるために設定ページ全体を調べました。jenkinsのAPIキーを取得するにはどうすればよいですか?


プログラムで同じものが必要な場合は、プログラムでJenkins REST APIトークンを取得する
footyapps27 2018

回答:


141

Jenkins 2.129以降、APIトークンの構成が変更されました

これで、複数のトークンを作成して名前を付けることができます。それらは個別に取り消すことができます。

  1. Jenkinsにログインします。
  2. 名前をクリックします(右上隅)。
  3. [構成](左側のメニュー)をクリックします。
  4. [新しいトークンの追加]ボタンを使用して新しいトークンを生成し、名前を付けます。
  5. 後でトークンを表示できないため、トークンを生成するときにトークンをコピーする必要があります。
  6. 不要になったときに古いトークンを取り消します。

Jenkins 2.129より前:APIトークンを次のように表示します。

  1. Jenkinsにログインします。
  2. あなたの名前(右上隅)をクリックします。
  3. [構成](左側のメニュー)をクリックします。
  4. [ APIトークンの表示]をクリックします

APIトークンが公開されます。

[ APIトークン変更]ボタンをクリックすると、トークン変更できます。


2
それを取得するためのAPIはありますか?
Madhu Avinash 2018

2
このトークンは期限切れになりますか?
ndh103 2018年

Show API Tokenもはや有効ではないようです。
サイカット2018

1
下に私の答えを参照してください@MadhuAvinash
レイジ

ご参考までに。Jenkins 2.150.1では、少なくとも1つのトークンが存在するまで、[新しいトークンの追加]ボタンが表示されないようです。UIなしでそれを行う方法については、@ RaGeの回答を確認してください。
m__

18

この投稿を行うUI以外の方法Jenkins2.129は次のとおりです。

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

これは次を返します:

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

Pre Jenkins 2.129

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

2
カールリクエストにCSRFクラム(wiki.jenkins.io/display/JENKINS/Remote+access+API)を含める必要があります。そうしないと、403:Forbiddenで失敗します。
MKesper

どのようなユーザー名がname@domain.comであれば、我々はジェンキンスサーバでシングルサインオンを有効にしている
SibiCoder

2
交換'@ '%40'で試してみてください@SibiCoder
ティムKistの

2

Jenkins2.225でテスト済み

数時間研究した後、私は答えを見つけることができました:

CSFRトークンの代わりにApiトークンが使用されます。ただし、他のクライアント(POSTMAN、CLI、curlなど)から認証を行う場合はどうなりますか。

まず、CSFRトークンを取得し、情報をCookieに保存する必要があります。 --cookie-jar

  • リクエスト

curl -s --cookie-jar / tmp / cookies -u username:password 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_generated_above '--cookie / tmp / cookies http:// localhost:8080 / me / descriptionorByName / jenkins.security.ApiTokenProperty / generateNewToken?newTokenName = \ your_token_name -u username:password

  • 応答

{"status": "ok"、 "data":{"tokenName": "my android token"、 "tokenUuid": "c510e26c-b2e8-4021-bf79-81d1e4c112af"、 "tokenValue": "11a2a0c91913d1391d8e8cb155ca714581"}}

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.