Jenkins基础:API:5:用户认证方式

Jenkins的API可以通过用户名+密码或者用户名+token的方式来进行认证,这篇文章以具体示例来说明具体的使用方式。

Jenkins环境

本文示例的Jenkins的API Token是基于LTS 2.164.3版本进行演示。详细的环境构建可参看:

Job准备

事前可参看如下文章创建相关的Job,也可手动直接在Jenkins上进行操作生成。
在这里插入图片描述

方式1: 传入用户名和密码

以curl客户端为例,使用-u方式传入用户名和密码, 将free_style_job的状态设定为禁用。

liumiaocn:jenkins liumiao$ curl -X POST -u root:liumiaocn -H Jenkins-Crumb:5955de6dcdcdb990b7341ead1045eb64 http://localhost:32002/job/free_style_job/disable
liumiaocn:jenkins liumiao$

从Jenkins页面也能确认此Job状态发生了变化
在这里插入图片描述

方式2: 用户名+密码方式(URL)

URL中将用户名和密码嵌入其中,格式为用户名:密码@JenkinsURL也可以实现相同效果。同样以curl客户端为例,将将free_style_job_copy的状态设定为禁用。

liumiaocn:jenkins liumiao$ curl -X POST -H Jenkins-Crumb:5955de6dcdcdb990b7341ead1045eb64 http://root:liumiaocn@localhost:32002/job/free_style_job_copy/disable
liumiaocn:jenkins liumiao$ 

从Jenkins页面也能确认此Job状态发生了变化
在这里插入图片描述

方式3: 用户名 + token方式

事前先为rooot用户创建tokenName同为test-token1的两个token

liumiaocn:jenkins liumiao$ curl -u root:liumiaocn -H Jenkins-Crumb:5955de6dcdcdb990b7341ead1045eb64 'http://localhost:32002/user/root/descriptorByName/jenkins.security.ApiTokenProperty/generateNewToken' --data 'newTokenName=test-token1' 2>/dev/null |jq .
{
  "status": "ok",
  "data": {
    "tokenName": "test-token1",
    "tokenUuid": "b3d00e35-0fc5-4ca8-8212-6924cc4e7148",
    "tokenValue": "11d4332105f7c745eb0e48827579397bd9"
  }
}
liumiaocn:jenkins liumiao$ 
liumiaocn:jenkins liumiao$ curl -u root:liumiaocn -H Jenkins-Crumb:5955de6dcdcdb990b7341ead1045eb64 'http://localhost:32002/user/root/descriptorByName/jenkins.security.ApiTokenProperty/generateNewToken' --data 'newTokenName=test-token1' 2>/dev/null |jq .
{
  "status": "ok",
  "data": {
    "tokenName": "test-token1",
    "tokenUuid": "cdcce61a-6ec0-4472-93bb-d6c79cfd376d",
    "tokenValue": "110d8a36c8e7c87c44fb69ee3dd7d430b8"
  }
}
liumiaocn:jenkins liumiao$

而刚刚创建完毕的两个token的信息都显示Never used
在这里插入图片描述
以curl客户端为例,使用-u方式传入用户名和token, 将free_style_job的状态设定为启用。

liumiaocn:jenkins liumiao$ curl -X POST -u root:110d8a36c8e7c87c44fb69ee3dd7d430b8 -H Jenkins-Crumb:5955de6dcdcdb990b7341ead1045eb64 http://localhost:32002/job/free_style_job/enable
liumiaocn:jenkins liumiao$

从Jenkins页面也能确认此Job状态发生了变化
在这里插入图片描述
而使用此token信息的情况也能反映了出来,虽然两个名称相同,我们所使用的token显示使用了一次(Used 1 time(s))的信息
在这里插入图片描述

方式4: 用户名+token方式(URL)

URL中将用户名和密码嵌入其中,格式为用户名:token@JenkinsURL也可以实现相同效果。同样以curl客户端为例,将将free_style_job_copy的状态设定为启用。

liumiaocn:jenkins liumiao$ curl -X POST -H Jenkins-Crumb:5955de6dcdcdb990b7341ead1045eb64 http://root:11d4332105f7c745eb0e48827579397bd9@localhost:32002/job/free_style_job_copy/enable
liumiaocn:jenkins liumiao$

从Jenkins页面也能确认此Job状态发生了变化
在这里插入图片描述
而Token使用的情况也发生了变化
在这里插入图片描述

淼叔 CSDN认证博客专家 神经网络 TensorFlow NLP
资深架构师,PMP、OCP、CSM、HPE University讲师,EXIN DevOps Professional与DevOps Master认证讲师,曾担任HPE GD China DevOps & Agile Leader,帮助企业级客户提供DevOps咨询培训以及实施指导。熟悉通信和金融领域,有超过十年金融外汇行业的架构设计、开发、维护经验,在十几年的IT从业生涯中拥有了软件开发设计领域接近全生命周期的经验和知识积累,著有企业级DevOps技术与工具实战。
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页