SCRAM

在本页面

3.0 版中的新功能。

盐化挑战响应身份验证机制(SCRAM)是 MongoDB 的默认身份验证机制。 SCRAM 基于 IETF RFC 5802标准,该标准定义了实施质询-响应机制的最佳实践,以用密码对用户进行身份验证。

使用 SCRAM,MongoDB 对照用户的namepasswordauthentication database验证提供的用户凭据。身份验证数据库是在其中创建用户的数据库,并且与用户名一起用于识别用户。

MongoDB 的 SCRAM 实现使用 SHA-1 哈希函数。

SCRAM Advantages

MongoDB 的 SCRAM 实现代表对 MongoDB 挑战响应身份验证机制的安全性改进,它提供了:

  • 可调工作系数(iterationCount),

  • 每位用户随机添加的盐,而不是服务器范围的盐,

  • 加密功能更强的哈希函数(SHA-1而不是MD5),以及

  • 服务器对 Client 端以及 Client 端对服务器的身份验证。

MongoDB-CR 用户凭证和 SCRAM

升级已经具有 MongoDB 质询和响应(MONGODB-CR)用户凭证的部署后,如果尚未升级身份验证架构,则可以 continue 使用MONGODB-CR

  • 对于不支持 MongoDB 3.0 功能的较旧版本的驱动程序,您将 continue 使用MONGODB-CR

  • 对于支持 MongoDB 3.0 功能(请参见驱动程序兼容性更改)的驱动程序,您可以显式指定MONGODB-CR作为使用MONGODB-CR的身份验证机制。否则,将在身份验证期间将凭据临时转换为使用 SCRAM,以提供更好的保护,以防止被动窃听。此临时转换不会影响凭据的存储方式。

Note

从 MongoDB 3.6 开始,不推荐使用MONGODB-CR身份验证机制。如果尚未将MONGODB-CR身份验证架构升级到 SCRAM,请参见升级到 SCRAM

Driver Support

要使用 SCRAM,如果当前驱动程序版本不支持SCRAM,则必须升级驱动程序。

支持SCRAM的最低驱动程序版本为:

Driver LanguageVersion
C1.1.0
C++1.0.0
C#1.10
Java2.13
Node.js1.4.29
Perl1.0.0
PHPext-mongo 1.6, ext-mongodb 1.0
Python2.8
Motor0.4
Ruby1.12
Scala2.8.0

Additional Information