首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

Jenkins API用户认证方式

编程知识
2024年08月04日 19:30

1、概述

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

2、Jenkins环境

  本文示例基于Jenkins 2.452.3版本进行演示,详细的环境构建可参考《Centos7下安装配置最新版本Jenkins(2.452.3)》这篇博文。

3、Jenkins API用户认证方式

  在《Jenkins如何使用CrumbIssuer防御CSRF攻击》的深入探讨中,我们不仅详细剖析了Jenkins的跨站请求伪造防护机制,还实际演示了通过用户名结合密码以及用户名结合Token两种方式来进行Jenkins API的调用。为了进一步加深理解,本文将对这两种认证方法——即使用用户名加密码,以及用户名加Token的方式——进行更为详尽的阐述与说明。

3.1 传入用户名和密码

调用接口前,先确保调用接口传递的用户名及用户密码的正确性。

以curl客户端为例,使用-u方式传入用户名和密码, 获取当前用户的Crumb。

curl -s -u zmc:123456 http://10.20.31.153:8080/jenkins/crumbIssuer/api/json
{"_class":"hudson.security.csrf.DefaultCrumbIssuer","crumb":"1fc9fb418bb0f908903593c06981ec9881d69eec3202190813de724cbf77451e","crumbRequestField":"Jenkins-Crumb"}%     

3.2 用户名+密码方式(URL)

URL中将用户名和密码嵌入其中,格式为用户名:密码@JenkinsURL,也可以实现相同效果。

curl -s http://zmc:123456@10.20.31.153:8080/jenkins/crumbIssuer/api/json 
{"_class":"hudson.security.csrf.DefaultCrumbIssuer","crumb":"a91a4cec96c751651abb1350164dca3ab0b87444f588f0d06ba51e1813c96c69","crumbRequestField":"Jenkins-Crumb"}%      

3.3 传入用户名和Token 

用户只能为自己颁发API Token,比如现在登陆用户是admin,它是不能为其他用户颁发API Token。

 用户登陆Jenkins UI界面,并进行API Token颁发。

可以为不同应用颁发不同Token,可以对颁发Token进行删除操作。

只有创建时候能看到Token!!!刷新页面后看不到Token值。

以curl客户端为例,使用-u方式传入用户名和Token, 获取当前用户的Crumb。

curl -s -u zmc:1126edb3c4127702f5a754a4d53065b56e http://10.20.31.153:8080/jenkins/crumbIssuer/api/json
{"_class":"hudson.security.csrf.DefaultCrumbIssuer","crumb":"c4641813237a41c1d6e26e3d1afecfcbc1eebc019cf169b45994a9d2c947d438","crumbRequestField":"Jenkins-Crumb"}%  

一定要注意,Token 并不是 Jenkins 的 API 所独特提供的功能,在使用中一定要保证 Token 的安全性与灵活性:

  • 粒度: 不同的应用使用不同的 Token,这样的好处在于对于应用级别的权限进行回收等需求的时候不至于影响到其他应用。

  • 获取: Token 的信息只有在创建的时候才能看到一次,忘记了 Token 的信息等于忘记了密码,不建议提供查看 Token 具体信息的功能,因为这样相当于有一个权限可以查看到所有用户的 Token,此用户权限一旦丢失,相当于所有用户的 Token 信息都存在丢失的风险,而且用户本身无法察觉。一旦忘记,删除此 Token,重新生成 Token 进行使用。

  • 更新: 定期的更新Token(比如每半年,需要根据实际的安全需求) ,Token 在使用期限上进行管理,这种方式会更加安全。

  • 保护: Token 就等同于用户的密码,获得 Token 就获得了以所属用户身份进行操作的权限,自然对于 Token 的保护也要像您的密码一样谨慎。

  • 回收: 对于不再使用的 Token,建议及时地回收,可以预防安全上的风险。

4、总结

  本博文深入探讨了Jenkins API的两种主要用户认证方式:使用用户名与密码以及使用用户名与Token。推荐使用用户名与Token进行API认证:

  (1)安全性方面:

    • 减少密码泄露风险:用户名与密码的组合方式在多个系统和应用中广泛使用,一旦密码泄露,可能会影响到多个系统的安全。而Token是专门为特定应用或服务生成的,即使泄露,其影响范围也相对较小。

    • 可撤销性:如果Token泄露或不再需要,可以轻松地将其删除或禁用,而无需更改用户的密码。

     (2)易用性方面:

    • 一次性配置:用户只需在Jenkins UI中生成一次Token,并在需要的地方使用即可。无需频繁地输入或管理密码。

    • 减少错误:由于Token通常较长且复杂,通过编程方式(如脚本或自动化工具)使用时,可以减少因密码输入错误而导致的认证失败。

      (3)应用场景方面:

    • 对于需要频繁调用Jenkins API的自动化脚本或工具,使用Token进行认证更为合适。这不仅可以提高安全性,还可以方便地管理权限和Token的生命周期。
    • 如果Jenkins API的调用仅限于少数几个受信任的系统或用户,并且这些系统或用户已经通过其他方式进行了身份验证(如IP白名单、VPN等),那么使用用户名与密码进行认证也是可行的,但务必确保密码的复杂性和存储的安全性。

  综上所述,推荐使用用户名与Token进行Jenkins API认证。这种方式不仅提高了安全性,还便于Token的管理。当然,在实际应用中,还需要根据具体情况进行权衡和选择。

From:https://www.cnblogs.com/zhangmingcheng/p/18342053
本文地址: http://shuzixingkong.net/article/775
0评论
提交 加载更多评论
其他文章 三.mysql问答合集
目录三.MySQL3.1 关系型和非关系型数据库的区别关系型数据库非关系型数据库3.2 登录数据库的方式,如何远程登录3.3 MySQL的服务结构,当客户端发起请求后,处理过程3.4 如何设置或者重置MySQL密码3.5 DDL,DML,DQL,DCL等SQL语句的写法DDL数据定义语句DCL数据控
三.mysql问答合集 三.mysql问答合集 三.mysql问答合集
使用python对Excel表格某个区域保存为图片
实际工作中,我们经常会把表格某个区域(如:A1:F5)或某个图形保存为图片,如何用python自动做到这一点?不知屏幕前的小伙伴有没有遇到过类似的需求,此刻脑海里有木有一丢丢思路。 python操作excel的第三方库有很多,个个都有各自的绝招和擅长的应用场景,简单罗列一下: pyexcel:pye
使用python对Excel表格某个区域保存为图片 使用python对Excel表格某个区域保存为图片
使用 C# 和 ONNX 來玩转Phi-3 SLM
LLM 席卷世界刷新 AI 的认知之后,由于 LLM 需要的硬件要求实在太高,很难在普通设备上运行,因此 SLM 逐漸受到重視,Phi-3 SLM 是由 Microsoft 所开发的模型,可以在你的电脑、手机等设备来运行,小型语言模型 (SLM) 和 ONNX 的结合改变了 AI 互操作性的游戏规则
使用 C# 和 ONNX 來玩转Phi-3 SLM 使用 C# 和 ONNX 來玩转Phi-3 SLM
使用Aspire优雅的进行全栈开发——WinUI使用Semantic Kernel调用智普清言LLM总结Asp.Net Core通过Playwright解析的网页内容
前言 这算是一篇学习记录博客了,主要是学习语义内核(Semantic Kernel)的实践,以及Aspire进行全栈开发的上手体验,我是采用Aspire同时启动API服务,Blazor前端服务以及WinUI的桌面端项目,同时进行三个项目的代码修改,整体感觉很方便,如果代码都修改了只需要启动Aspir
使用Aspire优雅的进行全栈开发——WinUI使用Semantic Kernel调用智普清言LLM总结Asp.Net Core通过Playwright解析的网页内容 使用Aspire优雅的进行全栈开发——WinUI使用Semantic Kernel调用智普清言LLM总结Asp.Net Core通过Playwright解析的网页内容 使用Aspire优雅的进行全栈开发——WinUI使用Semantic Kernel调用智普清言LLM总结Asp.Net Core通过Playwright解析的网页内容
代码随想录Day4
24.两两交换链表中的节点 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例 1: 输入:head = [1,2,3,4] 输出:[2,1,4,3] 示例 2: 输入:head = [] 输出:[] 示例 3:
代码随想录Day4 代码随想录Day4 代码随想录Day4
使用django-treebeard实现树类型存储与编辑
前言 其实之前做很多项目都有遇到跟树相关的功能,以前都是自己实现的,然后前端很多UI组件库都有Tree组件,套上去就可以用。 不过既然用 Django 了,还是得充分发挥一下生态的优势,但是我找了半天,也就这个 treebeard 能用,其他要不停更了要不就功能很拉,没有可视化编辑树的功能。 难道D
使用django-treebeard实现树类型存储与编辑
全双工网卡在实际工作中上下行的网速速率是否一致?千兆网卡的同时上下行速率上限是否一样,网卡速率是上下行之和还是分别等于上下行速率
一直有个问题,就是理论上全双工网卡在运行时上下行的上限速率应该是一致的,但是实际网卡的标识的最高速率是否是指上下行速率之和还是和上下行速率一样。 为了解决这个问题,于是拿了两台台式机,分别装有千兆网卡(全双工),并使用六类线网线,两台主机同时向对方拷贝文件,效果如下: 结论: 全双工的网卡,其上下行
全双工网卡在实际工作中上下行的网速速率是否一致?千兆网卡的同时上下行速率上限是否一样,网卡速率是上下行之和还是分别等于上下行速率 全双工网卡在实际工作中上下行的网速速率是否一致?千兆网卡的同时上下行速率上限是否一样,网卡速率是上下行之和还是分别等于上下行速率
程序员副业探索之电商
在腾讯广告工作期间,我主要负责小程序电商与广告业务,见证了互联网电商行业的剧变,特别是众多电商公司纷纷拥抱私域流量,直播带货成为新风尚,广告投入也在持续增加。通过这些经历,我积累了不少关于互联网电商的经验,并萌生了尝试电商副业的想法。 在小红书上,女装博主们凭借独特的穿搭分享吸引了大量粉丝,“种草”
程序员副业探索之电商 程序员副业探索之电商 程序员副业探索之电商