Docs 菜单

Docs 主页开发应用程序Python 驱动程序pymongo

保护您的数据

在此页面上

  • Overview
  • 示例应用程序
  • SCRAM-SHA-256
  • SCRAM-SHA-1
  • MONGODB-X509
  • MONGODB-AWS
  • MongoClient 凭证
  • 环境变量
  • 共享凭证文件
  • Amazon Web Services配置文件
  • AssumeRole 请求
  • AssumeRoleWithWebIdentity
  • ECS 容器或 EC 2实例
  • 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-X 509身份验证的更多信息,请参阅身份验证指南中的MONGODB-X 509

要学习;了解有关使用Amazon Web Services MongoClient 档案进行凭证验证的更多信息,请参阅身份验证指南中的MongoClient 档案

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

要学习;了解有关使用共享Amazon Web Services凭证文件进行身份验证的更多信息,请参阅身份验证指南中的共享凭证文件

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

要学习;了解有关使用AssumeRole请求进行身份验证的更多信息,请参阅身份验证指南中的AssumeRole 请求

要了解有关使用AssumeRoleWithWebIdentity请求进行身份验证的更多信息,请参阅身份验证指南中的AssumeRoleWithWebIdentity

要了解有关从 ECS 容器进行身份验证的更多信息,请参阅身份验证指南中的ECS 容器或 EC 2实例

注意

仅限 MongoDB Enterprise

Kerberos 身份验证仅在 MongoDB Enterprise 中可用。

要了解有关使用 Kerberos 进行身份验证的更多信息,请参阅 Enterprise Authentication 指南中的Kerberos

要了解有关使用 Kerberos 进行身份验证的更多信息,请参阅 Enterprise Authentication 指南中的Kerberos

注意

仅限 MongoDB Enterprise

PLAIN SASL 身份验证仅在 MongoDB Enterprise 中可用。

要了解有关使用 PLAIN SASL 进行身份验证的更多信息,请参阅 Enterprise Authentication 指南中的PLAIN SASL

注意

仅限 MongoDB Enterprise

MONGODB-OIDC 身份验证仅在 MongoDB Enterprise 中可用。

要了解有关使用 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

← 多字段连接