LDAP--Jenkins详解笔记

news/2024/12/26 23:39:18/文章来源:https://www.cnblogs.com/wangyuanguang/p/18528522

一、Ldap的结构

1.组织角色

所有用户都可以登录,但是只有创建时的admin组角色有增删改的权限,相当于是根目录,千万不能删,删了就全没了

注意,admin用户是首个超级登录用户(相当于根),需要用配置文件生成,详见:https://www.cnblogs.com/wangyuanguang/p/18189832

##注意修改wyg部分为自己自定义的账户
~]# vim /etc/openldap/base.ldif
dn: dc=wyg,dc=com
objectClass: dcObject
objectClass: organization
o: wyg.com
dc: wyg
~]#  ldapadd -x -W -D "cn=admin,dc=wyg,dc=com" -f /etc/openldap/base.ldif
Enter LDAP Password:
adding new entry "dc=wyg,dc=com"

2.组

做到用户的组隔离(个人认为没有特殊要求的话,一个组也就够用了,不需要jenkins、harbor、h5ai等接入时单独建设一个组,这样维护起来要维护好几套),当然在做特殊的权限颗粒时可以新增组。
可以通过配置文件生成,也可以直接创建生成
2.1 配置文件创建

~]# vim /etc/openldap/groups.ldif
dn: ou=groups,dc=wyg,dc=com
objectClass: organizationalUnit
objectClass: top
ou: groupsdn: ou=jenkins,dc=wyg,dc=com
objectClass: organizationalUnit
objectClass: top
ou: jenkinsdn: ou=test,dc=wyg,dc=com
objectClass: organizationalUnit
objectClass: top
ou: test~]#  ldapadd -x -W -D "cn=admin,dc=wyg,dc=com" -f /etc/openldap/groups.ldif
Enter LDAP Password:
adding new entry "ou=jenkins,dc=wyg,dc=com"
adding new entry "ou=groups,dc=wyg,dc=com"
adding new entry "ou=test,dc=wyg,dc=com"

2.2 也可以直接在GUI上创建


跳过部分的意思是不添加这些属性,像这种都是灰色无法选取的说明都是必要的属性,不能跳过
提交之后会生成test1的组,和另外新增的几个组(例如jenkins)的属性一样,测试完我就直接删除了

3.用户

用户就是LDAP对外平台主要提供的数据(也可以登录ldap本身)
可以通过配置文件生成、GUI页面新建、GUI页面复制
3.1 配置文件生成
创建用uid登录的用户

~]# vim /etc/openldap/users.ldif
dn: uid=user1,ou=jenkins,dc=wyg,dc=com
ou: jenkins
uid: user1
sn: user1
cn: user1
givenName: user1
mail: readafa@esgyn.local
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
userPassword:: MTIzNDU2
displayName:: 5rGq5YWD5YWJ~]#  ldapadd -x -W -D "cn=admin,dc=wyg,dc=com" -f /etc/openldap/users.ldif
Enter LDAP Password:
adding new entry "ou=jenkins,dc=wyg,dc=com"

3.2 GUI页面新建
找到对应的组,创建新的条目

创建cn登录的用户

Ldap属性配置

1.关于objectClass
LDAP中,一个条目必须包含一个objectClass属性,且需要赋予至少一个值。每一个值将用作一条LDAP条目进行数据存储的模板;模板中包含了一个条目必须被赋值的属性和可选的属性。
objectClass有着严格的等级之分,最顶层是top和alias。例如,organizationalPerson这个objectClass就隶属于person,而person又隶属于top;
objectClass可分为以下3类:
结构型(Structural):如person和organizationUnit;
辅助型(Auxiliary):如extensibeObject;
抽象型(Abstract):如top,抽象型的objectClass不能直接使用。
在OpenLDAP的schema中定义了很多objectClass,下面列出部分常用的objectClass的名称。

account
alias
dcobject
domain
ipHost
organization
organizationalRole
organizationalUnit
person
organizationalPerson
inetOrgPerson
residentialPerson
posixAccount
posixGroup

三、属性中对应jenkins的选项

查看ldap的cn-user用户讲解

[root@node1 jenkins]# ldapsearch -x -D "uid=user1,ou=jenkins,dc=wyg,dc=com" -w 123456
##找到cn-user,'displayName:: 546L5bCP5LqM'表示中文:王小二
# cn-user, jenkins, wyg.com
dn: cn=cn-user,ou=jenkins,dc=wyg,dc=com
sn: test1
userPassword:: MTIzNDU2
uidNumber: 1001
gidNumber: 500
homeDirectory: /home/users/test1
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
cn: cn-user
uid: dl-user
ou: jenkins
displayName:: 546L5bCP5LqM
givenName: given-user

说明:
a:可以用这个登录ldap dn: cn=cn-user,ou=jenkins,dc=wyg,dc=com

b:ldap上显示的用户名 cn: cn-user

C:可选的,在jenkins上显示出来的,sn: test1;displayName:: 546L5bCP5LqM;givenName: given-user

可以在jenkins的配置文件修改(需要重启jenkins),这里用的是displayName,当然可以改成sn或者是givenName,那么ldap的用户里面也要有对应的属性,而且腰设置成“唯一”

[root@node1 jenkins]# cat config.xml|grep displayNameAttributeName<displayNameAttributeName>displayName</displayNameAttributeName>

也可以在jenkins的ldap配置中设置



d:登录jenkins的用户名 uid: dl-user

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/827257.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

系统集成项目管理工程师笔记4 - 第四章 信息系统架构

信息系统集成项目涉及的架构通常有系统架构、数据架构、技术架构、应用架构、网络架构、安全架构; 4.1 架构基础架构的本质是决策; 4.1.1 指导思想通过指导思想的贯彻实施,推动项目多元参与者能保持集成关键价值的一致性理解,从而减少不必要的矛盾与冲突;4.1.2 设计原则太…

举例说明什么情况下会更倾向于使用抽象类而不是接口

接口和抽象类都遵循”面向接口而不是实现编码”设计原则,它可以增加代码的灵活性,可以适应不断变化的需求。 接口 vs 抽象类 继承限制:Java 中,一个类只能继承一个类,但可以实现多个接口。 继承一个类意味着失去了继承其他类的机会。行为表示:接口通常用于表示附加的行为…

智慧测绘数字化管理平台建设方案

随着信息技术的飞速发展,测绘地理信息与遥感专业正经历着一场革命性的变革。智慧测绘数字化管理平台的建设,不仅能够提高测绘数据的准确性和实时性,还能为城市规划、环境保护、灾害预防等领域提供强有力的数据支持。本文将探讨智慧测绘数字化管理平台的建设方案,以期为相关…

劫持微信聊天记录并分析还原 —— 解密数据库(二)

程序以 Python 语言开发,可读取、解密、还原微信数据库并帮助用户查看聊天记录,还可以将其聊天记录导出为csv、html等格式用于AI训练,自动回复或备份等等作用。本工具设计的初衷是用来获取微信账号的相关信息并解析PC版微信的数据库。程序以 Python 语言开发,可读取、解密、…

2024newstarweb题解

w1 headach3会赢吗 源码flag碎片X1: ZmxhZ3tXQTB3 再次查看源码flag碎片X2: IV95NF9yM2Fs 第三个页面也是直接查看源码直接改源码flag碎片X3: MXlfR3I0c1B 下一个页面直接禁用jsflag碎片X4: fSkpKcyF9 ZmxhZ3tXQTB3IV95NF9yM2FsMXlfR3I0c1BfSkpKcyF9 base64解码即可的flag智械危…

判断一个数是不是质数(素数)

​public static boolean isPrime(int n){if (n <= 3) { return n > 1;) for(int i = 2; i < n; i++){if (n % i == 0) { return false;} ) return true;} 质数(也称为素数)是指在大于1的自然数中,除了1和它本身以外不再有其他因数的数。换句话说,质数只能被1和它…

Roaring Bitmap

Roaring Bitmap原理 Roaring Bitmaps 就是一种压缩位图索引,后文统称 RBM,RBM 的用途和 Bitmap 很差不多(比如说索引),只是说从性能、空间利用率各方面更优秀了。 RBM 的主要思想并不复杂,简单来讲,有如下三条:我们将 32-bit 的范围 ([0, n)) 划分为 2^16 个桶,每一个…

36 自然语言处理

自然语言,人类语言 将语言拆分,然后处理 语音识别:语音转文字,本质是音素识别 语音合成

力扣新手村之1342、1672、412

LeetCode: 1342[将数字变成0的操作次数] 1672[最富有客户的资产总量] 412[Fizz Buzz]1342[将数字变成0的操作次数] 题目 链接 LeetCode1342[将数字变成0的操作次数] 详情实例 实例1实例2实例3提示题解 思路 判断 num 是否为0 不为0则判断 num 是否为偶数 num 是偶数则除以2 nu…

什么是java序列化?什么情况下需要序列化?

序列化的定义 Java 序列化是为了保存各种对象在内存中的状态,并且可以把保存的对象状态再读出来。序列化是一种用于处理对象流的机制,它将对象的内容转换成一种可以在网络之间传输的形式。反序列化则是将这种形式的对象恢复成原来的对象。 实现方式 序列化是通过实现​​Seri…

国内首位聋人 Android 软件工程师体验通义灵码,“这真是太棒了”

通义灵码 @workspace 功能发布后,收到了非常多新老朋友的积极反馈,其中被一位特别的朋友留下了深刻的印象。Hi 大家好! 我就是人见人爱、Bug 闪开的通义灵码!上个月,我上线了一项新能力: 体验通义灵码 @workspace:轻松分析项目结构,结合代码仓库理解工程、查询问答等补…