Casos de uso
- Admite comunicaciones de servicio a servicio
- Tiene trabajos programados o tareas cron en servidores que necesitan acceder a recursos protegidos o APIs
- Permite que dispositivos IoT se comuniquen con servicios de backend o APIs
- Tiene una capa de API que necesita comunicarse con otras capas de API sin intervención del usuario o después de que haya expirado un token de usuario
- Tiene una API privilegiada que puede necesitar invocarse antes de que un usuario se haya autenticado (es decir, desde una Action o un script personalizado de base de datos en su inquilino de Auth0)
- Usa un API Gateway para administrar servicios de backend
- Usa o admite aplicaciones no interactivas u otras herramientas que no implican interacción humana, como demonios o servicios de backend
Estos servicios seguirán necesitando un token de acceso M2M para autenticarse.
Cómo usar esta guía
- En Arquitectura, le recomendamos configurar Auth0 para que sea compatible con su ciclo de vida de desarrollo de software y con su infraestructura existente.
- En Crear una cuenta, encontrará instrucciones para crear su instancia de API en Auth0 y una aplicación que admita el flujo de autenticación (o grant) necesario para la autenticación de máquina a máquina.
- En Autenticación, explicamos el grant que debe usar para la autenticación, así como los y permisos (o alcances) que puede configurar.
- En Marca, le indicamos dónde encontrar información sobre cómo configurar según cómo planee administrar los certificados.
- En Automatizaciones de implementación, puede consultar nuestras herramientas para facilitar la implementación.
- En Garantía de calidad, puede obtener más información sobre las pruebas unitarias y las comprobaciones de preparación que ofrecemos en .
Arquitectura
Consideraciones
-
Cómo divides o agrupas tus API para llamar a endpoints específicos.
- Esto puede determinar la audiencia y otros claims de los tokens de acceso.
-
Cualquier consumidor externo de tu recurso puede solicitar un token de acceso en cada llamada. Un volumen excesivo de solicitudes podría afectar tu límite de tasa.
- Puedes usar un API Gateway para limitar la cantidad de tokens de acceso que un tercero puede solicitar. Para obtener más información sobre API Gateways y Auth0, consulta Configurar un Proveedor de identidad en Access Gateway.
Crear una cuenta
Antes de comenzar
En el Auth0 Dashboard o mediante Auth0 Management API, cree:
- Una API para representar su API
- Una aplicación M2M para usar el flujo de credenciales del cliente
- El nombre de su inquilino influye en su dominio de Auth0. Antes de decidirlo, debería revisar las características del inquilino.
- Qué características de Auth0 necesita para su caso de uso. Algunas solo están disponibles en los planes Professional y Enterprise.
- Determine si necesita admitir varios entornos, como desarrollo, preproducción y producción. Para obtener más información, consulte Configurar varios entornos.
- Si tiene un caso de uso que involucra aplicaciones de terceros que desea registrar en un inquilino, puede usar Dynamic Application Registration según la especificación OIDC Client Registration.
Aprovisionar un inquilino
Registrar una API
Siempre puede actualizar su API en Auth0 Dashboard o mediante el endpoint de Management API Update a resource server.
- Auth0 Dashboard
- Management API
Empiece creando una instancia en Auth0 Dashboard para sus API.
- Siga las instrucciones para registrar su API.
Asociar una aplicación
La API de Auth0 tiene varios ajustes que quizá deba revisar antes de configurarla. Para obtener más información, lea Configuración de la API.
- Auth0 Dashboard
- Management API
Si crea su API en el Dashboard, Auth0 genera automáticamente una aplicación de prueba y la asocia con su API.
- Vaya a Auth0 Dashboard > Applications.
-
Seleccione la aplicación de prueba M2M que se creó al crear su API.
Más adelante, puede crear otra aplicación para desarrollo o producción siguiendo las instrucciones de Registrar aplicaciones de máquina a máquina.
- Cambie a la vista API y, a continuación, busque la API que desea habilitar para esta aplicación.
- Active el conmutador Authorize y, a continuación, seleccione el botón de flecha de la derecha para expandir la tarjeta.
-
Seleccione Update.
En esta vista, puede seleccionar el menú desplegable y elegir los alcances que desea agregar. Obtendrá más información sobre los alcances al hablar de los tokens de acceso en la sección de Authentication.
Autenticación
client_id y un client_secret) y luego se autoriza en una sola llamada.
Para autenticar aplicaciones o servicios no interactivos, debe seleccionar un client grant, o flujo de autenticación. El Client Credentials Flow no requiere interacción humana y es el más adecuado para aplicaciones M2M.
Antes de comenzar
En Auth0 Dashboard o Management API, deberá hacer lo siguiente:
- Configurar su aplicación para usar el flujo de credenciales del cliente
- Actualizar los alcances de sus tokens de acceso M2M
- Revise el Client Credentials Flow para la autenticación de máquina a máquina. Este es el flujo de trabajo para la autenticación y autorización no interactivas.
- Determine el nivel de acceso de sus API. Esto ayuda a determinar qué alcances, o permisos, configurará cuando cree su API.
Configurar el flujo de credenciales del cliente
Tokens de acceso M2M
client_id y client_secret en una llamada al endpoint de token de Authentication API para obtener un token de acceso. Este token de acceso permite acceder a su API protegida.
El perfil, o formato, predeterminado es el perfil de token de Auth0, asociado a dos perfiles de token. Puede optar por cambiar el perfil de token a RFC 9068. Para obtener más información, consulte Perfiles de token de acceso. Para verificar que el token sea válido, su API comprobará los algoritmos de firma. El predeterminado es RSA256, un algoritmo basado en claves.
Auth0 admite otros métodos de autenticación de cliente además de proporcionar ID de cliente y Secreto del cliente como credenciales. Estos métodos, incluida nuestra recomendación de Private Key JWT para configuraciones M2M, están disponibles con un plan Enterprise. Para obtener más información, consulte Credenciales de aplicación.
Ejemplo
/oauth/token debe ser similar al ejemplo siguiente:
La respuesta debe ser similar al ejemplo siguiente:
Expiración del token
Scopes
Para agregar claims personalizadas a un token de acceso, puedes usar el flujo de Machine-to-Machine de Actions. Para obtener más información, consulta Machine to Machine Flow.
Marca
Dominios personalizados
/authorize para solicitar tokens de acceso.
Onboarding de M2M: dominios personalizados
En Auth0 Dashboard, debes:
- Registrar y verificar tu dominio antes de poder usarlo con tus servicios de Auth0.
- Decidir si quieres administrar tu propio certificado o usar un certificado administrado por Auth0. Para obtener más información sobre los certificados, consulta Opciones de administración de certificados.
- Verificar que la versión de TLS (SSL) y la suite de cifrado que quieres usar para certificados autogestionados sean compatibles con Auth0. Para obtener más información, consulta Versiones y suites de cifrado de TLS (SSL).
-
Para configurar tu dominio personalizado con certificados administrados por Auth0, sigue las instrucciones de Configurar dominios personalizados con certificados administrados por Auth0.
-
Si quieres administrar tus propios certificados, sigue las instrucciones de Configurar dominios personalizados con certificados autogestionados.
Debes tener una suscripción Enterprise para administrar certificados en tu dominio personalizado. Para obtener más información, consulta Precios de Auth0 y Inicio de sesión.
-
Si quieres administrar tus propios certificados, sigue las instrucciones de Configurar dominios personalizados con certificados autogestionados.
- Revisa Configuración de la API con dominios personalizados. Es posible que debas ajustar la configuración de tu API para incorporar un dominio personalizado.
Automatización de la implementación
Práctica recomendada
Independientemente de cómo configure la automatización de la implementación, le recomendamos que ejecute pruebas unitarias en su código personalizado y en sus Actions antes de la implementación, y también algunas pruebas de integración en su inquilino después de la implementación.
Herramienta Deploy CLI
Actions Real-time Logs
console.log y otras excepciones. Si utiliza Auth0 Actions u otra lógica personalizada, puede usar esta extensión para depurar y solucionar problemas. Para obtener más información sobre la instalación y la configuración, consulte Actions Real-time Logs.
Garantía de calidad
- ¿Cómo responderán tus API cuando se las someta a cargas de producción inesperadas?
- ¿Cómo se verán afectados tus límites de tasa por las aplicaciones de terceros?
Pruebas unitarias
Pruebas Mock
Implementación
