Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs 菜单
Docs 主页
/ / /
Java (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系列身份验证机制的详情,请参阅 RFC5802 和维基百科上的 Salted 挑战响应身份验证机制。

有关SCRAM的MongoDB实施的更多信息,请参阅MongoDB Server手册中的SCRAM 。

本页上的代码示例使用以下占位符:

  • <db_username>:要进行身份验证的用户的MongoDB用户名。

  • <db_password>:要进行身份验证的用户的MongoDB密码。

  • <hostname>: MongoDB 部署的网络解决。

  • <port>: MongoDB 部署的端口号。 如果省略此参数,驾驶员将使用默认端口号 (27017)。 连接MongoDB Atlas 群集时无需端口号。

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

要使用代码示例,请将这些占位符替换为您自己的值。

要使用默认的SCRAM机制对MongoDB用户进行身份验证,请指定您的MongoDB凭证,但不要指定身份验证机制。选择下面的 Connection StringMongoCredential标签页,查看相应语法的说明和示例代码:

要使用连接字符串默认身份验证机制,请忽略该机制。 用于实例化 MongoClient 的代码类似于以下内容:

MongoClient mongoClient = MongoClients.create("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=<authenticationDb>");

要使用 MongoCredential 类默认默认身份验证机制,请使用 createCredential() 方法。用于实例化 MongoClient 的代码如下所示:

MongoCredential credential = MongoCredential.createCredential("<db_username>", "<authenticationDb>", "<db_password>");
MongoClient mongoClient = MongoClients.create(
MongoClientSettings.builder()
.applyToClusterSettings(builder ->
builder.hosts(Arrays.asList(new ServerAddress("<hostname>", <port>))))
.credential(credential)
.build());

如需进一步了解 MongoDB 支持的质询-响应(CR)和 Salted 质询-响应身份验证机制 (SCRAM),请参阅 MongoDB Server 手册的 SCRAM 部分。

SCRAM-SHA-256 是从MongoDB 4.0 开始的MongoDB的默认身份验证方法,但此代码示例演示了如何显式使用此机制。选择Connection StringMongoCredential标签页,查看指定此身份验证机制的说明和示例代码:

要使用连接字符串指定 SCRAM-SHA-256身份验证机制,请在连接字符串中为 authMechanism 参数分配值 SCRAM-SHA-256。 用于实例化 MongoClient 的代码如下所示:

MongoClient mongoClient = MongoClients.create("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=<authenticationDb>&authMechanism=SCRAM-SHA-256");

要使用 MongoCredential 类指定 SCRAM-SHA-256身份验证机制,请使用 createScramSha256Credential() 方法。用于实例化 MongoClient 的代码如下所示:

MongoCredential credential = MongoCredential.createScramSha256Credential("<db_username>", "<authenticationDb>", "<db_password>");
MongoClient mongoClient = MongoClients.create(
MongoClientSettings.builder()
.applyToClusterSettings(builder ->
builder.hosts(Arrays.asList(new ServerAddress("<hostname>", <port>))))
.credential(credential)
.build());

SCRAM-SHA-1 是早于 4.0 的MongoDB版本的默认身份验证方法,但此代码示例演示了如何显式使用此机制。选择Connection StringMongoCredential标签页,查看指定此身份验证机制的说明和示例代码:

要使用连接字符串指定 SCRAM-SHA-1身份验证机制,请在连接字符串中为 authMechanism 参数分配值 SCRAM-SHA-1。 用于实例化 MongoClient 的代码如下所示:

MongoClient mongoClient = MongoClients.create("mongodb://<db_username>:<db_password>@<hostname>:<port>/?authSource=<authenticationDb>&authMechanism=SCRAM-SHA-1");

要使用 MongoCredential 类指定 SCRAM-SHA-1身份验证机制,请使用 createScramSha1Credential() 方法。用于实例化 MongoClient 的代码如下所示:

MongoCredential credential = MongoCredential.createScramSha1Credential("<db_username>", "<authenticationDb>", "<db_password>");
MongoClient mongoClient = MongoClients.create(
MongoClientSettings.builder()
.applyToClusterSettings(builder ->
builder.hosts(Arrays.asList(new ServerAddress("<hostname>", <port>))))
.credential(credential)
.build());

要学习;了解有关本页讨论的任何方法或类型的更多信息,请参阅以下API文档:

后退

身份验证

在此页面上