Overview
在 X.509 身份验证机制中,服务器和客户端使用 TLS 协议交换 X.509 公钥证书。您可以使用此机制对MongoDB Atlas、 MongoDB Enterprise Advanced和MongoDB Community Edition进行身份验证。
代码占位符
本页上的代码示例使用以下占位符:
+srv
:仅当您连接到MongoDB Atlas 群集时,才在连接字符串前缀中包含此选项。 要学习;了解有关+srv
选项的更多信息,请参阅MongoDB Server手册中的连接字符串格式。<hostname>
: MongoDB 部署的网络解决。<port>
: MongoDB 部署的端口号。 如果省略此参数,驾驶员将使用默认端口号 (27017
)。 连接MongoDB Atlas 群集时无需端口号。<path to X.509 certificate>
:X.509 证书文件的路径。<X.509 certificate password>
:X.509 证书的密码。
要使用本页上的代码示例,请将这些占位符替换为您自己的值。
重要
百分比编码
您必须 对 用户名和密码,然后再将其包含在 MongoDB URI 中。quote_plus()
方法,可在 urllib.parse 模块,是执行此任务的一种方法。例如,调用 quote_plus("and / or")
会返回string and+%2F+or
。
将用户名或密码作为参数传递给MongoClient
时,不要对用户名或密码进行百分号编码。
在应用程序中使用 X.509 身份验证
您可以通过两种方式设置这些选项:将参数传递给 MongoClient
构造函数,或通过连接string中的参数。
client = pymongo.MongoClient("mongodb[+srv]://<hostname>:<port>", tls=True, tlsCertificateKeyFile="<path to X.509 certificate>", tlsCertificateKeyFilePassword="<X.509 certificate password>", authMechanism="MONGODB-X509")
uri = ("mongodb[+srv]://<hostname>:<port>/?" "tls=true" "&tlsCertificateKeyFile=<path to X.509 certificate>" "&tlsCertificateKeyFilePassword=<X.509 certificate password>" "&authMechanism=MONGODB-X509") client = pymongo.MongoClient(uri)
API 文档
要了解有关在 PyMongo 中对应用程序进行身份验证的更多信息,请参阅以下 API 文档: