的雷竞技下载官网MongoDB 1.12.0的Percona Operator,文档现在有关于如何配置LDAP身份验证和授权的说明。它已经包含了如果OpenLDAP是您的LDAP服务器,如何配置操作符的示例。下面是另一个使用Samba作为LDAP服务器的设置示例。
为了简化安装和配置,我将使用Ubuntu Jammy 22.04 LTS,因为分发存储库包含安装Samba和Kubernetes的包。
这是测试服务器的当前配置:
操作系统:Ubuntu Jammy 22.04 LTS
主机名:samba.percon雷竞技下载官网a.local
IP地址:192.168.0.101
设置Samba
让我们安装必要的包来安装Samba作为PDC和故障排除工具:
|
1
2
3.
|
美元
sudo
恰当的
更新
美元
sudo
恰当的
-y
升级
美元
sudo
恰当的
-y
安装
samba
网-工具
winbind
ldap-跑龙套
|
禁用smbd、winbind和系统解析服务,因为我们需要将samba重新配置为PDC和DNS解析器。同时删除当前samba配置文件/etc/samba/smb.conf。
|
1
2
3.
4
5
6
7
|
美元
sudo
systemctl
停止
smbd
美元
sudo
systemctl
停止
systemd-解决
美元
sudo
systemctl
停止
winbind
美元
sudo
systemctl
禁用
smbd
美元
sudo
systemctl
禁用
systemd-解决
美元
sudo
systemctl
禁用
winbind
美元
sudo
rm
/等/samba/smb
. conf
|
删除/etc/resolv.conf上的符号链接,并将内容替换为“nameserver 127.0.0.1”以使用samba的DNS服务:
|
1
2
|
美元
sudo
rm
-f
/等/决心
. conf
美元
sudo
回声
-e
“命名服务器127.0.0.1”
|
sudo
三通
/等/决心
. conf
|
按照如下配置创建域环境:
域:PERCO雷竞技下载官网NA。当地的
域:PERCON雷竞技下载官网A
管理员密码:PerconaLDAPTest202雷竞技下载官网2
|
1
|
美元
sudo
samba-工具
域
条款
--领域
雷竞技下载官网
。local
--域
雷竞技下载官网
--管理=雷竞技下载官网PerconaLDAPTest2022
|
编辑“/etc/samba/smb.conf”,将“DNS转发器”设置为“8.8.8.8”,用于解析其他区域。我们还将禁用强制TLS认证,因为Percona Operator雷竞技下载官网不支持LDAP与TLS在写这篇文章的时候。
|
1
2
3.
4
5
6
7
8
9
10
11
12
13
14
15
|
美元
猫
/等/samba/smb
. conf
#全局参数
(
全球
]
dns
货代
=
8.8.8.8
netbios
名字
=
SAMBA
领域
=
雷竞技下载官网
。local
服务器
角色
=
活跃的
目录
域
控制器
工作组
=
雷竞技下载官网
ldap
服务器
需要
强大的
身份验证
=
没有
(
sysvol
]
路径
=/var/自由/samba/sysvol
读
只有
=
没有
(
netlogon
]
路径
=/var/自由/samba/sysvol/雷竞技下载官网
。local/脚本
读
只有
=
没有
|
Symlink krb5.conf配置。
|
1
|
美元
sudo
ln
-年代
/var/自由/samba/私人/krb5
. conf
/等
|
取消samba-ad-dc服务的掩码并启动它。确保它将在启动时启动。
|
1
2
3.
|
美元
sudo
systemctl
揭开
samba-广告-直流
美元
sudo
systemctl
开始
samba-广告-直流
美元
sudo
systemctl
启用
samba-广告-直流
|
检查Samba服务是否启动并正在运行
|
1
2
3.
4
5
6
7
8
9
10
11
12
13
14
15
|
美元
sudo
netstat
-tapn
|
grep
samba
tcp
0
0
0.0.0.0
:
389
0.0.0.0
:*
听
4376/samba
:
任务
(
ld
tcp
0
0
0.0.0.0
:
53
0.0.0.0
:*
听
4406/samba
:
任务
(
dn
tcp
0
0
0.0.0.0
:
636
0.0.0.0
:*
听
4376/samba
:
任务
(
ld
tcp
0
0
0.0.0.0
:
135
0.0.0.0
:*
听
4371/samba
:
任务
(
rp
tcp6
0
0
:
:
:
389
:
:
:*
听
4376/samba
:
任务
(
ld
tcp6
0
0
:
:
:
53
:
:
:*
听
4406/samba
:
任务
(
dn
tcp6
0
0
:
:
:
636
:
:
:*
听
4376/samba
:
任务
(
ld
tcp6
0
0
:
:
:
135
:
:
:*
听
4371/samba
:
任务
(
rp
美元
宿主
谷歌
com
谷歌
com
有
地址
172.217.194.101
美元
宿主
samba
.雷竞技下载官网percona
。local
samba
.雷竞技下载官网percona
。local
有
地址
192.168.0.101
|
添加用户和组
现在Samba已经启动并运行,我们现在可以执行用户和组管理了。我们将创建Samba用户和组,并将用户分配给组samba-tool。
|
1
2
3.
4
5
6
7
|
美元
sudo
samba-工具
用户
添加
dbauser01
--姓=User01
--鉴于-名字=Dba
--邮件-地址=dbauser01
@
雷竞技下载官网
。local
DbaPassword1
美元
sudo
samba-工具
用户
添加
devuser01
--姓=User01
--鉴于-名字=Dev
--邮件-地址=devuser01
@
雷竞技下载官网
。local
DevPassword1
美元
sudo
samba-工具
用户
添加
searchuser01
--姓=User01
--鉴于-名字=搜索
--邮件-地址=searchuser01
@
雷竞技下载官网
。local
SearchPassword1
美元
sudo
samba-工具
集团
添加
开发人员
美元
sudo
samba-工具
集团
添加
dbadmins
美元
sudo
samba-工具
集团
同时
开发人员
devuser01
美元
sudo
samba-工具
集团
同时
dbadmins
dbauser01
|
使用samba-tool再次查看用户和组的详细信息:
|
1
2
3.
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
美元
sudo
samba-工具
用户
显示
devuser01
dn
:
CN=Dev
User01
,
CN=用户
,
直流=雷竞技下载官网
,
直流=当地的
对象类
:
人
对象类
:
用户
cn
:
Dev
User01
sn
:
User01
givenName
:
Dev
名字
:
Dev
User01
sAMAccountName
:
devuser01
邮件
:
devuser01
@
雷竞技下载官网
。local
memberOf
:
CN=开发人员
,
CN=用户
,
直流=雷竞技下载官网
,
直流=当地的
美元
sudo
samba-工具
集团
显示
dbadmins
dn
:
CN=dbadmins
,
CN=用户
,
直流=雷竞技下载官网
,
直流=当地的
对象类
:
集团
cn
:
dbadmins
名字
:
dbadmins
sAMAccountName
:
dbadmins
成员
:
CN=Dba
User01
,
CN=用户
,
直流=雷竞技下载官网
,
直流=当地的
|
使用ldapsearch进行搜索
对LDAP进行故障诊断首先要能够使用ldapsearch工具指定凭据和筛选器。成功地进行身份验证和搜索之后,插入中使用的相同或类似参数就更容易了ldapsearchPercona操作符的配置。雷竞技下载官网这里有一些有用的例子ldapsearch命令:
1.以“CN=Dev User01,CN=Users,DC=percona,DC=lo雷竞技下载官网cal”登录。如果经过身份验证,则返回该记录的DN、名、姓、电子邮件和sAMAccountName。
|
1
2
3.
4
5
6
7
|
美元
ldapsearch
-微光
-W
-x
-H
ldap
://samba
.雷竞技下载官网percona
。local
-b
“CN = Dev User01, CN =用户,DC雷竞技下载官网 = percona, DC =当地”
-D
“CN = Dev User01, CN =用户,DC雷竞技下载官网 = percona, DC =当地”
“givenName”
“锡”
“邮件”
“sAMAccountName”
输入
LDAP
密码
:
dn
:
CN=Dev
User01
,
CN=用户
,
直流=雷竞技下载官网
,
直流=当地的
sn
:
User01
givenName
:
Dev
sAMAccountName
:
devuser01
邮件
:
devuser01
@
雷竞技下载官网
。local
|
从本质上讲,如果没有映射,您将需要提供用户名作为登录MongoDB的完整DN。如。mongo -u " CN=Dev User01,CN=Users,DC雷竞技下载官网=percona,DC=local "
2.以“CN=Search User01,CN=Users,DC=percona,DC=lo雷竞技下载官网cal”登录,并在“DC=percona, DC=local”中查找用户,其中sAMAccountName为“dbauser01”。如果有匹配,它将返回该记录的DN、First Name、Last Name、邮件和sAMAccountName。
|
1
2
3.
4
5
6
7
|
美元
ldapsearch
-微光
-W
-x
-H
ldap
://samba
.雷竞技下载官网percona
。local
-b
“DC 雷竞技下载官网= percona, DC =本地”
-D
“CN =搜索User01 CN =用户,DC = perc雷竞技下载官网ona, DC =当地”
”(& (objectClass =人)(sAMAccountName = dbauser01))”
“givenName”
“锡”
“邮件”
“sAMAccountName”
输入
LDAP
密码
:
dn
:
CN=Dba
User01
,
CN=用户
,
直流=雷竞技下载官网
,
直流=当地的
sn
:
User01
givenName
:
Dba
sAMAccountName
:
dbauser01
邮件
:
dbauser01
@
雷竞技下载官网
。local
|
使用映射,现在可以通过指定进行身份验证sAMAaccountName或邮件这取决于如何定义映射。如。Mongo -u dbauser01或Mongo -u "(电子邮件保护)”
3.以“CN=Search User01,CN=Users,DC=percona,DC=lo雷竞技下载官网cal”登录,查找“DC=percona, DC=local”中的组,其中“CN=Dev User01,CN=Users,DC=percona,DC=local”为成员。如果有匹配,它将返回组的DN和公共名称。
|
1
2
3.
4
|
美元
ldapsearch
-微光
-W
-x
-H
ldap
://samba
.雷竞技下载官网percona
。local
-b
“DC 雷竞技下载官网= percona, DC =本地”
-D
“CN =搜索User01 CN =用户,DC = perc雷竞技下载官网ona, DC =当地”
”(& (objectClass =集团)(= CN = Dev User01成员,CN =用户,DC = pe雷竞技下载官网rcona, DC =当地))”
“cn”
输入
LDAP
密码
:
dn
:
CN=开发人员
,
CN=用户
,
直流=雷竞技下载官网
,
直流=当地的
cn
:
开发人员
|
这种类型的搜索对于枚举该用户的组非常重要,因为我们可以根据其组成员关系定义该用户的特权。
Kubernetes的安装和配置
到LDAP的身份验证和搜索过滤器已经开始工作,我们准备在Percona Operator中进行测试。雷竞技下载官网由于这只是为了测试,我们不妨使用相同的服务器来部署Kubernetes。在本例中,我们将使用Microk8s。
|
1
2
3.
4
5
6
7
8
|
美元
sudo
提前
安装
microk8s
--经典
美元
sudo
usermod
-一个
-G
microk8s
美元
用户
美元
sudo
乔恩
-f
-R
美元
用户
~/.kube
美元
newgrp
microk8s
美元
microk8s
状态
--等待-准备好了
美元
microk8s
启用
dns
美元
microk8s
启用
hostpath-存储
美元
别名
kubectl=“microk8s kubectl”
|
安装完成后,在继续下一步之前,检查系统吊舱是否都在运行:
|
1
2
3.
4
5
6
|
美元
kubectl
得到
豆荚
--所有-名称空间
名称空间
名字
准备好了
状态
重新启动
年龄
kube-系统
印花棉布的-节点-bj9c4
1/1
运行
0
3 m12
kube-系统
coredns-66年bcf65bb8-l9hwb
1/1
运行
0
65年代
kube-系统
印花棉布的-kube-控制器-644年d5c79cb-fhhkc
1/1
运行
0
3 m11公路
kube-系统
hostpath-粮食供应者-85年ccc46f96-qmjrq
1/1
运行
0
3米
|
为MongoDB部署Perc雷竞技下载官网ona Operator
现在Kubernetes正在运行,我们可以下载MongoDB的Percona Operator。雷竞技下载官网让我们下载1.13.0版本git:
|
1
|
美元
git
克隆
-b
v1
。
13.0
https
://github
com/雷竞技下载官网/雷竞技下载官网-服务器-mongodb-操作符
|
然后让我们转到deploy目录并应用bundle。安装Percona操作符:雷竞技下载官网
|
1
2
3.
4
5
6
7
8
9
|
美元
cd
雷竞技下载官网-服务器-mongodb-操作符/部署
美元
kubectl
应用
-f
包
.yaml
customresourcedefinition
.apiextensions
.k8s
.io/雷竞技下载官网perconaservermongodbs
.psmdb
.雷竞技下载官网percona
com
创建
customresourcedefinition
.apiextensions
.k8s
.io/雷竞技下载官网perconaservermongodbbackups
.psmdb
.雷竞技下载官网percona
com
创建
customresourcedefinition
.apiextensions
.k8s
.io/雷竞技下载官网perconaservermongodbrestores
.psmdb
.雷竞技下载官网percona
com
创建
角色
.rbac
.authorization
.k8s
.io/雷竞技下载官网-服务器-mongodb-操作符
创建
serviceaccount/雷竞技下载官网-服务器-mongodb-操作符
创建
rolebinding
.rbac
.authorization
.k8s
.io/服务-账户-雷竞技下载官网-服务器-mongodb-操作符
创建
部署
.apps/雷竞技下载官网-服务器-mongodb-操作符
创建
|
检查操作员是否启动并运行:
|
1
2
3.
|
美元
kubectl
得到
豆荚
名字
准备好了
状态
重新启动
年龄
雷竞技下载官网-服务器-mongodb-操作符-547年c499bd8-p8k74
1/1
运行
0
41岁的年代
|
现在它正在运行,我们需要应用cr.yaml来创建MongoDB实例和服务。我们将使用最小的部署cr-minimal.yaml在deploy目录中提供。
|
1
2
|
美元
kubectl
应用
-f
cr-最小的
.yaml
雷竞技下载官网perconaservermongodb
.psmdb
.雷竞技下载官网percona
com/我的-集群-名字
创建
|
等待所有的pod都被创建:
|
1
2
3.
4
5
6
|
美元
kubectl
得到
豆荚
名字
准备好了
状态
重新启动
年龄
雷竞技下载官网-服务器-mongodb-操作符-547年c499bd8-p8k74
1/1
运行
0
5 m16步枪
最小的-集群-cfg-0
1/1
运行
0
3 m25公路
最小的-集群-rs0-0
1/1
运行
0
3 m24s
最小的-集群-蒙戈-0
1/1
运行
0
3 m24s
|
在Percona Operator上设置角色雷竞技下载官网
现在MongoDB pod正在运行,让我们为基于角色的映射添加组。我们需要从主配置服务器添加这个配置,mongos和replicset将在登录时使用它进行授权。
首先,让我们获取admin用户的用户名和密码:
|
1
2
3.
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20.
21
22
23
24
25
26
27
28
29
30.
31
32
33
|
美元
kubectl
得到
秘密
名字
类型
数据
年龄
最小的-集群
不透明的
10
4立方米
内部-最小的-集群-用户
不透明的
10
4立方米
最小的-集群-mongodb-密钥文件
不透明的
1
4立方米
最小的-集群-mongodb-加密-关键
不透明的
1
4立方米
美元
kubectl
得到
秘密
最小的-集群
-o
yaml
apiVersion
:
v1
数据
:
MONGODB_BACKUP_PASSWORD
:
b2NNNkFjOHdEUU42OUpmYnE=
MONGODB_BACKUP_USER
:
YmFja3Vw
MONGODB_CLUSTER_ADMIN_PASSWORD
:
aElBWlVyajFkZWF0eEhWSzI=
MONGODB_CLUSTER_ADMIN_USER
:
Y2x1c3RlckFkbWlu
MONGODB_CLUSTER_raybet雷竞技竞猜在线官网MONITOR_PASSWORD
:
V1p6YkFhN1o3T2RkSm5Gbg==
MONGODB_CLUSTER_raybet雷竞技竞猜在线官网MONITOR_USER
:
Y2x1c3Rlck1vbml0b3I=
MONGODB_DATABASE_ADMIN_PASSWORD
:
U0hMR3Y3WlF2SVpxZ1dhcUFh
MONGODB_DATABASE_ADMIN_USER
:
ZGF0YWJhc2VBZG1pbg==
MONGODB_USER_ADMIN_PASSWORD
:
eW5TZjRzQjkybm5UdjdVdXduTQ==
MONGODB_USER_ADMIN_USER
:
dXNlckFkbWlu
种类
:
秘密
元数据
:
creationTimestamp
:
“2022 - 09 - 15 - t15:57:42z”
名字
:
最小的-集群
名称空间
:
默认的
resourceVersion
:
“5673”
uid
:
d3f4f678-a3db-4578-b10c-69年e8c4410b00
类型
:
不透明的
美元
回声
`
回声
“dXNlckFkbWlu”
|
base64
--解码
`
userAdmin
美元
回声
`
回声
“eW5TZjRzQjkybm5UdjdVdXduTQ = = "
|
base64
--解码
`
ynSf4sB92nnTv7UuwnM
|
接下来,让我们连接到主配置服务器:
|
1
2
3.
4
5
6
7
8
9
10
11
12
13
14
|
美元
kubectl
得到
服务
名字
类型
集群-知识产权
外部-知识产权
港口
(
年代
)
年龄
kubernetes
ClusterIP
10.152.183.1
443/TCP
22米
最小的-集群-cfg
ClusterIP
没有一个
27017/TCP
7 m27s
最小的-集群-rs0
ClusterIP
没有一个
27017/TCP
7 m27s
最小的-集群-蒙戈
ClusterIP
10.152.183.220
27017/TCP
7 m27s
美元
kubectl
运行
-我
--rm
--tty
雷竞技下载官网-客户端
--图像=雷竞技下载官网/雷竞技下载官网-服务器-mongodb
:
5.0.11-10
--重新启动=从来没有
--
bash
-伊尔
(
mongodb
@
雷竞技下载官网-客户端
/]
美元
蒙戈
--宿主
最小的-集群-cfg
-u
userAdmin
-p
ynSf4sB92nnTv7UuwnM
雷竞技下载官网
服务器
为
MongoDB
壳牌
版本
v5
。
0.11-10
连接
来
:
mongodb
://最小的-集群-cfg
:
27017/?
压缩机=禁用
&gssapiServiceName=mongodb
隐式的
会话
:
会话
{
“id”
:
UUID
(
“5 f1f7db8 d75f - 4658 a579 - 86 b9bbf22471”
)
}
雷竞技下载官网
服务器
为
MongoDB
服务器
版本
:
v5
。
0.11-10
cfg
:
主要的
>
|
从控制台,我们可以创建两个角色“CN=dbadmins,CN=Users,DC=percona,DC=local”和“CN=devel雷竞技下载官网opers,CN=Users,DC=percona,DC=local”,并赋予它们相应的权限:
|
1
2
3.
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
使用
管理
db
.createRole
(
{
角色
:
“CN = dbadmins, CN =用户,DC雷竞技下载官网 = percona, DC =当地”
,
角色
:
(
“根”
]
,
特权
:
(
]
}
)
db
.createRole
(
{
角色
:
“CN =开发者,CN =用户,DC = percon雷竞技下载官网a, DC =当地”
,
角色
:
(
“readWriteAnyDatabase”
]
,
特权
:
(
]
}
)
|
注意,这里定义的角色名称对应于我创建的Samba组samba-tool。此外,如果您希望LDAP用户在直接连接到复制集时拥有这些特权,则需要在复制集端点中添加相同的角色。
最后,通过输入退出mongo控制台退出和紧迫输入。同样的操作也可以退出吊舱。
将LDAP配置应用到复制集、mongos和配置服务器
现在,我们可以将LDAP配置添加到配置服务器。我们的第一个测试配置是在登录时提供完整的DN,因此配置将是:
|
1
2
3.
4
5
6
7
8
9
10
11
12
13
|
美元
猫
fulldn-配置
.yaml
安全
:
授权
:
“启用”
ldap
:
authz
:
queryTemplate
:
' DC雷竞技下载官网 = percona, DC =地方? ?子? (& (objectClass =集团)(成员:= {PROVIDED_USER}))”
服务器
:
“192.168.0.101”
transportSecurity
:
没有一个
绑定
:
queryUser
:
“CN =搜索User01 CN =用户,DC = perc雷竞技下载官网ona, DC =当地”
queryPassword
:
“SearchPassword1”
setParameter
:
authenticationMechanisms
:
“平原,SCRAM-SHA-1安全- sha - 256”
|
接下来,将配置应用到配置服务器:
|
1
|
美元
kubectl
创建
秘密
通用的
最小的-集群-cfg-mongod
--从-文件=mongod
. conf=fulldn-配置
.yaml
|
此外,如果你想使用LDAP登录到副本集,你也可以应用相同的配置:
|
1
|
美元
kubectl
创建
秘密
通用的
最小的-集群-rs0-mongod
--从-文件=mongod
. conf=fulldn-配置
.yaml
|
对于mongos,你仍然需要省略授权的设置,因为这将来自配置服务器:
|
1
2
3.
4
5
6
7
8
9
10
|
美元
猫
fulldn-蒙戈-配置
.yaml
安全
:
ldap
:
服务器
:
“192.168.0.101”
transportSecurity
:
没有一个
绑定
:
queryUser
:
“CN =搜索User01 CN =用户,DC = perc雷竞技下载官网ona, DC =当地”
queryPassword
:
“SearchPassword1”
setParameter
:
authenticationMechanisms
:
“平原,SCRAM-SHA-1安全- sha - 256”
|
然后应用于mongos的配置:
|
1
|
美元
kubectl
创建
秘密
通用的
最小的-集群-蒙戈
--从-文件=蒙戈
. conf=fulldn-蒙戈-配置
.yaml
|
一个接一个的舱将被重新创建。等待,直到它们都被重新创建:
|
1
2
3.
4
5
6
|
美元
kubectl
得到
豆荚
名字
准备好了
状态
重新启动
年龄
雷竞技下载官网-服务器-mongodb-操作符-547年c499bd8-p8k74
1/1
运行
0
24米
最小的-集群-cfg-0
1/1
运行
0
4 m27s
最小的-集群-rs0-0
1/1
运行
0
3 m34s
最小的-集群-蒙戈-0
1/1
运行
0
65年代
|
现在你可以在其中一个端点上测试身份验证:
|
1
2
3.
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20.
21
22
23
24
25
26
27
28
|
美元
kubectl
运行
-我
--rm
--tty
雷竞技下载官网-客户端
--图像=雷竞技下载官网/雷竞技下载官网-服务器-mongodb
:
5.0.11-10
--重新启动=从来没有
--
蒙戈
--宿主
最小的-集群-蒙戈
-u
“CN = Dba User01, CN =用户,DC雷竞技下载官网 = percona, DC =当地”
-p
DbaPassword1
--authenticationDatabase
“外部美元”
--authenticationMechanism
“普通”
--eval
“db.runCommand ({connectionStatus: 1})”
+
执行
蒙戈
--宿主
最小的-集群-蒙戈
-u
“CN = Dba User01, CN =用户,DC雷竞技下载官网 = percona, DC =当地'
-p
DbaPassword1
--authenticationDatabase
“外部美元”
--authenticationMechanism
平原
--eval
“db.runCommand ({connectionStatus: 1})”
雷竞技下载官网
服务器
为
MongoDB
壳牌
版本
v5
。
0.11-10
连接
来
:
mongodb
://最小的-集群-蒙戈
:
27017/?
authMechanism=平原
&authSource=%
24外部
压缩机=禁用
&gssapiServiceName=mongodb
隐式的
会话
:
会话
{
“id”
:
UUID
(
“7 eca812d ad04 - 4 ae2 - 8484 - 3 - b55dee1a673”
)
}
雷竞技下载官网
服务器
为
MongoDB
服务器
版本
:
v5
。
0.11-10
{
“authInfo”
:
{
“authenticatedUsers”
:
(
{
“用户”
:
“CN = Dba User01, CN =用户,DC雷竞技下载官网 = percona, DC =当地”
,
“数据库”
:
“外部”美元
}
]
,
“authenticatedUserRoles”
:
(
{
“角色”
:
“CN = dbadmins, CN =用户,DC雷竞技下载官网 = percona, DC =当地”
,
“数据库”
:
“admin”
}
,
{
“角色”
:
“根”
,
“数据库”
:
“admin”
}
]
}
}
圆荚体
“雷竞技下载官网percona-client”
删除
|
如上所示,用户“CN=Dba User01,CN=Users,DC=percona,DC=local”的角色为雷竞技下载官网根。您可以使用这些命令测试其他端点。
|
1
2
|
美元
kubectl
运行
-我
--rm
--tty
雷竞技下载官网-客户端
--图像=雷竞技下载官网/雷竞技下载官网-服务器-mongodb
:
5.0.11-10
--重新启动=从来没有
--
蒙戈
--宿主
最小的-集群-rs0
-u
“CN = Dba User01, CN =用户,DC雷竞技下载官网 = percona, DC =当地”
-p
DbaPassword1
--authenticationDatabase
“外部美元”
--authenticationMechanism
“普通”
--eval
“db.runCommand ({connectionStatus: 1})”
美元
kubectl
运行
-我
--rm
--tty
雷竞技下载官网-客户端
--图像=雷竞技下载官网/雷竞技下载官网-服务器-mongodb
:
5.0.11-10
--重新启动=从来没有
--
蒙戈
--宿主
最小的-集群-cfg
-u
“CN = Dba User01, CN =用户,DC雷竞技下载官网 = percona, DC =当地”
-p
DbaPassword1
--authenticationDatabase
“外部美元”
--authenticationMechanism
“普通”
--eval
“db.runCommand ({connectionStatus: 1})”
|
使用userToDNMapping简化用户名
显然,您可能不希望用户使用完整DN进行身份验证。也许,您希望用户只指定第一个CN。你可以使用匹配和替换映射:
|
1
2
3.
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20.
21
22
23
24
25
26
27
28
29
30.
31
32
33
34
35
36
37
38
|
美元
猫
mapping1-配置
.yaml
安全
:
授权
:
“启用”
ldap
:
authz
:
queryTemplate
:
' DC雷竞技下载官网 = percona, DC =地方? ?子? (& (objectClass =集团)(成员:= {USER}))”
服务器
:
“192.168.0.101”
transportSecurity
:
没有一个
绑定
:
queryUser
:
“CN =搜索User01 CN =用户,DC = perc雷竞技下载官网ona, DC =当地”
queryPassword
:
“SearchPassword1”
userToDNMapping
:
>-
(
{
匹配
:
“(+)”
,
替换
:
“CN = {0}, CN =用户,DC雷竞技下载官网 = percona, DC =当地”
}
]
setParameter
:
authenticationMechanisms
:
“平原,SCRAM-SHA-1安全- sha - 256”
美元
猫
mapping1-蒙戈-配置
.yaml
安全
:
ldap
:
服务器
:
“192.168.0.101”
transportSecurity
:
没有一个
绑定
:
queryUser
:
“CN =搜索User01 CN =用户,DC = perc雷竞技下载官网ona, DC =当地”
queryPassword
:
“SearchPassword1”
userToDNMapping
:
>-
(
{
匹配
:
“(+)”
,
替换
:
“CN = {0}, CN =用户,DC雷竞技下载官网 = percona, DC =当地”
}
]
setParameter
:
authenticationMechanisms
:
“平原,SCRAM-SHA-1安全- sha - 256”
|
你需要删除旧的配置并应用新的配置:
|
1
2
3.
4
5
6
|
美元
kubectl
删除
秘密
最小的-集群-cfg-mongod
美元
kubectl
删除
秘密
最小的-集群-rs0-mongod
美元
kubectl
删除
秘密
最小的-集群-蒙戈
美元
kubectl
创建
秘密
通用的
最小的-集群-cfg-mongod
--从-文件=mongod
. conf=mapping1-配置
.yaml
美元
kubectl
创建
秘密
通用的
最小的-集群-rs0-mongod
--从-文件=mongod
. conf=mapping1-配置
.yaml
美元
kubectl
创建
秘密
通用的
最小的-集群-蒙戈
--从-文件=蒙戈
. conf=mapping1-蒙戈-配置
.yaml
|
与userToDNMapping,匹配和替换,你现在可以只指定第一个CN。一旦所有的pod都重新启动,请尝试使用较短的用户名登录:
|
1
|
美元
kubectl
运行
-我
--rm
--tty
雷竞技下载官网-客户端
--图像=雷竞技下载官网/雷竞技下载官网-服务器-mongodb
:
5.0.11-10
--重新启动=从来没有
--
蒙戈
--宿主
最小的-集群-蒙戈
-u
“Dba User01”
-p
DbaPassword1
--authenticationDatabase
“外部美元”
--authenticationMechanism
“普通”
--eval
“db.runCommand ({connectionStatus: 1})”
|
也许,用户名带有空格,而您希望基于其他属性登录,例如sAMAccountName或邮件。中可以使用附加的LDAP查询userToDBMapping根据这些属性搜索记录。一旦找到记录,它将提取用户的DN进行身份验证。对于下面的示例,我们将使用sAMAccountName作为用户名的输入:
|
1
2
3.
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20.
21
22
23
24
25
26
27
28
29
30.
31
32
33
34
35
36
37
38
|
美元
猫
mapping2-配置
.yaml
安全
:
授权
:
“启用”
ldap
:
authz
:
queryTemplate
:
' DC雷竞技下载官网 = percona, DC =地方? ?子? (& (objectClass =集团)(成员:= {USER}))”
服务器
:
“192.168.0.101”
transportSecurity
:
没有一个
绑定
:
queryUser
:
“CN =搜索User01 CN =用户,DC = perc雷竞技下载官网ona, DC =当地”
queryPassword
:
“SearchPassword1”
userToDNMapping
:
>-
(
{
匹配
:
“(+)”
,
ldapQuery
:
当地“d雷竞技下载官网c = percona, dc = ? ?子? (& (sAMAccountName = {0}) (objectClass =人))”
}
]
setParameter
:
authenticationMechanisms
:
“平原,SCRAM-SHA-1安全- sha - 256”
美元
猫
mapping2-蒙戈-配置
.yaml
安全
:
ldap
:
服务器
:
“192.168.0.101”
transportSecurity
:
没有一个
绑定
:
queryUser
:
“CN =搜索User01 CN =用户,DC = perc雷竞技下载官网ona, DC =当地”
queryPassword
:
“SearchPassword1”
userToDNMapping
:
>-
(
{
匹配
:
“(+)”
,
ldapQuery
:
当地“d雷竞技下载官网c = percona, dc = ? ?子? (& (sAMAccountName = {0}) (objectClass =人))”
}
]
setParameter
:
authenticationMechanisms
:
“平原,SCRAM-SHA-1安全- sha - 256”
|
同样,我们需要删除旧的配置并应用新的配置:
|
1
2
3.
4
5
6
|
美元
kubectl
删除
秘密
最小的-集群-cfg-mongod
美元
kubectl
删除
秘密
最小的-集群-rs0-mongod
美元
kubectl
删除
秘密
最小的-集群-蒙戈
美元
kubectl
创建
秘密
通用的
最小的-集群-cfg-mongod
--从-文件=mongod
. conf=mapping2-配置
.yaml
美元
kubectl
创建
秘密
通用的
最小的-集群-rs0-mongod
--从-文件=mongod
. conf=mapping2-配置
.yaml
美元
kubectl
创建
秘密
通用的
最小的-集群-蒙戈
--从-文件=蒙戈
. conf=mapping2-蒙戈-配置
.yaml
|
一旦重新创建pod,我们现在就可以使用常规用户名进行身份验证了。
|
1
2
3.
|
美元
kubectl
运行
-我
--rm
--tty
雷竞技下载官网-客户端
--图像=雷竞技下载官网/雷竞技下载官网-服务器-mongodb
:
5.0.11-10
--重新启动=从来没有
--
蒙戈
--宿主
最小的-集群-蒙戈
-u
devuser01
-p
DevPassword1
--authenticationDatabase
“外部美元”
--authenticationMechanism
“普通”
--eval
“db.runCommand ({connectionStatus: 1})”
美元
kubectl
运行
-我
--rm
--tty
雷竞技下载官网-客户端
--图像=雷竞技下载官网/雷竞技下载官网-服务器-mongodb
:
5.0.11-10
--重新启动=从来没有
--
蒙戈
--宿主
最小的-集群-蒙戈
-u
dbauser01
-p
DbaPassword1
--authenticationDatabase
“外部美元”
--authenticationMechanism
“普通”
--eval
“db.runCommand ({connectionStatus: 1})”
|
总结
我希望本文能够帮助您快速地设置LDAP身份验证和授权雷竞技下载官网MongoDB的Percona操作符。







您不是在配置配电柜,这是完全不同的,您是在配置AD域和该域中的第一个AD DC。
不要使用“127.0.0.1”作为命名服务器,使用计算机的ipaddress。
永远不要用'。当地的’ as the TLD, it is reserved for Bonjour & Avahi
您还没有设置正确的时间服务器(ntp或crony),这是必需的。
永远不要链接Samba提供的krb5.conf,只需将其复制到位,它甚至会在提供输出的末尾告诉您这一点。