Skip to main content
Al usar varios dominios personalizados, debe configurar sus SDK de Auth0 para usar el dominio personalizado adecuado para la autenticación. Esta guía abarca la configuración de los SDK para distintas plataformas y escenarios.

Conceptos clave

Parámetro de dominio

Todos los SDK de Auth0 requieren un parámetro domain que especifica qué dominio de Auth0 se usará para la autenticación. Si usa dominios personalizados, establezca este parámetro en su dominio personalizado en lugar del dominio canónico de Auth0. Sin dominio personalizado:
Con un dominio personalizado:

Emisor del token

Al usar un dominio personalizado, los tokens tendrán la reclamación iss (emisor) configurada con su dominio personalizado:
Debe configurar la validación de su token para aceptar su dominio personalizado como emisor válido.

SDK de autenticación

Al usar MCD, el cliente es responsable de proporcionar y validar todos los dominios personalizados. Al configurar los SDK para resolver los dominios personalizados del Tenant mediante las funciones de resolución de dominios, usted es responsable de garantizar que todos los dominios resueltos sean de confianza. Una configuración incorrecta del resolvedor de dominios puede permitir la omisión de la autenticación en la relying party o exponer la aplicación a falsificación de solicitudes del lado del servidor. No configurar correctamente sus dominios y servidores proxy puede generar vulnerabilidades críticas de seguridad por las que Okta no asume ninguna responsabilidad.

SDK SPA de Auth0 (JavaScript)

Para aplicaciones de página única que usan el SDK SPA de Auth0:

Next.js

Para aplicaciones de Next.js que usan el SDK de Auth0 para Next.js (v4+): Conceptos clave de MCD con Next.js:
  • Un solo Tenant de Auth0, varios dominios: Todos los dominios personalizados comparten el mismo clientId y clientSecret, ya que pertenecen al mismo Tenant de Auth0.
  • Función DomainResolver: El parámetro domain acepta una función (config: { headers: Headers; url?: URL }) => Promise<string> | string. Esto permite resolver el dominio dinámicamente para cada solicitud en función de los encabezados de la solicitud entrante.
  • Almacenamiento en caché de instancias: El SDK almacena automáticamente en caché las instancias de Auth0Client por dominio mediante una caché LRU acotada (máximo 100 entradas) para mejorar el rendimiento.
  • Aislamiento de sesiones: Las sesiones creadas a través de un dominio personalizado quedan aisladas en ese dominio y no pueden usarse indistintamente con sesiones de otro dominio.
  • Parámetro URL: El parámetro url del resolvedor es undefined en Server Components y Server Actions; solo está disponible en middleware o rutas de API.
  • Ajuste de la caché de descubrimiento: Configura el almacenamiento en caché de los metadatos de OIDC con la opción discoveryCache:

SDK de React de Auth0

Para aplicaciones React que usan el SDK de React de Auth0:
Para escenarios con varios dominios:

Auth0.js

Para las aplicaciones que usan Auth0.js:

Node.js (Express)

Para aplicaciones Node.js que usan express-openid-connect:
Para escenarios multiinquilino:

SDK para móviles

iOS (Swift)

Con Auth0.swift:
Para seleccionar el dominio dinámicamente:

Android (Kotlin)

Uso de Auth0.Android:
Para admitir varios dominios:

React Native

Con react-native-auth0:

Flutter

Con flutter_auth0:

SDK de administración

Los SDK de administración se utilizan para interactuar con la Management API de Auth0. Al usar dominios personalizados, es posible que deba incluir el encabezado auth0-custom-domain o usar el dominio predeterminado.

SDK de administración de Node.js

SDK de administración para Python

SDK de administración para Go

Validación de tokens

Si usa dominios personalizados, actualice la validación de tokens para aceptar el dominio personalizado como emisor.

Node.js (Express)

Con express-jwt o jose:
Para varios dominios personalizados:

Python (Flask)

Con python-jose:

Java (Spring Boot)

Uso de Spring Security:

Configuración específica del entorno

Use variables de entorno para administrar dominios personalizados entre entornos:

Estructura del archivo .env

Carga de la configuración

Solución de problemas

Problemas comunes

ProblemaCausaSolución
Error de emisor no válidoLa validación del token espera el dominio canónico, pero recibe un dominio personalizadoActualiza la validación del token para que acepte el dominio personalizado como emisor
Error al obtener el JWKSEl URI del JWKS apunta al dominio canónicoActualiza el URI del JWKS para usar el dominio personalizado: https://custom-domain/.well-known/jwks.json
Incompatibilidad del URI de redirecciónLa URL de callback no coincide con los URI de redirección configuradosAgrega la URL de callback del dominio personalizado a la configuración de la aplicación
Errores de origen cruzado (CORS)El dominio personalizado no está entre los orígenes permitidosAgrega el dominio personalizado a Allowed Web Origins en la configuración de la aplicación
Lock no se cargaFalta configurationBaseUrlAgrega el parámetro configurationBaseUrl con la URL regional del CDN

Prácticas recomendadas

  1. Usa variables de entorno: Almacena los dominios personalizados en archivos de configuración específicos de cada entorno
  2. Valida varios emisores: Si usas varios dominios personalizados, configura la validación de tokens para aceptar todos como emisores válidos
  3. Actualiza las URL de callback: Asegúrate de agregar todos los dominios personalizados a Allowed Callback URLs en la configuración de la aplicación
  4. Haz pruebas exhaustivas: Prueba la autenticación con cada dominio personalizado antes de pasar a producción
  5. Supervisa los emisores de tokens: Registra y supervisa el claim iss en los tokens para garantizar que se use el dominio personalizado correcto
  6. Documenta las asignaciones de dominios: Mantén una documentación clara sobre qué aplicaciones usan qué dominios personalizados
  7. Gestiona los fallos correctamente: Implementa un manejo adecuado de errores para los fallos de autenticación
  8. Almacena en caché JWKS: Almacena en caché los datos de JWKS para mejorar el rendimiento y reducir las solicitudes

Más información