MongoDB基于Percona Operator的LDAP认证与授权雷竞技下载官网雷竞技下载官网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和故障排除工具:

禁用smbd、winbind和系统解析服务,因为我们需要将samba重新配置为PDC和DNS解析器。同时删除当前samba配置文件/etc/samba/smb.conf。

删除/etc/resolv.conf上的符号链接,并将内容替换为“nameserver 127.0.0.1”以使用samba的DNS服务:

按照如下配置创建域环境:

域:PERCO雷竞技下载官网NA。当地的
域:PERCON雷竞技下载官网A
管理员密码:PerconaLDAPTest202雷竞技下载官网2

编辑“/etc/samba/smb.conf”,将“DNS转发器”设置为“8.8.8.8”,用于解析其他区域。我们还将禁用强制TLS认证,因为Percona Operator雷竞技下载官网不支持LDAP与TLS在写这篇文章的时候。

Symlink krb5.conf配置。

取消samba-ad-dc服务的掩码并启动它。确保它将在启动时启动。

检查Samba服务是否启动并正在运行

添加用户和组

现在Samba已经启动并运行,我们现在可以执行用户和组管理了。我们将创建Samba用户和组,并将用户分配给组samba-tool

使用samba-tool再次查看用户和组的详细信息:

使用ldapsearch进行搜索

对LDAP进行故障诊断首先要能够使用ldapsearch工具指定凭据和筛选器。成功地进行身份验证和搜索之后,插入中使用的相同或类似参数就更容易了ldapsearchPercona操作符的配置。雷竞技下载官网这里有一些有用的例子ldapsearch命令:

1.以“CN=Dev User01,CN=Users,DC=percona,DC=lo雷竞技下载官网cal”登录。如果经过身份验证,则返回该记录的DN、名、姓、电子邮件和sAMAccountName。

从本质上讲,如果没有映射,您将需要提供用户名作为登录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。

使用映射,现在可以通过指定进行身份验证sAMAaccountName邮件这取决于如何定义映射。如。Mongo -u dbauser01Mongo -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和公共名称。

这种类型的搜索对于枚举该用户的组非常重要,因为我们可以根据其组成员关系定义该用户的特权。

Kubernetes的安装和配置

到LDAP的身份验证和搜索过滤器已经开始工作,我们准备在Percona Operator中进行测试。雷竞技下载官网由于这只是为了测试,我们不妨使用相同的服务器来部署Kubernetes。在本例中,我们将使用Microk8s

安装完成后,在继续下一步之前,检查系统吊舱是否都在运行:

为MongoDB部署Perc雷竞技下载官网ona Operator

现在Kubernetes正在运行,我们可以下载MongoDB的Percona Operator。雷竞技下载官网让我们下载1.13.0版本git

然后让我们转到deploy目录并应用bundle。安装Percona操作符:雷竞技下载官网

检查操作员是否启动并运行:

现在它正在运行,我们需要应用cr.yaml来创建MongoDB实例和服务。我们将使用最小的部署cr-minimal.yaml在deploy目录中提供。

等待所有的pod都被创建:

在Percona Operator上设置角色雷竞技下载官网

现在MongoDB pod正在运行,让我们为基于角色的映射添加组。我们需要从主配置服务器添加这个配置,mongos和replicset将在登录时使用它进行授权。

首先,让我们获取admin用户的用户名和密码:

接下来,让我们连接到主配置服务器:

从控制台,我们可以创建两个角色“CN=dbadmins,CN=Users,DC=percona,DC=local”和“CN=devel雷竞技下载官网opers,CN=Users,DC=percona,DC=local”,并赋予它们相应的权限:

注意,这里定义的角色名称对应于我创建的Samba组samba-tool。此外,如果您希望LDAP用户在直接连接到复制集时拥有这些特权,则需要在复制集端点中添加相同的角色。

最后,通过输入退出mongo控制台退出和紧迫输入。同样的操作也可以退出吊舱。

将LDAP配置应用到复制集、mongos和配置服务器

现在,我们可以将LDAP配置添加到配置服务器。我们的第一个测试配置是在登录时提供完整的DN,因此配置将是:

接下来,将配置应用到配置服务器:

此外,如果你想使用LDAP登录到副本集,你也可以应用相同的配置:

对于mongos,你仍然需要省略授权的设置,因为这将来自配置服务器:

然后应用于mongos的配置:

一个接一个的舱将被重新创建。等待,直到它们都被重新创建:

现在你可以在其中一个端点上测试身份验证:

如上所示,用户“CN=Dba User01,CN=Users,DC=percona,DC=local”的角色为雷竞技下载官网。您可以使用这些命令测试其他端点。

使用userToDNMapping简化用户名

显然,您可能不希望用户使用完整DN进行身份验证。也许,您希望用户只指定第一个CN。你可以使用匹配和替换映射:

你需要删除旧的配置并应用新的配置:

userToDNMapping,匹配和替换,你现在可以只指定第一个CN。一旦所有的pod都重新启动,请尝试使用较短的用户名登录:

也许,用户名带有空格,而您希望基于其他属性登录,例如sAMAccountName邮件。中可以使用附加的LDAP查询userToDBMapping根据这些属性搜索记录。一旦找到记录,它将提取用户的DN进行身份验证。对于下面的示例,我们将使用sAMAccountName作为用户名的输入:

同样,我们需要删除旧的配置并应用新的配置:

一旦重新创建pod,我们现在就可以使用常规用户名进行身份验证了。

总结

我希望本文能够帮助您快速地设置LDAP身份验证和授权雷竞技下载官网MongoDB的Percona操作符

订阅
通知的
客人

1评论
最古老的
最新的 大多数投票
内联反馈
查看所有评论
罗兰一分钱

您不是在配置配电柜,这是完全不同的,您是在配置AD域和该域中的第一个AD DC。

不要使用“127.0.0.1”作为命名服务器,使用计算机的ipaddress。

永远不要用'。当地的’ as the TLD, it is reserved for Bonjour & Avahi

您还没有设置正确的时间服务器(ntp或crony),这是必需的。

永远不要链接Samba提供的krb5.conf,只需将其复制到位,它甚至会在提供输出的末尾告诉您这一点。