Saltar al contenido principal
Si su caso de uso atiende a una no interactiva, como las API o los servidores backend, la incorporación se realizará con una configuración de máquina a máquina (M2M).

Casos de uso

Use el flujo de incorporación M2M si:
  • 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

Esta guía le sirve de referencia para crear su implementación M2M en Auth0. Incluye consideraciones, prácticas recomendadas y conceptos que debería revisar.
  • 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

Antes de configurar su cuenta y el inquilino de Auth0, o los grupos y estructuras de sus servicios de Auth0, cree un mapa de su infraestructura existente para poder aprovechar al máximo las capacidades de Auth0 en su ecosistema actual. Como se menciona en los escenarios comunes, es posible que tenga otras tecnologías no interactivas en el dominio de su aplicación, el dominio de red o el dominio de dispositivos M2M que deba considerar antes de configurar Auth0. Para consultar un ejemplo de escenario M2M, lea Server + API. Para realizar un laboratorio práctico con Node y probar la implementación de API, visite nuestro repositorio de GitHub. También puede resultarle útil crear una visualización de su stack tecnológico actual, así como planificar cómo encaja Auth0 en su ciclo de vida actual de desarrollo de software (SDLC). Esto puede ayudarle a determinar cuántos inquilinos podría necesitar.

Consideraciones

Antes de crear una cuenta nueva o configurar tu primer inquilino, quizá quieras tener en cuenta lo siguiente:
  • 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.

Crear una cuenta

Ahora que ya tiene un plan para su arquitectura, configurará su cuenta y sus inquilinos de Auth0. Cuando se registre en los servicios de Auth0, creará su primer inquilino. Aquí es donde configurará los recursos, servicios y demás elementos de Auth0. Regístrese para comenzar.

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
Quizás le convenga planificar algunos detalles de configuración antes de crear una cuenta.
  • 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

Ahora que ya tiene un plan para su arquitectura, configurará su cuenta de Auth0 y su .
Una vez que cree una API en Auth0 Dashboard, se generará automáticamente una aplicación de prueba para la API. Si crea una API mediante programación con Management API, es posible que deba crear una aplicación de prueba en una llamada aparte.

Registrar una API

En esta sección, cree su API en Auth0.
Siempre puede actualizar su API en Auth0 Dashboard o mediante el endpoint de Management API Update a resource server.
Empiece creando una instancia en Auth0 Dashboard para sus API.
  1. Siga las instrucciones para registrar su API.
En la sección Authentication, configure los ajustes de su API para la autenticación M2M.

Asociar una aplicación

Debe crear una asociación entre su aplicación y su API para que su aplicación pueda solicitar tokens de acceso a esta. Obtendrá más información sobre los client grants en la sección de Authentication.
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.
Si crea su API en el Dashboard, Auth0 genera automáticamente una aplicación de prueba y la asocia con su API.
  1. Vaya a Auth0 Dashboard > Applications.
  2. 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.
  3. Cambie a la vista API y, a continuación, busque la API que desea habilitar para esta aplicación.
  4. Active el conmutador Authorize y, a continuación, seleccione el botón de flecha de la derecha para expandir la tarjeta.
  5. Seleccione Update.
    Dashboard > Applications > APIs
    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

Al llamar a una API desde otra API, o en cualquier situación en la que no haya un contexto de usuario autenticado, necesita una forma de autorizar a la aplicación en lugar de a un usuario. Este es un proceso de un solo paso en el que la aplicación se autentica (mediante un 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
Antes de configurar su método de autenticación:
  • 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

Puede usar Auth0 Dashboard o para configurar el flujo de autenticación de modo que proporcione credenciales de cliente a cambio de un token de acceso. Siga las instrucciones de Actualizar los tipos de concesión para usar Auth0 Dashboard o Management API.

Tokens de acceso M2M

En la autenticación basada en tokens, los clientes no interactivos proporcionan 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

Una solicitud al endpoint /oauth/token debe ser similar al ejemplo siguiente: La respuesta debe ser similar al ejemplo siguiente:
HTTP/1.1 200 OK
Content-Type: application/json
{
  "access_token":"eyJz93a...k4laUWw",
  "token_type":"Bearer",
  "expires_in":86400
}

Expiración del token

Tus tokens de acceso tienen un límite de validez. Dado que tus comunicaciones se realizan por el canal de servidor a servidor, no puedes usar para extender las sesiones, por lo que deberías considerar configurar tus tokens de acceso con un tiempo de expiración de 1 hora. Puede que necesites encontrar un equilibrio entre seguridad y rendimiento para tu entorno específico. Para obtener más información, consulta Update Access Token Lifetime.

Scopes

Antes de que cualquier cliente o servicio no interactivo llame a tu API, debes definir los permisos o Scopes que permite tu API. Puedes configurar los alcances en Auth0 Dashboard para incluirlos en tu solicitud de autenticación a la Authentication API. Para ver más ejemplos de cómo usar los alcances de API, consulta Alcances de API. Para configurar alcances, sigue las instrucciones de Agregar permisos de API en Auth0 Dashboard o usa el ejemplo proporcionado para Management API.
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

Incluso si atiende a clientes o servicios no interactivos que funcionan en el canal secundario, aún puede personalizar la experiencia para que se ajuste a la imagen de su marca existente.

Dominios personalizados

Auth0 admite el uso de dominios personalizados cuando llamas al endpoint /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).
  1. Para configurar tu dominio personalizado con certificados administrados por Auth0, sigue las instrucciones de Configurar dominios personalizados con certificados administrados por Auth0.
    1. 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.
  2. 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.
Si tienes problemas con tu dominio personalizado, consulta Solucionar problemas de dominios personalizados.

Automatización de la implementación

Auth0 ofrece varias opciones para la automatización de la implementación, y puede usar cada una de ellas en conjunto con las demás.

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

Como se recomienda en la sección Arquitectura, debe contar con inquilinos de Auth0 para desarrollo, pruebas y producción. Estos inquilinos deben compartir configuraciones idénticas para los controles de calidad y las pruebas; sin embargo, puede encontrarse con errores como resultado de discrepancias de configuración entre sus entornos. Por ejemplo, cada entorno tendrá diferentes y . Para mitigar estos errores por discrepancias, puede usar la herramienta Deploy CLI para integrar su instancia de Auth0 con su pipeline de CI/CD existente.  Con el reemplazo dinámico de palabras clave, puede reemplazar variables de entorno en inquilinos que comparten configuraciones similares. Para obtener más información, consulte Deploy CLI Tool y Keyword Replacement.

Actions Real-time Logs

Actions Real-time Logs muestra todos los registros del código personalizado en tiempo real, incluida la salida de 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

La garantía de calidad es importante para identificar problemas antes de pasar a producción. Según la naturaleza de tu proyecto, hay varios tipos de pruebas de garantía de calidad que conviene considerar como parte de tu integración con Auth0:
  • ¿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?
Si no utilizas widgets o funciones de Auth0, como , no contarás de forma predeterminada con prácticas recomendadas integradas de usabilidad y accesibilidad para una amplia variedad de navegadores y dispositivos. Para garantizar que se cumplan los requisitos funcionales y que los eventos inesperados se gestionen correctamente, se ofrece orientación para probar la integración entre tus aplicaciones y Auth0, y para realizar pruebas unitarias de módulos de extensibilidad individuales, como Auth0 Actions. También te recomendamos revisar la política de pruebas de penetración de Auth0 y realizar pruebas Mock que puedas aprovechar junto con nuestra política de pruebas de carga para ayudar a garantizar que tus aplicaciones funcionen correctamente ante cargas inesperadas.

Pruebas unitarias

Las pruebas unitarias consisten en verificar unidades de extensibilidad, como Auth0 Actions. Si utiliza código personalizado, le recomendamos usar un framework de pruebas (como Mocha) para probar ese código adicional antes de la implementación.

Pruebas Mock

Para equilibrar la política de pruebas de carga de Auth0 con la necesidad de realizar pruebas de carga, es habitual crear una prueba Mock de los endpoints de Auth0. Esta práctica es valiosa para garantizar que su configuración funcione con las interfaces previstas sin tener que limitar sus pruebas, y puede apoyarse en herramientas como MockServer, JSON Server o incluso Postman.

Implementación

Nuestra sección Implementar y supervisar ofrece orientación sobre las prácticas recomendadas de implementación. Le recomendamos revisar las Comprobaciones previas a la implementación, especialmente las Comprobaciones de preparación de Auth0 Dashboard integradas. Para revisar la comprobación de preparación, seleccione el menú desplegable situado debajo del nombre de su inquilino y la etiqueta del entorno en Auth0 Dashboard > Ejecutar comprobaciones de preparación.
Auth0 Dashboard > Lista de verificación de preparación
Puede usar el filtro para aplicar las comprobaciones de preparación a las aplicaciones seleccionadas. Estas comprobaciones no se aplican a las API que haya configurado. Para las comprobaciones que no se apliquen a su configuración específica, puede seleccionar Descartar para quitarlas de los resultados finales. Le recomendamos revisar las Prácticas recomendadas de implementación para realizar las comprobaciones finales antes de entrar en producción y aprovechar los Registros para supervisar sus servicios.

Más información