Menu Docs
Página inicial do Docs
/ /
Serviços Atlas App
/

Autenticar solicitações de API de dados

Nesta página

  • Visão geral
  • Autenticação do portador
  • Cabeçalhos de credencial
  • E-mail/senha
  • Chave API
  • JWT personalizado

Os pontos de conexão da API de dados geralmente exigem que as solicitações recebidas incluam informações de autenticação para o usuário que está chamando o ponto de conexão. Isso permite que o ponto de conexão aplique regras e valide esquemas de documentos para cada solicitação.

As solicitações devem incluir dados de autenticação em cabeçalhos de solicitação específicos. Os Serviços de apps utilizam o seguinte processo para autenticar um determinado pedido:

  1. Verifique se há um cabeçalho Authorization . Se estiver presente, tente usar Autenticação ao Portador. O cabeçalho deve conter um token de acesso de usuário válido. Se o token for inválido, a solicitação falhará.

  2. Se o cabeçalho Authorization não estiver presente ou não usar o esquema "Bearer", verifique Cabeçalhos de credenciais. Os cabeçalhos devem conter credenciais válidas de e-mail/senha, chave de API ou JWT personalizado para um usuário da aplicação.

Observação

Você deve habilitar um fornecedor de autenticação antes que os usuários possam se autenticar com ele.

A API de dados oferece suporte à Autenticação ao Portador, que permite autenticar uma solicitação incluindo um token de acesso de usuário válido no cabeçalho Authorization da solicitação. Para saber como obter e gerenciar um token de acesso, consulte Gerenciar sessões de usuário.

O cabeçalho Autorização utiliza o seguinte formato:

Authorization: Bearer <AccessToken>

Por exemplo, a seguinte solicitação usa Autenticação ao portador:

curl -s "https://data.mongodb-api.com/app/myapp-abcde/endpoint/data/v1/action/findOne" \
-X POST \
-H "Accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-d '{
"dataSource": "mongodb-atlas",
"database": "sample_mflix",
"collection": "movies",
"filter": {
"title": "The Matrix"
}
}'

Em geral, a autenticação de portador com um token de acesso tem uma taxa de transferência mais alta e é mais segura do que os cabeçalhos de credenciais. Use um token de acesso em vez de cabeçalhos de credenciais quando possível. O token permite executar várias solicitações sem autenticar o usuário novamente. Ele também permite enviar solicitações de um navegador da web que exija o CORS.

Importante

Não use chaves de API em clientes direcionados ao usuário

Se você estiver autenticando de um navegador ou de outro aplicativo de cliente voltado para o usuário, evite usar uma chave API para se conectar. Em vez disso, use outro fornecedor de autenticação que tenha credenciais fornecidas pelo usuário. Nunca armazene chaves API ou outras credenciais sensíveis localmente.

A autenticação do portador é útil para:

  • enviando solicitações de um navegador da web.

  • enviar várias solicitações sem armazenar credenciais do usuário ou avisar o usuário em cada solicitação.

  • enviar solicitações de um aplicativo que também usa um Realm SDK para autenticar usuários.

Observação

Por motivos de segurança, os Serviços de Aplicativos não retornam erros detalhados de Autenticação ao Portador ao aplicativo cliente. Se você estiver tendo problemas com a autenticação do portador, verifique os Registros do Aplicativo.

Você pode autenticar uma solicitação de API de dados incluindo as credenciais de login do usuário nos cabeçalhos da solicitação. Os cabeçalhos exatos a serem incluídos dependem do fornecedor de autenticação.

Cabeçalhos de credencial são úteis para:

  • solicitações enviadas de um aplicativo do lado do servidor

  • pedidos enviados de uma ferramenta de linha de comando

  • solicitações manuais ou de teste enviadas de um cliente HTTPS como Postman

Importante

Não é possível usar cabeçalhos de credenciais para autenticar solicitações enviadas de um navegador da Web devido às restrições do Cross-Origin Resource Sharing. Em vez disso, para autenticar solicitações de Data API de um navegador, use autenticação de portador.

Para autenticar uma solicitação de API de dados como usuário de email/senha , inclua as credenciais do usuário nos cabeçalhos email e password da solicitação.

curl -s "https://data.mongodb-api.com/app/myapp-abcde/endpoint/data/v1/action/findOne" \
-X POST \
-H "Accept: application/json" \
-H "email: bob@example" \
-H "password: Pa55w0rd!" \
-d '{
"dataSource": "mongodb-atlas",
"database": "sample_mflix",
"collection": "movies",
"filter": {
"title": "The Matrix"
}
}'

Para autenticar uma solicitação de API de dados com uma chave API, inclua a chave API no cabeçalho apiKey do pedido.

curl -s "https://data.mongodb-api.com/app/myapp-abcde/endpoint/data/v1/action/findOne" \
-X POST \
-H "Accept: application/json" \
-H "apiKey: TpqAKQgvhZE4r6AOzpVydJ9a3tB1BLMrgDzLlBLbihKNDzSJWTAHMVbsMoIOpnM6" \
-d '{
"dataSource": "mongodb-atlas",
"database": "sample_mflix",
"collection": "movies",
"filter": {
"title": "The Matrix"
}
}'

Importante

Não use chaves de API em clientes direcionados ao usuário

Se você estiver autenticando de um navegador ou de outro aplicativo de cliente voltado para o usuário, evite usar uma chave API para se conectar. Em vez disso, use outro fornecedor de autenticação que tenha credenciais fornecidas pelo usuário. Nunca armazene chaves API ou outras credenciais sensíveis localmente.

Para autenticar uma solicitação de API de dados como usuário JWT personalizado, inclua a string JWT no cabeçalho jwtTokenString da solicitação.

curl -s "https://data.mongodb-api.com/app/myapp-abcde/endpoint/data/v1/action/findOne" \
-X POST \
-H "Accept: application/json" \
-H "jwtTokenString: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJteWFwcC1hYmNkZSIsInN1YiI6IjEyMzQ1Njc4OTAiLCJuYW1lIjoiSm9obiBEb2UiLCJleHAiOjIxNDU5MTY4MDB9.E4fSNtYc0t5XCTv3S8W89P9PKLftC4POLRZdN2zOICI" \
-d '{
"dataSource": "mongodb-atlas",
"database": "sample_mflix",
"collection": "movies",
"filter": {
"title": "The Matrix"
}
}'

Voltar

Endpoints HTTPS Personalizados [Obsoleto]HTTPS endpoints