Menu Docs
Página inicial do Docs
/ / /
PyMongo

Proteja seus dados

Nesta página

  • Visão geral
  • Aplicativo de amostra
  • SCRAM-SHA-256
  • SCRAM-SHA-1
  • MONGODB-X509
  • MONGODB-AWS
  • MongoClient Credenciais
  • Variáveis de ambiente
  • Arquivo de Credenciais Compartilhados
  • Arquivo de configuração do Amazon Web Services
  • Solicitação AssumeRole
  • AssumeRoleWithWebIdentity
  • Contêiner do ECS ou Instância do EC2
  • Kerberos
  • Unix
  • Windows
  • PLAIN SASL
  • MONGODB-OIDC
  • IMDS do Azure
  • GCP IMDS
  • Outros ambientes Azure
  • GCP GKE

O MongoDB oferece suporte a vários mecanismos que você pode usar para autenticar seu aplicativo. Esta página contém exemplos de código que mostram cada um desses mecanismos.

Dica

Para saber mais sobre qualquer um dos mecanismos de autenticação desta página, consulte as páginas Mecanismos deautenticação e Mecanismos de autenticação empresarial .

Para usar um exemplo de autenticação desta página, copie o exemplo de código noaplicativo de amostra ou em seu próprio aplicativo. Certifique-se de substituir todos os espaços reservados nos exemplos de código, como <hostname>, pelos valores relevantes para sua implantação do MongoDB.

Você pode usar o seguinte aplicativo de exemplo para testar os exemplos de código nesta página. Para usar o aplicativo de amostra, execute as seguintes etapas:

  1. Verifique se o PyMongo está instalado.

  2. Copie o seguinte código e cole-o em um novo arquivo .py .

  3. Copie um exemplo de código desta página e cole-o nas linhas especificadas no arquivo.

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)
client = pymongo.MongoClient("mongodb://<hostname>:<port>",
username="<db_username>",
password="<db_password>",
authSource="<authentication database>",
authMechanism="SCRAM-SHA-256")
uri = ("mongodb://<percent-encoded username>:<percent-encoded password>"
"@<hostname>:<port>/?"
"authSource=<authentication database>"
"&authMechanism=SCRAM-SHA-256")
client = pymongo.MongoClient(uri)

Para saber mais sobre a autenticação SCRAM-SHA-256 , consulte SCRAM-SHA-256 no guia Autenticação.

client = pymongo.MongoClient("mongodb://<hostname>:<port>",
username="<db_username>",
password="<db_password>",
authSource="<authentication database>",
authMechanism="SCRAM-SHA-1")
uri = ("mongodb://<percent-encoded username>:<percent-encoded password>"
"@<hostname>:<port>/?"
"authSource=<authentication database>"
"&authMechanism=SCRAM-SHA-1")
client = pymongo.MongoClient(uri)

Para saber mais sobre a autenticação SCRAM-SHA-1 , consulte SCRAM-SHA-1 no guia Autenticação.

client = pymongo.MongoClient("mongodb://<hostname>:<port>",
tls=True,
tlsCertificateKeyFile="/path/to/client.pem",
authMechanism="MONGODB-X509")
uri = ("mongodb://<hostname>:<port>/?"
"tls=true"
"&tlsCertificateKeyFile=path/to/client.pem"
"&authMechanism=MONGODB-X509")
client = pymongo.MongoClient(uri)

Para saber mais sobre a autenticação MONGODB-X509 , consulte MONGODB-X509 no Guia de autenticação.

client = pymongo.MongoClient("mongodb://<hostname>:<port>",
username="<AWS IAM access key ID>",
password="<AWS IAM secret access key>",
authMechanism="MONGODB-AWS")
uri = ("mongodb://<percent-encoded AWS IAM access key ID>:"
"<percent-encoded AWS IAM secret access key>"
"@<hostname>:<port>/?"
"&authMechanism=MONGODB-AWS")
client = pymongo.MongoClient(uri)

Para saber mais sobre como autenticar com as credenciais Amazon Web Services MongoClient, consulte Credenciais doMongoClient no guia Autenticação.

client = pymongo.MongoClient("mongodb://<hostname>:<port>",
authMechanism="MONGODB-AWS")
uri = "mongodb://<hostname>:<port>/?&authMechanism=MONGODB-AWS"
client = pymongo.MongoClient(uri)

Para saber mais sobre a autenticação com variáveis de ambiente do Amazon Web Services, consulte Variáveis de ambiente no guia de Autenticação.

client = pymongo.MongoClient("mongodb://<hostname>:<port>",
authMechanism="MONGODB-AWS")
uri = "mongodb://<hostname>:<port>/?&authMechanism=MONGODB-AWS"
client = pymongo.MongoClient(uri)

Para saber mais sobre a autenticação com um arquivo de credenciais compartilhado Amazon Web Services , consulte Arquivo de credenciais compartilhadas no guia Autenticação.

client = pymongo.MongoClient("mongodb://<hostname>:<port>",
authMechanism="MONGODB-AWS")
uri = "mongodb://<hostname>:<port>/?&authMechanism=MONGODB-AWS"
client = pymongo.MongoClient(uri)

Para saber mais sobre como autenticar com um arquivo de configuração do Amazon Web Services, consulte Arquivo de configuração do Amazon Web Services no guia de Autenticação.

client = pymongo.MongoClient("mongodb://@<hostname>:<port>",
username="<AWS IAM access key ID>",
password="<AWS IAM secret access key>",
authMechanismProperties="AWS_SESSION_TOKEN:<AWS session token>",
authMechanism="MONGODB-AWS")
uri = ("mongodb://<percent-encoded AWS IAM access key ID>:"
"<percent-encoded AWS IAM secret access key>"
"@<hostname>:<port>/?"
"authMechanismProperties=AWS_SESSION_TOKEN:<AWS session token>"
"&authMechanism=MONGODB-AWS")
client = pymongo.MongoClient(uri)

Para saber mais sobre a autenticação com uma solicitação AssumeRole , consulte Solicitação AssumeRole no guia Autenticação.

client = pymongo.MongoClient("mongodb://<hostname>:<port>",
authMechanism="MONGODB-AWS")
uri = "mongodb://<hostname>:<port>/?&authMechanism=MONGODB-AWS"
client = pymongo.MongoClient(uri)

Para saber mais sobre a autenticação com uma solicitação AssumeRoleWithWebIdentity , consulte AssumeRoleWithWebIdentity no guia Autenticação.

client = pymongo.MongoClient("mongodb://<hostname>:<port>",
authMechanism="MONGODB-AWS")
uri = "mongodb://<hostname>:<port>/?&authMechanism=MONGODB-AWS"
client = pymongo.MongoClient(uri)

Para saber mais sobre a autenticação a partir de um container do ECS, consulte Contêiner do ECS ou Instância do EC2 no guia de Autenticação.

Observação

Apenas MongoDB Enterprise

A autenticação Kerberos está disponível apenas no MongoDB Enterprise.

client = pymongo.MongoClient("mongodb://<hostname>:<port>",
username="mongodbuser@EXAMPLE.COM",
authMechanism="GSSAPI",
authMechanismProperties="SERVICE_NAME:<authentication service name>")
uri = ("mongodb://mongodbuser%40EXAMPLE.COM@<hostname>:<port>/?"
"&authMechanism=GSSAPI"
"&authMechanismProperties=SERVICE_NAME:<authentication service name>")
client = pymongo.MongoClient(uri)

Para saber mais sobre a autenticação com Kerberos, consulte Kerberos no guia Autenticação empresarial.

client = pymongo.MongoClient("mongodb://<hostname>:<port>",
username="<db_username>",
authMechanism="GSSAPI",
password="<db_password>",
authMechanismProperties="SERVICE_NAME:<authentication service name>,
CANONICALIZE_HOST_NAME:true,
SERVICE_REALM:<service realm>")
uri = ("mongodb://<percent-encoded username>:<percent-encoded user password>"
"@<hostname>:<port>/?"
"&authMechanism=GSSAPI"
"&authMechanismProperties="
"SERVICE_NAME:<authentication service name>,"
"CANONICALIZE_HOST_NAME:true,"
"SERVICE_REALM:<service realm>")
client = pymongo.MongoClient(uri)

Para saber mais sobre a autenticação com Kerberos, consulte Kerberos no guia Autenticação empresarial.

Observação

Apenas MongoDB Enterprise

A autenticação PLAIN SASL está disponível apenas no MongoDB Enterprise.

client = pymongo.MongoClient("mongodb://<hostname>:<port>",
username="<db_username>",
password="<db_password>",
authMechanism="PLAIN",
tls=True)
uri = ("mongodb://<db_username>:<db_password>@<hostname>:<port>/?"
"&authMechanism=PLAIN"
"&tls=true")
client = pymongo.MongoClient(uri)

Para saber mais sobre a autenticação com PLAIN SASL, consulte PLAIN SASL no guia de autenticação empresarial.

Observação

Apenas MongoDB Enterprise

A autenticação MONGODB-OIDC está disponível apenas no MongoDB Enterprise.

from pymongo import MongoClient
# define properties and MongoClient
properties = {"ENVIRONMENT": "azure", "TOKEN_RESOURCE": "<audience>"}
client = MongoClient(
"mongodb://<hostname>:<port>",
username="<Azure client ID or application ID>",
authMechanism="MONGODB-OIDC",
authMechanismProperties=properties
)
from pymongo import MongoClient
# define URI and MongoClient
uri = ("mongodb://<hostname>:<port>/?"
"username=<Azure client ID or application ID>"
"&authMechanism=MONGODB-OIDC"
"&authMechanismProperties=ENVIRONMENT:azure,TOKEN_RESOURCE:<percent-encoded audience>")
client = MongoClient(uri)

Para saber mais sobre autenticação com OIDC, consulte Azure IMDS no guia Autenticação.

from pymongo import MongoClient
# define properties and MongoClient
properties = {"ENVIRONMENT": "gcp", "TOKEN_RESOURCE": "<audience>"}
client = MongoClient(
"mongodb://<hostname>:<port>",
authMechanism="MONGODB-OIDC",
authMechanismProperties=properties
)
from pymongo import MongoClient
# define URI and MongoClient
uri = ("mongodb://<hostname>:<port>/?"
"&authMechanism=MONGODB-OIDC"
"&authMechanismProperties=ENVIRONMENT:gcp,TOKEN_RESOURCE:<percent-encoded audience>")
client = MongoClient(uri)

Para saber mais sobre a autenticação com o OIDC, consulte GCP IMDS no guia Autenticação.

from pymongo import MongoClient
from azure.identity import DefaultAzureCredential
from pymongo.auth_oidc import OIDCCallback, OIDCCallbackContext, OIDCCallbackResult
# define callback, properties, and MongoClient
audience = "<audience>"
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
)

Para saber mais sobre autenticação com OIDC, consulte Outros ambientes Azure no guia Autenticação.

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
)

Para saber mais sobre a autenticação com o OIDC, consulte GCP GKE no guia de autenticação.

Voltar

Junção de vários campos