Puede configurar el proveedor de autenticación JWT personalizado para autenticar a los usuarios que administra con Octava.
Antes de comenzar
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.
Si está utilizando la interfaz de línea de comandos, necesita que App Services CLI esté instalado y autenticado en su sistema local.
Si usa la API de administración, necesita un par de claves pública/privada de la API de administración de MongoDB Atlas. La clave API debe tener permisos de propietario del proyecto.
Crear una aplicación Okta y un servidor de autorización
Cree una aplicación en Okta que represente su aplicación cliente. El tipo de aplicación que cree dependerá de su caso de uso. Por ejemplo, si está creando una aplicación para navegador web, podría crear una aplicación de página única (SPA) o una aplicación web en 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.
Configurar el proveedor de autenticación JWT personalizado
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.
Haga clic en el interruptor para habilitar el proveedor.
Establezca Verification Method en Use a JWK URI. Especifique el URI JWK de su 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
Puede obtener la URI exacta de JWK desde la interfaz de usuario de Okta siguiendo el enlace Metadata URI de su servidor de autorización. Use el valor indicado en el campo
jwks_uri.Define Metadata Fields para asignar datos del JWT de Okta a la cuenta de usuario de App Services correspondiente.
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 .
Deje el valor de Audience en blanco.
Haga clic en Save e implemente sus 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
jwkURIcon el URI JWK de su servidor de autorización Okta.Define campos de metadatos JWT personalizados para mapear datos del JWT de Okta. Esto es opcional; sin embargo, la asignación de campos podría serte útil para obtener información del usuario de Okta en tu aplicación.
{ "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_IDy$APP_IDde tu aplicaciónIncluya un token de acceso a la API de administración en el encabezado
Authorization.Reemplace el valor
jwkURIen el cuerpo de la solicitud con el URI JWK de su servidor de autorización Okta.Define campos de metadatos JWT personalizados para mapear datos del JWT de Okta. Esto es opcional; sin embargo, la asignación de campos podría serte útil para obtener información del usuario de Okta en tu aplicación.
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": [] }'
Iniciar sesión con un JWT de Okta
Una vez que haya configurado el proveedor de autenticación JWT personalizado para usar Okta, puede iniciar sesión en su aplicación App Services con un token de acceso JWT de Okta.
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.
Obtenga el token de acceso de Okta del usuario a partir de la respuesta de inicio de sesión.
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: