建立x。509年LDAP身份验证和授权¶
x。509证书身份验证是一个支持在MongoDB Percona服务器身份验证机制。雷竞技下载官网这是兼容LDAP授权使您能够控制用户访问和操作数据库环境。
本文档提供了如何配置和使用x的步骤。509证书s for authentication in Percona Server for MongoDB and authorize users in the LDAP server.
注意事项¶
出于测试目的,我们使用本教程中OpenSSL发行自签名证书。供生产使用,我们建议使用ca颁发的证书和签署的CA在Pe雷竞技下载官网rcona MongoDB服务器。客户端证书必须满足客户端证书的要求。
LDAP服务器的安装和配置的LDAP模式是本文的范围。我们假设您已经LDAP服务器启动并运行和访问Percona MongoDB服务器。雷竞技下载官网
设置程序¶
发放证书¶
创建一个目录来存储证书。例如,
/var/lib/mongocerts。美元sudomkdir- p/var/lib/mongocerts授权访问的
mongod用户对这个目录:美元sudo乔恩mongod: mongod/var/lib/mongocerts
生成根证书颁发机构的证书¶
根证书权威证书将被用于SSL证书上签字。
运行以下命令,在主题国旗,组织提供的详细信息:
- C -国家名称(2字母代码);
- 圣-州或省的名字(全名);
- L -所在地(市)名称;
- O -组织名称(公司);
- CN -常用名(你的名字或你的服务器的主机名)。
美元cd/var/lib/mongocerts美元sudoopenssl要求的事情节点x509newkeyrsa: 4096-keyoutca.key两级ca.crt主题" / /圣= C =我们加州/ L =旧金山/ O = Percona /雷竞技下载官网 OU =根/ CN = localhost "
生成服务器证书¶
创建服务器证书请求和关键。在
主题国旗,组织提供的详细信息:C -国家名称(2字母代码);
圣-州或省的名字(全名);
L -所在地(市)名称;
O -组织名称(公司);
CN -常用名(你的名字或你的服务器的主机名)。
美元sudoopenssl要求的事情节点newkeyrsa: 4096-keyoutserver.key两级server.csr主题“我们/ C = /圣=加州/ L =旧金山/ O = Percona / 雷竞技下载官网OU =服务器/ CN = localhost "与根签署服务器证书请求CA证书:
美元sudoopensslx509要求的事情——server.csrcaca.crt凝固了的ca.key-set_serial01两级server.crt将服务器证书和密钥创建一个证书密钥文件。运行这个命令的
根用户:美元猫server.keyserver.crt>server.pem
生成客户端证书¶
生成客户端证书请求和关键。在
主题国旗,指定的客户信息DN格式。美元openssl要求的事情节点newkeyrsa: 4096-keyoutclient.key两级client.csr主题“/直流=com/DC=雷竞技下载官网percona/CN=John Doe”标志与根请求的客户端证书CA证书。
美元opensslx509要求的事情——client.csrcaca.crt凝固了的ca.key-set_serial02两级client.crt将客户机证书和密钥创建一个证书密钥文件。
美元猫client.keyclient.crt>client.pem
设置LDAP服务器¶
LDAP服务器的设置了本文的范围。请使用LDAP管理员设置和配置LDAP服务器的LDAP模式。
配置mongod服务器¶
配置由以下步骤组成:
- 创建一个角色相匹配的用户组在LDAP服务器上
- 编辑配置文件,使x。509认证
请注意
当你使用x。509年与LDAP身份验证授权,您不需要创建用户美元的外部数据库。用户管理是针对LDAP服务器当客户端连接到数据库,通过LDAP服务器身份验证和授权。
创建角色¶
在这一步中,创建的角色管理数据库的名称完全匹配用户组的名称在LDAP服务器上。这些角色是用于用户LDAP授权在Pe雷竞技下载官网rcona MongoDB服务器。
在我们的示例中,我们创建的角色cn = otherusers, 雷竞技下载官网dc = percona, dc = com有相应的LDAP组。
var管理=db。getSiblingDB(“admin”)db。createRole({角色:“cn = otherusers, 雷竞技下载官网dc = percona, dc = com”,特权:[],角色:(“userAdminAnyDatabase”,“clusterraybet雷竞技竞猜在线官网Monitor”,“clusterManager”,“clusterAdmin”]})
输出:
{“角色”:“cn = otherusers, 雷竞技下载官网dc = percona, dc = com”,“特权”:(),“角色”:(“userAdminAnyDatabase”,“clusterraybet雷竞技竞猜在线官网Monitor”,“clusterManager”,“clusterAdmin”]}
使x。509认证¶
停止
mongod服务美元sudosystemctl停止mongod编辑
/etc/mongod.conf配置文件。净:港口:27017年bindIp:127.0.0.1tls:模式:requireTLScertificateKeyFile:/var/lib/mongocerts/server.pemCAFile:/var/lib/mongocerts/ca.crt安全:授权:启用ldap:服务器:“ldap.example.com”transportSecurity:没有一个authz:queryTemplate:“dc 雷竞技下载官网= percona, dc = com ? ?子? (& (objectClass = groupOfNames)(会员= {USER}))”setParameter:authenticationMechanisms:平原,MONGODB-X509取代
ldap.example.com与您的LDAP服务器的主机名。在LDAP查询模板,取代域控制器雷竞技下载官网和com与那些与你的组织有关。启动
mongod服务美元sudosystemctl开始mongod
与x进行身份验证。509证书¶
测试验证,连接雷竞技下载官网MongoDB Percona服务器使用下面的命令:
美元蒙戈——主机本地主机——tls——tlsCAFile/var/lib/mongocerts/ca.crt——tlsCertificateKeyFile< path_to_client_certificate > / client.pem——authenticationMechanismMONGODB-X509——authenticationDatabase=“外部美元”
结果应该类似于下面的:
>db。runCommand({connectionStatus:1}){“authInfo”:{“authenticatedUsers”:({“用户”:“CN = John Doe, 雷竞技下载官网DC = percona, DC = com”,“数据库”:“外部”美元}),“authenticatedUserRoles”:({“角色”:“cn = otherreaders, 雷竞技下载官网dc = percona, dc = com”,“数据库”:“admin”},{“角色”:“clusterAdmin”,“数据库”:“admin”},{“角色”:“userAdminAnyDatabase”,“数据库”:“admin”},{“角色”:“clusterManager”,“数据库”:“admin”},{“角色”:“clusterraybet雷竞技竞猜在线官网Monitor”,“数据库”:“admin”}]},“ok”:1}
创建:2022年12月8日