文档菜单

文档首页开发应用程序Python 驱动程序PyMongo

保护您的数据

本页内容

  • 概述
  • 示例应用程序
  • SCRAM-SHA-256
  • SCRAM-SHA-1
  • MONGODB-X509
  • MONGODB-AWS
  • MongoClient凭据
  • 环境变量
  • 共享凭据文件
  • AWS 配置文件
  • AssumeRole 请求
  • AssumeRoleWithWebIdentity
  • ECS 容器或 EC2 实例
  • Kerberos
  • Unix
  • Windows
  • PLAIN SASL
  • MONGODB-OIDC
  • Azure IMDS
  • GCP IMDS
  • 其他Azure环境
  • GCP GKE

MongoDB 支持多种机制,您可以使用这些机制来验证您的应用程序。本页面包含代码示例,展示了这些机制中的每一个。

提示

要了解更多关于本页面上任何身份验证机制的信息,请参阅身份验证机制企业身份验证机制页面。

要使用本页面上的身份验证示例,请将代码示例复制到示例应用程序或您自己的应用程序中。请确保将代码示例中的所有占位符(例如<hostname>)替换为您的MongoDB部署的相关值。

您可以使用以下示例应用程序来测试本页上的代码示例。要使用示例应用程序,请执行以下步骤:

  1. 确保您已安装 PyMongo。

  2. 复制以下代码并将其粘贴到新的 .py 文件中。

  3. 从本页复制一个代码示例,并将其粘贴到文件中的指定行。

1from pymongo import MongoClient
2
3try:
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
15except Exception as e:
16 raise Exception(
17 "The following error occurred: ", e)

要了解更多关于 SCRAM-SHA-256 身份验证的信息,请参阅认证指南中的 SCRAM-SHA-256

要了解更多关于 SCRAM-SHA-1 身份验证的信息,请参阅认证指南中的 SCRAM-SHA-1

要了解更多关于 MONGODB-X509 身份验证的信息,请参阅认证指南中的 MONGODB-X509

要了解更多关于使用 AWS MongoClient 凭证进行身份验证的信息,请参阅认证指南中的 MongoClient 凭证

要了解更多关于使用 AWS 环境变量进行身份验证的信息,请参阅认证指南中的 环境变量

要了解更多关于使用共享 AWS 凭证文件进行身份验证的信息,请参阅认证指南中的 共享凭证文件

要了解更多关于使用 AWS 配置文件进行身份验证的信息,请参阅认证指南中的 AWS 配置文件

要了解更多关于使用 AssumeRole 请求进行身份验证的信息,请参阅认证指南中的 假设角色请求

要了解更多关于使用 AssumeRoleWithWebIdentity 请求进行身份验证的信息,请参阅认证指南中的 假设角色 Web 身份

要了解更多关于从ECS容器进行认证的信息,请参阅认证指南中的ECS容器或EC2实例

注意

仅适用于MongoDB企业版

Kerberos认证仅在MongoDB企业版中可用。

要了解有关使用Kerberos进行认证的更多信息,请参阅企业认证指南中的Kerberos

要了解有关使用Kerberos进行认证的更多信息,请参阅企业认证指南中的Kerberos

注意

仅适用于MongoDB企业版

PLAIN SASL认证仅在MongoDB企业版中可用。

要了解有关使用PLAIN SASL进行认证的更多信息,请参阅企业认证指南中的PLAIN SASL

注意

仅适用于MongoDB企业版

MONGODB-OIDC认证仅在MongoDB企业版中可用。

要了解有关使用OIDC进行认证的更多信息,请参阅认证指南中的Azure IMDS

要了解有关使用OIDC进行认证的更多信息,请参阅认证指南中的GCP IMDS

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环境

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

← 多字段连接