Overview
Salted 挑战响应身份验证机制 (SCRAM) 是一系列身份身份验证机制,它们使用质询-响应机制对用户进行身份验证。SCRAM-SHA-256
(使用 SHA-256
算法对密码进行哈希处理)是MongoDB Server 4.0 及更高版本中的默认身份验证机制。SCRAM-SHA-1
(使用 SHA-1
算法)是 4.0 之前的MongoDB Server版本中的默认身份验证机制。
您可以使用 SCRAM
对MongoDB Atlas、 MongoDB Enterprise Advanced和MongoDB Community Edition进行身份验证。
提示
SCRAM 机制
要学习;了解有关SCRAM
系列身份验证机制的详情,请参阅 Wikipedia 上的 RFC5802 和 Salted 挑战响应身份验证机制。
有关 SCRAM
的MongoDB实施的更多信息,请参阅MongoDB Server手册中的SCRAM 。
指定SCRAM-SHA-256 身份验证
SCRAM-SHA-256
(如RFC 7677所定义),使用 SHA-256
算法加密用户名和密码,以对用户进行身份验证。这是默认的身份验证机制。
本节中的示例展示了如何指定此默认身份验证机制并使用以下占位符值:
db_username
:您的MongoDB 数据库用户名。db_password
:您的MongoDB 数据库用户的密码。hostname
: MongoDB 部署的网络解决,向客户端开放。port
: MongoDB 部署的端口号。authenticationDb
:包含用户身份验证数据的MongoDB 数据库。 如果省略此参数,驾驶员将使用默认值admin
。
选择下面的 Connection String 或 MongoCredential标签页,查看指定此身份验证机制的说明和示例代码:
要使用连接字符串默认身份验证机制,请省略该机制,如以下示例所示:
val mongoClient = MongoClient.create("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=<authenticationDb>")
要使用 MongoCredential
类默认身份验证机制,请使用 createCredential()
方法,如以下示例所示:
val credential = MongoCredential.createCredential( "<db_username>", "<authenticationDb>", "<db_password>".toCharArray() ) val settings = MongoClientSettings.builder() .applyToClusterSettings { builder: ClusterSettings.Builder -> builder.hosts( listOf(ServerAddress("<hostname>", <port>)) ) } .credential(credential) .build() val mongoClient = MongoClient.create(settings)
或者,您可以显式指定 SCRAM-SHA-256
身份验证机制。选择下面的 Connection String 或 MongoCredential标签页,查看指定此身份验证机制的说明和示例代码:
要使用连接字符串指定 SCRAM-SHA-256
身份验证机制,请在连接字符串中为 authMechanism
参数分配值 SCRAM-SHA-256
,如以下示例所示:
val mongoClient = MongoClient.create("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=admin&authMechanism=SCRAM-SHA-256")
要使用 MongoCredential
类默认身份验证机制,请使用 createScramSha256Credential() 方法,如以下示例所示:
val credential = MongoCredential.createScramSha256Credential( "<db_username>", "<authenticationDb>", "<db_password>".toCharArray() ) val settings = MongoClientSettings.builder() .applyToClusterSettings { builder: ClusterSettings.Builder -> builder.hosts( listOf(ServerAddress("<hostname>", <port>)) ) } .credential(credential) .build() val mongoClient = MongoClient.create(settings)
指定SCRAM-SHA-1 身份验证
SCRAM-SHA-1
(如RFC 5802所定义),使用 SHA-1
算法加密用户名和密码,以对用户进行身份验证。
本节中的示例展示了如何指定此身份验证机制并使用以下占位符值:
db_username
:您的MongoDB 数据库用户名。db_password
:您的MongoDB 数据库用户的密码。hostname
: MongoDB 部署的网络解决,向客户端开放。port
: MongoDB 部署的端口号。authenticationDb
:包含用户身份验证数据的MongoDB 数据库。 如果省略此参数,驾驶员将使用默认值admin
。
选择下面的 Connection String 或 MongoCredential标签页,查看指定 SCRAM-SHA-1
身份验证机制的说明和示例代码:
要使用连接字符串指定 SCRAM-SHA-1
身份验证机制,请在连接字符串中为 authMechanism
参数分配值 SCRAM-SHA-1
,如以下示例所示:
val mongoClient = MongoClient.create("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=admin&authMechanism=SCRAM-SHA-1")
要使用 MongoCredential
类默认身份验证机制,请使用 createScramSha1Credential() 方法,如以下示例所示:
val credential = MongoCredential.createScramSha1Credential( "<db_username>", "<authenticationDb>", "<db_password>".toCharArray() ) val settings = MongoClientSettings.builder() .applyToClusterSettings { builder: ClusterSettings.Builder -> builder.hosts( listOf(ServerAddress("<hostname>", <port>)) ) } .credential(credential) .build() val mongoClient = MongoClient.create(settings)
更多信息
要学习;了解有关向MongoDB进行身份验证的更多信息,请参阅MongoDB Server手册中的身份验证。
要学习;了解有关使用Kotlin Sync驾驶员创建 MongoClient
对象的详情,请参阅 Create a MongoClient指南。