Mongo db中的身份验证:如何选择?
Posted
技术标签:
【中文标题】Mongo db中的身份验证:如何选择?【英文标题】:Authentication in Mongo db: how to choice? 【发布时间】:2014-12-20 00:14:18 【问题描述】:您能帮我选择 Mongo db 中的身份验证类型吗?
我在官方网站上找到的:
-
MONGODB-CR MongoDB 质询/响应身份验证。
MONGODB-X509 MongoDB SSL 证书认证。
PLAIN 使用 LDAP 的外部身份验证。您也可以使用 PLAIN
对数据库内用户进行身份验证。 PLAIN 以明文形式传输密码
文本。此机制仅在 MongoDB Enterprise 中可用。
GSSAPI 使用 Kerberos 的外部身份验证。这种机制是
仅在 MongoDB Enterprise 中可用。
非常感谢!
【问题讨论】:
其中一些仅为企业版 请详细说明。为什么需要身份验证?你有分片集群还是副本集。您可能想先阅读 Eric Raymond 的优秀 "How to ask questions the smart way"。 根本没有“最佳”解决方案。什么是最好的取决于您的要求。介意告诉我们您需要什么以及您拥有什么? 【参考方案1】:如前所述,这些选项中的大多数仅在企业版 MongoDB 中可用。
必要时,外部身份验证方法将由您的组织的需求决定——是否依赖现有的 LDAP 基础架构进行用户管理。
在 MongoDB 3.0 中,它现在支持多种身份验证机制。
MongoDB 挑战和响应 (SCRAM-SHA-1) - 3.0 中的默认设置 MongoDB 挑战和响应 (MONGODB-CR) - 以前的默认设置 (如果您从创建了新用户的新 3.0 数据库开始,他们将使用 SCRAM-SHA-1 创建。
所以你需要一个能够进行身份验证的驱动程序:
http://docs.mongodb.org/manual/release-notes/3.0-scram/#considerations-scram-sha-1-drivers
如果您使用现有用户数据从 2.x 升级数据库,他们仍将使用 MONGODB-CR,并且必须升级用户身份验证数据库:
http://docs.mongodb.org/manual/release-notes/3.0-scram/#upgrade-mongodb-cr-to-scram
现在,使用 SCRAM-SHA-1 创建的用户连接到 MongoDB 3.0 需要指定身份验证数据库(通过命令行 mongo 客户端),如果使用驱动程序,则使用其他机制。
$> mongo -u USER -p PASSWORD --authenticationDatabase admin
在这种情况下,将使用默认的“admin”数据库进行身份验证。
【讨论】:
以上是关于Mongo db中的身份验证:如何选择?的主要内容,如果未能解决你的问题,请参考以下文章
在 Mongo Db 中更新相关文档后 Spring 用户身份验证不起作用
连接到多个 mongo db 主机并在 spring boot 中使用不同的数据库进行身份验证
如何选择使用 Laravel Sanctum 进行身份验证?