Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Authentication Providers

Autenticación Okta JWT (JWT personalizado)

Puede configurar el proveedor de autenticación JWT personalizado para autenticar a los usuarios que administra con Octava.

Necesitarás lo siguiente para usar Okta:

  • Un proyecto de Okta. Para obtener más información, consulte la documentación de Okta.

  • Una App Services App que aún no utilice autenticación JWT personalizada. Para aprender a crear una nueva aplicación de App Services, consulta Crear una aplicación.

  • If you're using the command line interface, you need App Services CLI to be installed and authenticated on your local system.

  • If you're using the Admin API, you need a MongoDB Atlas Admin API public/private key pair. The API key must have Project Owner permissions.

Create an application in Okta that represents your client application. The type of application you create depends on your use case. For example, if you're building a web browser app, you might create a Single-Page Application (SPA) or Web application in Okta.

Una vez configurada la aplicación, cree un servidor de autorización en Okta que represente su aplicación de App Services. Puede usar cualquier nombre y descripción. Configure el servidor. Audience al ID de la aplicación cliente de tu aplicación de Servicios de aplicaciones. Por ejemplo, myapp-abcde.

Para obtener más información sobre cómo configurar una aplicación Okta y un servidor de autorización, consulte Crear un servidor de autorización en la documentación de Okta.

Puedes configurar la autenticación JWT personalizada desde la interfaz de usuario o modificando directamente los archivos de configuración subyacentes con la CLI o la API de administración. Elige tu método preferido a continuación.

En el menú de navegación izquierdo, haga clic en Authentication. Luego, haga clic en la pestaña Authentication Providers y seleccione el proveedor Custom JWT.

Ahora puedes configurar el proveedor de autenticación JWT personalizado para trabajar con tu proyecto Okta.

  1. Haz clic en el conmutador para habilitar el proveedor.

  2. Establezca Verification Method en Use a JWK URI. Especifica el URI JWK de tu servidor de autorización de Okta en el campo JWK URI.

    Tu URI de Okta JWK debería parecerse a lo siguiente:

    https://<Your Okta Domain>/oauth2/<Your Authorization Server ID>/v1/keys

    Nota

    Se puede obtener el URI especifico JWK desde la Interfaz de usuario de Okta siguiendo el enlace Metadata URI del servidor de autorización. Utiliza el valor listado en el campo jwks_uri.

  3. Defina Metadata Fields para asignar datos del JWT de Okta a la cuenta de usuario correspondiente de App Services.

    No tienes que mapear campos de metadatos del Okta JWT. Sin embargo, pueden ser útiles para obtener información del usuario desde Okta hacia su aplicación. Para obtener más información sobre los campos de metadatos y cómo configurarlos, consulte Campos de metadatos JWT personalizados .

  4. Deje el valor de Audience en blanco.

  5. Haz clic en Save e implementa tus cambios

Ejecute el siguiente comando, reemplazando el valor de --remote con el ID de la aplicación cliente de su aplicación. Esto descargará una copia local de los archivos de configuración más recientes de su aplicación y la dirigirá al directorio de archivos de configuración, que usa el mismo nombre que su aplicación.

appservices pull --remote "myapp-abcde"
cd myapp

Añade un nuevo proveedor de autenticación JWT personalizado al archivo /auth/providers.json de tu aplicación. Usa la siguiente configuración como plantilla. Asegúrate de:

  • Reemplace el valor jwkURI con el URI JWK de su servidor de autorización Okta.

  • Define Custom JWT metadata fields to map data from the Okta JWT. This is optional, however, you might find the field mapping useful for getting user information from Okta into your App.

/auth/proveedores.json
{
"custom-token": {
"name": "custom-token",
"type": "custom-token",
"disabled": false,
"config": {
"audience": [],
"jwkURI": "https://<Your Okta Domain>/oauth2/<Your Authorization Server ID>/v1/keys",
"useJWKURI": true
},
"secret_config": {
"signingKeys": []
},
"metadata_fields": []
}
}

Guarda los cambios en /auth/providers.json. Luego, envía el archivo de configuración actualizado para implementar tu aplicación:

appservices push

Agregue un nuevo proveedor de autenticación JWT personalizado a su aplicación mediante el punto final Crear un proveedor de autenticación.

Utilice la siguiente configuración como plantilla. Asegúrese de:

  • Especifica el $PROJECT_ID y $APP_IDde tu aplicación

  • Incluya un token de acceso a la API de administración en el encabezado Authorization.

  • Reemplace el valor jwkURI en el cuerpo de la solicitud con el URI JWK de su servidor de autorización Okta.

  • Define Custom JWT metadata fields to map data from the Okta JWT. This is optional, however, you might find the field mapping useful for getting user information from Okta into your App.

curl "https://services.cloud.mongodb.com/api/admin/v3.0/groups/$PROJECT_ID/apps/$APP_ID/auth_providers" \
-X "POST" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "custom-token",
"type": "custom-token",
"disabled": false,
"config": {
"audience": [],
"jwkURI": "https://<Your Okta Domain>/oauth2/<Your Authorization Server ID>/v1/keys",
"useJWKURI": true
},
"secret_config": {
"signingKeys": []
},
"metadata_fields": []
}'

Once you've configured the Custom JWT authentication provider to use Okta, you can log in to your App Services App with an Okta JWT access token.

  1. Inicie sesión en Okta. Para saber cómo, consulte la documentación del SDK de Okta correspondiente a su plataforma y lenguaje de programación.

  2. Obtén el token de acceso de Okta del usuario de la respuesta de inicio de sesión.

  3. Utiliza el token de acceso de Okta para autenticar con Atlas App Services. Puede iniciar una sesión por HTTP o iniciar sesión con un SDK. Para aprender cómo, consulte los docs de su SDK:

Volver

Firebase (Custom JWT)

En esta página