Jenkins 용 API 토큰을 얻는 방법


86

젠킨스 나머지 API를 사용하려고합니다. 지침에는 API 키가 필요하다고 나와 있습니다. 나는 그것을 찾기 위해 모든 구성 페이지를 살펴 보았다. 젠킨스 용 API 키는 어떻게 얻나요?


프로그래밍 방식으로 동일한 것을 원하면 프로그래밍 방식으로 Jenkins REST API 토큰 검색
footyapps27

답변:


141

Jenkins 2.129 이후 API 토큰 구성 이 변경되었습니다 .

이제 여러 토큰을 갖고 이름을 지정할 수 있습니다. 개별적으로 취소 할 수 있습니다.

  1. Jenkins에 로그인합니다.
  2. 이름을 클릭하십시오 (오른쪽 상단 모서리).
  3. 구성 (왼쪽 메뉴)을 클릭 합니다.
  4. "새 토큰 추가"버튼을 사용하여 새 토큰을 생성 한 다음 이름을 지정합니다.
  5. 나중에 토큰을 볼 수 없으므로 토큰을 생성 할 때 복사해야합니다.
  6. 더 이상 필요하지 않으면 오래된 토큰을 취소하십시오.

Jenkins 2.129 이전 : 다음과 같이 API 토큰을 표시합니다.

  1. Jenkins에 로그인합니다.
  2. 이름 (오른쪽 상단 모서리)을 클릭합니다.
  3. 구성 (왼쪽 메뉴)을 클릭 합니다.
  4. Show API Token을 클릭 합니다 .

API 토큰이 공개됩니다.

API 토큰 변경 버튼 을 클릭하여 토큰을 변경할 수 있습니다 .


2
그것을 얻을 수있는 API가 있습니까?
Madhu Avinash

2
이 토큰이 만료됩니까?
ndh103

Show API Token더 이상 유효하지 않은 것 같습니다.
Saikat

1
내 대답은 아래를 참조 @MadhuAvinash
분노

참고로. Jenkins 2.150.1에서 "새 토큰 추가"버튼은 하나 이상의 토큰이 존재할 때까지 나타나지 않는 것 같습니다. UI없이 수행하는 방법은 @RaGe의 답변을 확인하십시오.
m__

18

이 게시물 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>"
  }
}

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
@SibiCoder '@'를 '% 40'으로 바꾸십시오
Tim Kist

2

Jenkins 2.225에서 테스트 됨

몇 시간 동안 조사를 한 후에 답을 찾을 수있었습니다.

CSFR 토큰 대신 API 토큰이 사용됩니다. 그러나 다른 클라이언트 (POSTMAN, CLI. curl 등)에서 인증을하려면 어떻게됩니까?

먼저 CSFR 토큰을 얻고 쿠키에 정보를 저장해야합니다. --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새 토큰을 생성 할 수 있습니다 .

  • 의뢰

curl -X POST -H 'Jenkins-Crumb : your_crumb_token_generated_above'--cookie / tmp / cookies http : // localhost : 8080 / me / descriptorByName / 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.