Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs 菜单
Docs 主页
/ / /
Kotlin Sync 驱动程序
/ /

SCRAM 身份验证

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(如RFC 7677所定义),使用 SHA-256算法加密用户名和密码,以对用户进行身份验证。这是默认的身份验证机制。

本节中的示例展示了如何指定此默认身份验证机制并使用以下占位符值:

  • db_username:您的MongoDB 数据库用户名。

  • db_password:您的MongoDB 数据库用户的密码。

  • hostname: MongoDB 部署的网络解决,向客户端开放。

  • port: MongoDB 部署的端口号。

  • authenticationDb:包含用户身份验证数据的MongoDB 数据库。 如果省略此参数,驾驶员将使用默认值 admin

选择下面的 Connection StringMongoCredential标签页,查看指定此身份验证机制的说明和示例代码:

要使用连接字符串默认身份验证机制,请省略该机制,如以下示例所示:

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 StringMongoCredential标签页,查看指定此身份验证机制的说明和示例代码:

要使用连接字符串指定 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(如RFC 5802所定义),使用 SHA-1算法加密用户名和密码,以对用户进行身份验证。

本节中的示例展示了如何指定此身份验证机制并使用以下占位符值:

  • db_username:您的MongoDB 数据库用户名。

  • db_password:您的MongoDB 数据库用户的密码。

  • hostname: MongoDB 部署的网络解决,向客户端开放。

  • port: MongoDB 部署的端口号。

  • authenticationDb:包含用户身份验证数据的MongoDB 数据库。 如果省略此参数,驾驶员将使用默认值 admin

选择下面的 Connection StringMongoCredential标签页,查看指定 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指南。

后退

身份验证

在此页面上