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
Visão geral
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.
Aplicativo de amostra
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:
Verifique se o PyMongo está instalado.
Copie o seguinte código e cole-o em um novo arquivo
.py
.Copie um exemplo de código desta página e cole-o nas linhas especificadas no arquivo.
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
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.
SCRAM-SHA-1
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.
MONGODB-X509
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.
MONGODB-AWS
MongoClient
Credenciais
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.
Variáveis de ambiente
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.
Arquivo de Credenciais Compartilhados
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.
Arquivo de configuração do Amazon Web Services
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.
Solicitação AssumeRole
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.
AssumeRoleWithWebIdentity
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.
Contêiner do ECS ou Instância do EC2
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.
Kerberos
Observação
Apenas MongoDB Enterprise
A autenticação Kerberos está disponível apenas no MongoDB Enterprise.
Unix
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.
Windows
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.
PLAIN SASL
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.
MONGODB-OIDC
Observação
Apenas MongoDB Enterprise
A autenticação MONGODB-OIDC está disponível apenas no MongoDB Enterprise.
IMDS do Azure
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.
GCP IMDS
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.
Outros ambientes 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>" 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.
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 )
Para saber mais sobre a autenticação com o OIDC, consulte GCP GKE no guia de autenticação.