内容提要
Percona Server for MongoDB提供多种外部认证选项,包括LDAP、Kerberos和AWS IAM。它还可以通过Pluggable Authentication Modules(PAM)进行认证。本文演示了在Oracle Enterprise Linux 9中使用PAM进行认证的过程。它解释了如何设置Unix用户,配置SASL以通过PAM与MongoDB服务进行认证,并将MongoDB与SASL集成。文章还包括测试认证的步骤和额外的安全考虑。建议使用Percona Distribution for MongoDB作为企业MongoDB的替代方案。
延伸解读
PAM认证的适用场景与优势
通过PAM,MongoDB可以复用操作系统已有的用户和认证机制,无需在数据库内单独维护密码。这简化了用户管理,尤其适合已有集中式Unix用户体系的环境。文章演示了使用pam_unix.so模块认证Unix用户,并指出类似方法可调整后用于Windows AD、Samba等,为管理员提供了灵活的集成选项。
配置中的关键步骤与依赖
成功集成需要多个组件协同:安装cyrus-sasl和cyrus-sasl-plain,启动并启用saslauthd服务,创建/etc/pam.d/mongodb定义PAM服务,配置/etc/sasl2/mongodb.conf指定saslauthd路径和plain机制,并在MongoDB配置中启用PLAIN认证机制和授权。任何一步遗漏都可能导致认证失败,因此需仔细检查文件权限和服务状态。
安全风险与必要防护
由于PLAIN机制以明文传输密码,文章强调必须使用TLS/SSL加密客户端与MongoDB之间的连接,同时确保SASL到外部认证后端的传输安全。此外,应咨询安全管理员或考虑Percona专业服务,以全面评估其他潜在风险。忽略这些措施可能导致凭证泄露。
测试与验证方法
在配置过程中,可使用testsaslauthd工具验证Unix用户认证是否成功,再通过mongosh以PLAIN机制连接并运行connectionStatus命令确认认证用户和角色。这种分步测试有助于快速定位问题,确保PAM、SASL和MongoDB配置正确无误。
Q&A
Percona Server for MongoDB支持哪些外部认证选项?
Percona Server for MongoDB支持LDAP、Kerberos、AWS IAM和通过PAM的SASL认证。
如何在Oracle Enterprise Linux 9中设置PAM进行MongoDB认证?
需要设置Unix用户、安装cyrus-sasl和cyrus-sasl-plain软件包,并配置PAM服务以与MongoDB集成。
如何测试Unix用户的PAM认证?
可以使用testsaslauthd命令测试Unix用户的认证,提供用户名和密码进行验证。
在MongoDB中如何创建Unix用户?
在MongoDB的$external数据库中使用db.createUser命令创建Unix用户。
使用SASL认证时需要注意哪些安全考虑?
确保使用TLS/SSL连接MongoDB,并确保SASL到外部认证后端的传输安全。
Percona Distribution for MongoDB是什么?
Percona Distribution for MongoDB是企业MongoDB的替代方案,结合了开源社区的关键组件。