SCRAM
Salted Challenge Response Authentication Mechanism (SCRAM) 是 MongoDB 的默认身份验证机制。
当用户对自己进行身份验证时 ,MongoDB 使用 SCRAM 根据用户的name
, password
和 验证提供的用户凭据authentication database
。
SCRAM 基于 IETFRFC 5802该标准定义了实施质询-响应机制以使用密码对用户进行身份验证的最佳实践。
特征
MongoDB 的 SCRAM 实现提供:
- 可调工作因子(迭代次数)
- 每个用户随机盐
- 服务器和客户端之间的双向认证
SCRAM 机制
MongoDB 支持以下 SCRAM 机制:
SCRAM机制 | 描述 |
---|---|
SCRAM-SHA-1 |
使用 SHA-1 哈希函数。要修改 的迭代计数SCRAM-SHA-1 ,请参阅 scramIterationCount 。 |
SCRAM-SHA-256 |
使用 SHA-256 哈希函数。要修改 的迭代计数SCRAM-SHA-256 ,请参阅 scramSHA256IterationCount 。 |
当您创建或更新 SCRAM 用户时,您可以指示:
- 使用的 SCRAM 机制
- 服务器或客户端是否消化密码
当您使用 时SCRAM-SHA-256
,MongoDB 需要服务器端密码散列,这意味着服务器会消化密码。有关详细信息,请参阅db.createUser()
和 db.updateUser()
。
驱动程序支持
支持的最低驱动程序版本SCRAM
是:
Driver Language | 版本 | Driver Language | 版本 |
---|---|---|---|
C | 1.1.0 | PHP | 1.0 |
C++ | 1.0.0 | Python | 2.8 |
C# | 1.10 | Perl | 1.0.0 |
Go | 1.0.0 | Ruby | 1.12 |
Java | 2.13 | Rust | 1.0.0 |
Motor | 0.4 | Scala | 2.8.0 |
Node.js | 1.4.29 | Swift | 1.0.0 |
附加信息
如果您使用SCRAM-SHA-1 :
- md5是必需的,但不用于加密目的,并且
- 如果您使用FIPS 模式,则使用以下代替 SCRAM-SHA-1 :
提示:
也可以看看:
翻译:韩鹏帅
原文:SCRAM