Usa IA para integrar Auth0
Usa IA para integrar Auth0
Si usas un asistente de programación con IA, como Claude Code, Cursor o GitHub Copilot, puedes añadir la autenticación de Auth0 automáticamente en cuestión de minutos mediante agent skills.Instala:Luego, pídele a tu asistente de IA:Tu asistente de IA creará automáticamente tu aplicación en Auth0, obtendrá las credenciales, instalará el SDK Auth0 OidcClient, configurará opciones específicas de cada plataforma e implementará los flujos de inicio y cierre de sesión. Documentación completa de agent skills →
Primeros pasos
Crear un proyecto nuevo de .NET
Cree un nuevo proyecto de .NET MAUI o de .NET Android/iOS para esta guía de inicio rápido.
- .NET MAUI
- .NET Android
- .NET iOS
En Visual Studio 2022 o una versión posterior:
- Archivo → Nuevo → Proyecto
- Seleccione la plantilla .NET MAUI App
- Configure el proyecto:
- Nombre del proyecto:
Auth0MauiSample - Ubicación: Elija la ubicación que prefiera
- Framework: .NET 8.0 o una versión posterior
- Nombre del proyecto:
- Haga clic en Crear
Esta guía de inicio rápido se centra en .NET Android y .NET iOS, que son la nueva generación de Xamarin.Android y Xamarin.iOS. Si aún usa Xamarin, puede seguir esta guía, ya que la integración es idéntica y los SDK son compatibles.
Instalar el SDK de Auth0
Agrega el SDK de cliente OIDC de Auth0 a tu proyecto.
- Consola del Administrador de paquetes
- Visual Studio para Mac
- .NET CLI
Abre la Consola del Administrador de paquetes (Ver → Otras ventanas → Consola del Administrador de paquetes) e instala el paquete adecuado:Para .NET Android:Para .NET iOS:Para .NET MAUI (ambas plataformas):
Package Manager Console
Package Manager Console
Package Manager Console
Configura tu aplicación de Auth0
Crea una nueva aplicación en tu inquilino de Auth0 y configúrala para dispositivos móviles.Reemplaza:Allowed Logout URLs:Usa las mismas URL que para las callback URLs.
- Ve al Auth0 Dashboard
- Haz clic en Applications → Applications → Create Application
- Introduce un nombre para tu aplicación, selecciona Native como tipo de aplicación y haz clic en Create
- Ve a la pestaña Settings en la página de detalles de la aplicación
- Toma nota de tu Domain y tu Client ID; los necesitarás en el siguiente paso
- Android
- iOS
YOUR_ANDROID_PACKAGE_NAMEpor el nombre del paquete de tu aplicación (por ejemplo,com.mycompany.myapp){yourDomain}por tu dominio de Auth0 (por ejemplo,dev-abc123.us.auth0.com)
com.mycompany.myapp://dev-abc123.us.auth0.com/android/com.mycompany.myapp/callbackAllowed Callback URLs son esenciales para la seguridad: garantizan que los usuarios vuelvan de forma segura a tu aplicación después de autenticarse. Sin una URL coincidente, el proceso de inicio de sesión fallará.Allowed Logout URLs ofrecen una experiencia fluida cuando los usuarios cierran sesión, ya que los redirigen de vuelta a tu aplicación en lugar de dejarlos en una página de Auth0.
Inicializar el cliente de Auth0
Cree una instancia de
Auth0Client para comunicarse con Auth0.- Android - MainActivity
- iOS - AppDelegate
MainActivity.cs
IntentFilter registra la aplicación para manejar la URL de callback. LaunchMode.SingleTask garantiza que Android no cree una nueva instancia de la actividad cuando se invoque el callback.Implementar el inicio y cierre de sesión
Agrega métodos para gestionar la autenticación del usuario.Implementa el inicio de sesión:Implementa el cierre de sesión:
Authentication.cs
Authentication.cs
El método
LoginAsync() abre el navegador del sistema (o Chrome Custom Tabs en Android) para mostrar la página de Universal Login de Auth0. Después de la autenticación, el usuario vuelve a tu aplicación mediante la URL de devolución de llamada.Ejecuta tu aplicación
Compila y ejecuta la aplicación.Flujo esperado:
- Visual Studio (Windows)
- Visual Studio for Mac
- .NET CLI
Para Android:
- Selecciona un emulador de Android o un dispositivo conectado en el menú desplegable de dispositivos
- Presiona F5 o haz clic en el botón Run
- La aplicación se compilará, se implementará y se iniciará
- Conéctate a tu host de compilación en Mac
- Selecciona un simulador o dispositivo iOS en el menú desplegable de dispositivos
- Presiona F5 o haz clic en el botón Run
- La aplicación se abre con el botón Log In
- Toca Log In → Se abre el navegador/Chrome Custom Tab → Completa la autenticación
- Se redirige automáticamente a tu aplicación
- El usuario se autentica correctamente
Punto de controlAhora tiene una experiencia de inicio de sesión con Auth0 completamente funcional en su aplicación .NET para Android o iOS. La aplicación usa el navegador del sistema para una autenticación segura y gestiona automáticamente el flujo de devolución de llamada.
Acceder a la información del usuario
Resultado de la autenticación
LoginAsync() devuelve un objeto LoginResult que contiene:
UserInfo.cs
Recorrer todos los claims
UserClaims.cs
Los claims exactos que se devuelven dependen de los alcances solicitados. Para obtener más información, consulta Uso de los alcances en la documentación de Auth0 OIDC Client.
Solicitar alcances personalizados
CustomScopes.cs
Solución de problemas y aspectos avanzados
Problemas comunes y soluciones
Problemas comunes y soluciones
El navegador no redirige a la aplicación
Soluciones:- Verifica que las URL de callback en Auth0 Dashboard coincidan exactamente con el nombre del paquete o el identificador del bundle de tu aplicación
- Asegúrate de que las URL de callback estén en minúsculas
- Comprueba que
DataScheme,DataHostyDataPathPrefix(Android), o el esquema de URL (iOS), coincidan con tu configuración - Limpia y vuelve a compilar tu proyecto
La autenticación falla con el error “Invalid Callback URL”
Solución:- Comprueba de nuevo que tu URL de callback en Auth0 Dashboard coincida con este formato:
- Android:
packagename://yourdomain/android/packagename/callback - iOS:
bundleidentifier://yourdomain/ios/bundleidentifier/callback
- Android:
- Asegúrate de que la URL esté en minúsculas
- Verifica que el dominio en tu código coincida con el dominio en Auth0 Dashboard
LoginAsync() se bloquea o nunca termina
Soluciones:- Asegúrate de que el filtro de Intent (Android) o el esquema de URL (iOS) estén configurados correctamente
- Comprueba que
OnNewIntent()(Android) oOpenUrl()(iOS) llamen aActivityMediator - Verifica que tu aplicación pueda abrir el navegador del sistema
- Comprueba la conectividad de red
Error: “Default App must use Token Endpoint Authentication Method ‘None’”
Solución:- Ve a la configuración de tu aplicación en Auth0 Dashboard
- Desplázate hasta Application Properties
- Establece Application Type como Native
- Establece Token Endpoint Authentication Method como None
- Haz clic en Save Changes
iOS: el navegador no se abre
Soluciones:- Verifica que
Info.plistcontenga la configuración correcta del esquema de URL - Comprueba que
OpenUrl()esté implementado enAppDelegate - Asegúrate de que el destino de implementación de iOS sea compatible con tu versión del SDK de Auth0
Consideraciones para producción
Consideraciones para producción
Prácticas recomendadas de seguridad
- Almacenamiento seguro de tokens: Usa el almacenamiento seguro específico de la plataforma (Android Keystore, iOS Keychain) para guardar tokens
- Actualización de tokens: Implementa el manejo del Token de actualización para mantener las sesiones de usuario
- Certificate Pinning: Considera el anclaje de certificados para reforzar la seguridad de la API
- ProGuard/Code Obfuscation: Agrega las reglas adecuadas si usas ofuscación de código en Android
Requisitos de App Store
- Política de privacidad: Asegúrate de que tu aplicación tenga una política de privacidad que describa el uso de Auth0
- Manejo de datos de usuario: Sigue las directrices de la plataforma para manejar los datos de autenticación del usuario
- Deep Linking: Prueba exhaustivamente el manejo de las URL de callback en distintos escenarios
- Requisitos de red: Maneja correctamente los escenarios sin conexión
Optimización del rendimiento
- Almacena Auth0Client en caché: Crea una única instancia y reutilízala en toda tu aplicación
- Carga diferida: Inicializa Auth0Client solo cuando sea necesario
- Actualización en segundo plano: Implementa la actualización de tokens en segundo plano para sesiones de larga duración
Configuración avanzada
Configuración avanzada
Alcances personalizados y audiencia
Solicita alcances específicos y establece una audiencia para tu API:AdvancedAuth.cs
Parámetros adicionales
Pasa parámetros adicionales en la solicitud de autorización:ExtraParams.cs
Tokens de actualización
Usa tokens de actualización para obtener nuevos tokens de acceso sin que el usuario tenga que interactuar:RefreshToken.cs
Para recibir un token de actualización, incluye el scope
offline_access en tu solicitud de autenticación.Configuración del navegador específica para cada plataforma
Android - Usa Chrome Custom Tabs con colores personalizados:AndroidBrowser.cs
iOSBrowser.cs
Próximos pasos
Configurar proveedores de identidad
Agregue proveedores de inicio de sesión social como Google, Facebook y GitHub
Habilitar la autenticación multifactor
Agregue una capa adicional de seguridad con MFA
Protección contra ataques
Aprenda a protegerse de ataques de fuerza bruta y bots
Personalizar la experiencia de inicio de sesión
Personalice la página de Universal Login para que refleje su marca