On this page
SCRAM
在本页面
3.0 版中的新功能。
盐化挑战响应身份验证机制(SCRAM)是 MongoDB 的默认身份验证机制。 SCRAM 基于 IETF RFC 5802标准,该标准定义了实施质询-响应机制的最佳实践,以用密码对用户进行身份验证。
使用 SCRAM,MongoDB 对照用户的name,password和authentication 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 Language | Version |
---|---|
C | 1.1.0 |
C++ | 1.0.0 |
C# | 1.10 |
Java | 2.13 |
Node.js | 1.4.29 |
Perl | 1.0.0 |
PHP | ext-mongo 1.6, ext-mongodb 1.0 |
Python | 2.8 |
Motor | 0.4 |
Ruby | 1.12 |
Scala | 2.8.0 |