Docs Menu
Docs Home
/ /
Data API

Autenticar solicitudes de API de datos

Los puntos finales de la API de datos generalmente requieren que las solicitudes entrantes incluyan información de autenticación del usuario que los llama. Esto permite que el punto final aplique reglas y valide los esquemas de documentos para cada solicitud.

Las solicitudes deben incluir datos de autenticación en encabezados específicos. App Services utiliza el siguiente proceso para autenticar una solicitud:

  1. Compruebe si hay un Authorization encabezado. Si está presente, intenta usar Autenticación de portador. El encabezado debe contener un token de acceso de usuario válido. Si el token no es válido, la solicitud falla.

  2. Si el Authorization encabezado no está presente o no utiliza el esquema "Portador", verifique los encabezados de credenciales. Estos deben contener credenciales válidas de correo electrónico/contraseña, clave API o JWT personalizadas para el usuario de la aplicación.

Nota

Debe activar un proveedor de autenticación antes de que los usuarios puedan autenticarse con él.

La API de datos admite la autenticación de portador, lo que permite autenticar una solicitud incluyendo un token de acceso de usuario válido en el Authorization encabezado. Para obtener información sobre cómo obtener y administrar un token de acceso, consulte Administrar sesiones de usuario.

El encabezado de autorización utiliza el siguiente formato:

Authorization: Bearer <AccessToken>

Por ejemplo, la siguiente solicitud utiliza la autenticación Bearer:

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"
}
}'

En general, la autenticación de portador con un token de acceso ofrece mayor rendimiento y es más segura que los encabezados de credenciales. Utilice un token de acceso en lugar de encabezados de credenciales siempre que sea posible. El token permite ejecutar múltiples solicitudes sin tener que volver a autenticar al usuario. También permite enviar solicitudes desde un navegador web que implemente CORS.

Importante

No uses claves API en clientes orientados al usuario

Si se autentica desde un navegador u otra aplicación cliente, evite usar una clave API para iniciar sesión. En su lugar, utilice otro proveedor de autenticación que acepte las credenciales proporcionadas por el usuario. Nunca almacene localmente claves API ni otras credenciales confidenciales.

La autenticación del portador es útil para:

  • enviando solicitudes desde un navegador web.

  • enviar múltiples solicitudes sin almacenar las credenciales del usuario ni preguntarle en cada solicitud.

  • enviar solicitudes desde una aplicación que también utilice un Realm SDK para autenticar usuarios.

Nota

Por razones de seguridad, App Services no devuelve errores detallados de autenticación de portador a la aplicación cliente. Si tiene problemas con la autenticación de portador, consulte los registros de la aplicación.

Puede autenticar una solicitud de la API de datos incluyendo las credenciales de inicio de sesión del usuario en los encabezados de la solicitud. Los encabezados exactos que se deben incluir dependen del proveedor de autenticación.

Los encabezados de credenciales son útiles para:

  • solicitudes enviadas desde una aplicación del lado del servidor

  • solicitudes enviadas desde una herramienta de línea de comandos

  • solicitudes manuales o de prueba enviadas desde un cliente HTTPS como Postman

Importante

No se pueden usar encabezados de credenciales para autenticar solicitudes enviadas desde un navegador web debido a restricciones de uso compartido de recursos entre orígenes. En su lugar, para autenticar solicitudes de la API de datos desde un navegador, utilice la autenticación de portador.

Para autenticar una solicitud de API de datos como un usuario de correo electrónico/contraseña, incluya las credenciales del usuario en email los password encabezados y de la solicitud.

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 una solicitud de API de datos con una clave de API, incluya la clave de API en el apiKey encabezado de la solicitud.

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

No uses claves API en clientes orientados al usuario

Si se autentica desde un navegador u otra aplicación cliente, evite usar una clave API para iniciar sesión. En su lugar, utilice otro proveedor de autenticación que acepte las credenciales proporcionadas por el usuario. Nunca almacene localmente claves API ni otras credenciales confidenciales.

Para autenticar una solicitud de API de datos como un usuario JWT personalizado, incluya la cadena JWT en el jwtTokenString encabezado de la solicitud.

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"
}
}'

Volver

Puntos finales HTTPS personalizados

En esta página