首页 > 其他分享 >LDAP--Jenkins详解笔记

LDAP--Jenkins详解笔记

时间:2024-11-05 18:31:00浏览次数:2  
标签:-- LDAP dc wyg objectClass jenkins Jenkins ou com

一、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: groups

dn: ou=jenkins,dc=wyg,dc=com
objectClass: organizationalUnit
objectClass: top
ou: jenkins

dn: 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: [email protected]
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

标签:--,LDAP,dc,wyg,objectClass,jenkins,Jenkins,ou,com
From: https://www.cnblogs.com/wangyuanguang/p/18528522

相关文章

  • Profiling an Assembly Program
    Project5:ProfilinganAssemblyProgramGoalInthisprojectyouwilllearnhowtofindwhereaprogramspendsmostoftheexecutiontimeusingstatisticalprofiling,andyouwillimplementyourownstatisticalprofiler.Task0:Downloadtheinitialsources......
  • 系统集成项目管理工程师笔记4 - 第四章 信息系统架构
    信息系统集成项目涉及的架构通常有系统架构、数据架构、技术架构、应用架构、网络架构、安全架构;4.1架构基础架构的本质是决策;4.1.1指导思想通过指导思想的贯彻实施,推动项目多元参与者能保持集成关键价值的一致性理解,从而减少不必要的矛盾与冲突;4.1.2设计原则......
  • 从0开始搭建自己的直播平台
    本文讲述了如何从0开始,利用腾讯云的平台,快速搭建一个直播平台的过程。准备工作要有两个已经备案完成的域名。域名申请及备案的操作,这部分可以直接看腾讯云的文档,也可以等我后面有时间自己再写一下过程。第一步:添加域名并检验cname配置1.先填加一个推流域名填加过程中,需要校......
  • 方程求根
    方程求根1.根的搜索根的搜索是数值分析中求解非线性方程f(x)=0的基本步骤。根的搜索主要通过观察函数图像或简单数值方法确定方程在某个区间上的大致根的位置。一个基本方法是通过区间逐步缩小的方式,寻找函数在某个小区间内符号发生变化的点。区间划分若f(x)在[a,b]......
  • delph12中创建sqlite数据库和表的过程
    varconn:TFDConnection;qry:TFDQuery;beginconn:=TFDConnection.Create(nil);tryconn.DriverName:='SQLite';conn.Params.Values['Database']:='C:\path\to\your\database.db3';//指定数据库文件路径conn.Connected:=True;qry......
  • 第47篇 简单IOC介绍
    1.IOC的各种叫法依赖反转(DependencyInversion),SOLD原则中的D控制反转(InversionofControl)依赖注入DependencyInjection2.什么是依赖注入一个类或对象依赖于另一个类或对象,即一个对象需要另一个对象来完成某个功能OOP中,一个对象通常需要依赖其他对象来实现功能,这一现......
  • 举例说明什么情况下会更倾向于使用抽象类而不是接口
    接口和抽象类都遵循”面向接口而不是实现编码”设计原则,它可以增加代码的灵活性,可以适应不断变化的需求。接口vs抽象类 继承限制:Java中,一个类只能继承一个类,但可以实现多个接口。继承一个类意味着失去了继承其他类的机会。行为表示:接口通常用于表示附加的行为......
  • 举例说明什么情况下会更倾向于使用抽象类而不是接口
    接口和抽象类都遵循”面向接口而不是实现编码”设计原则,它可以增加代码的灵活性,可以适应不断变化的需求。接口vs抽象类 继承限制:Java中,一个类只能继承一个类,但可以实现多个接口。继承一个类意味着失去了继承其他类的机会。行为表示:接口通常用于表示附加的行为......
  • opencv保姆级讲解-人脸识别(5)
    face_recognition介绍face_recognition是一个非常流行的Python库,专门用于人脸识别任务。它基于dlib库和HOG(HistogramofOrientedGradients)特征以及深度学习模型,提供了简单易用的接口来进行人脸检测、面部特征点定位和人脸识别。face_recognition库由AdamGeitge......
  • opencv保姆级讲解——图像预处理(3)
    图像滤波所为图像滤波通过滤波器得到另一个图像什么是滤波器在深度学习中,滤波器又称为卷积核,滤波的过程成为卷积卷积核概念卷积核大小,一般为奇数,如3*35*57*7为什么卷积核大小是奇数?原因是:保证锚点在中间,防止位置发生偏移的原因卷积核大小的影响在深度学习中,卷积......