文档首页 → 开发应用程序 → Python 驱动程序 → PyMongo
保护您的数据
本页内容
概述
MongoDB 支持多种机制,您可以使用这些机制来验证您的应用程序。本页面包含代码示例,展示了这些机制中的每一个。
要使用本页面上的身份验证示例,请将代码示例复制到示例应用程序或您自己的应用程序中。请确保将代码示例中的所有占位符(例如<hostname>
)替换为您的MongoDB部署的相关值。
示例应用程序
您可以使用以下示例应用程序来测试本页上的代码示例。要使用示例应用程序,请执行以下步骤:
确保您已安装 PyMongo。
复制以下代码并将其粘贴到新的
.py
文件中。从本页复制一个代码示例,并将其粘贴到文件中的指定行。
1 from pymongo import MongoClient 2 3 try: 4 # start example code here 5 6 # end example code here 7 8 client.admin.command("ping") 9 print("Connected successfully") 10 11 # other application code 12 13 client.close() 14 15 except Exception as e: 16 raise Exception( 17 "The following error occurred: ", e)
SCRAM-SHA-256
要了解更多关于 SCRAM-SHA-256 身份验证的信息,请参阅认证指南中的 SCRAM-SHA-256。
SCRAM-SHA-1
要了解更多关于 SCRAM-SHA-1 身份验证的信息,请参阅认证指南中的 SCRAM-SHA-1。
MONGODB-X509
要了解更多关于 MONGODB-X509 身份验证的信息,请参阅认证指南中的 MONGODB-X509。
MONGODB-AWS
MongoClient
凭证
要了解更多关于使用 AWS MongoClient
凭证进行身份验证的信息,请参阅认证指南中的 MongoClient
凭证。
环境变量
要了解更多关于使用 AWS 环境变量进行身份验证的信息,请参阅认证指南中的 环境变量。
共享凭证文件
要了解更多关于使用共享 AWS 凭证文件进行身份验证的信息,请参阅认证指南中的 共享凭证文件。
AWS 配置文件
要了解更多关于使用 AWS 配置文件进行身份验证的信息,请参阅认证指南中的 AWS 配置文件。
假设角色请求
要了解更多关于使用 AssumeRole
请求进行身份验证的信息,请参阅认证指南中的 假设角色请求。
假设角色 Web 身份
要了解更多关于使用 AssumeRoleWithWebIdentity
请求进行身份验证的信息,请参阅认证指南中的 假设角色 Web 身份。
ECS 容器或 EC2 实例
要了解更多关于从ECS容器进行认证的信息,请参阅认证指南中的ECS容器或EC2实例。
Kerberos
注意
仅适用于MongoDB企业版
Kerberos认证仅在MongoDB企业版中可用。
Unix
要了解有关使用Kerberos进行认证的更多信息,请参阅企业认证指南中的Kerberos。
Windows
要了解有关使用Kerberos进行认证的更多信息,请参阅企业认证指南中的Kerberos。
PLAIN SASL
注意
仅适用于MongoDB企业版
PLAIN SASL认证仅在MongoDB企业版中可用。
要了解有关使用PLAIN SASL进行认证的更多信息,请参阅企业认证指南中的PLAIN SASL。
MONGODB-OIDC
注意
仅适用于MongoDB企业版
MONGODB-OIDC认证仅在MongoDB企业版中可用。
Azure IMDS
要了解有关使用OIDC进行认证的更多信息,请参阅认证指南中的Azure IMDS。
GCP IMDS
要了解有关使用OIDC进行认证的更多信息,请参阅认证指南中的GCP IMDS。
其他Azure环境
from pymongo import MongoClient from azure.identity import DefaultAzureCredential from pymongo.auth_oidc import OIDCCallback, OIDCCallbackContext, OIDCCallbackResult # define callback, properties, and MongoClient audience = "<audience configured on the MongoDB deployment>" client_id = "<Azure client ID>" class MyCallback(OIDCCallback): def fetch(self, context: OIDCCallbackContext) -> OIDCCallbackResult: credential = DefaultAzureCredential(managed_identity_client_id=client_id) token = credential.get_token(f"{audience}/.default").token return OIDCCallbackResult(access_token=token) properties = {"OIDC_CALLBACK": MyCallback()} client = MongoClient( "mongodb://<hostname>:<port>", authMechanism="MONGODB-OIDC", authMechanismProperties=properties )
要了解有关使用OIDC进行认证的更多信息,请参阅认证指南中的其他Azure环境。
GCP GKE
from pymongo import MongoClient from pymongo.auth_oidc import OIDCCallback, OIDCCallbackContext, OIDCCallbackResult # define callback, properties, and MongoClient class MyCallback(OIDCCallback): def fetch(self, context: OIDCCallbackContext) -> OIDCCallbackResult: with open("/var/run/secrets/kubernetes.io/serviceaccount/token") as fid: token = fid.read() return OIDCCallbackResult(access_token=token) properties = {"OIDC_CALLBACK": MyCallback()} client = MongoClient( "mongodb://<hostname>:<port>", authMechanism="MONGODB-OIDC", authMechanismProperties=properties )
要了解有关使用OIDC进行认证的更多信息,请参阅认证指南中的GCP GKE。