젠킨스 나머지 API를 사용하려고합니다. 지침에는 API 키가 필요하다고 나와 있습니다. 나는 그것을 찾기 위해 모든 구성 페이지를 살펴 보았다. 젠킨스 용 API 키는 어떻게 얻나요?
답변:
Jenkins 2.129 이후 API 토큰 구성 이 변경되었습니다 .
이제 여러 토큰을 갖고 이름을 지정할 수 있습니다. 개별적으로 취소 할 수 있습니다.
Jenkins 2.129 이전 : 다음과 같이 API 토큰을 표시합니다.
API 토큰이 공개됩니다.
API 토큰 변경 버튼 을 클릭하여 토큰을 변경할 수 있습니다 .
Show API Token
더 이상 유효하지 않은 것 같습니다.
이 게시물 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
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"}}