5.3 KiB
✅ Verificar Configuración de Microsoft en Keycloak
Paso 1: Verificar si Microsoft está configurado
Abre tu navegador y ve a:
http://localhost:8080/admin/master/console/#/master/identity-providers
Login: admin / admin
¿Qué deberías ver?
Si Microsoft está configurado, verás en la lista de Identity Providers:
- ✅ microsoft (o el alias que hayas usado)
- Con estado: Enabled ✅
Si NO ves "microsoft" en la lista:
¡Necesitas configurarlo! Sigue estos pasos:
Paso 2: Configurar Microsoft en Keycloak (SI NO ESTÁ CONFIGURADO)
2.1 Crear App en Azure AD PRIMERO
Antes de configurar Keycloak, necesitas una aplicación en Azure:
-
Ve a Azure Portal
-
Busca Azure Active Directory o Microsoft Entra ID
-
App registrations → New registration
-
Configura:
- Name:
Anexo76 - Supported account types:
Accounts in any organizational directory (Any Azure AD - Multitenant) - Redirect URI:
- Platform:
Web - URI:
http://localhost:8080/realms/master/broker/microsoft/endpoint
- Platform:
- Click Register
- Name:
-
Copia el Application (client) ID - lo necesitarás
-
Ve a Certificates & secrets → New client secret
- Descripción:
keycloak - Expira: 24 meses
- Click Add
- ¡COPIA EL SECRET VALUE AHORA! (solo se muestra una vez)
- Descripción:
2.2 Agregar Microsoft a Keycloak
- En Keycloak Admin Console: http://localhost:8080
- Login:
admin/admin - Menú lateral: Identity providers
- Dropdown: Add provider → Selecciona Microsoft
- Configura:
Alias: microsoft
Display name: Microsoft
Enabled: ON ✅
Store tokens: ON ✅
Trust email: ON ✅
First login flow: first broker login
Client ID: [PEGA TU APPLICATION ID DE AZURE]
Client Secret: [PEGA TU SECRET DE AZURE]
- Click Save
- Ve a la pestaña Mappers y agrega estos 4 mappers:
Mapper 1: email
Name: email
Mapper type: Attribute Importer
Social profile JSON field path: email
User attribute name: email
Mapper 2: firstName
Name: firstName
Mapper type: Attribute Importer
Social profile JSON field path: given_name
User attribute name: firstName
Mapper 3: lastName
Name: lastName
Mapper type: Attribute Importer
Social profile JSON field path: family_name
User attribute name: lastName
Mapper 4: username
Name: username
Mapper type: Username Template Importer
Template: ${CLAIM.email}
Target: BROKER_USERNAME
Paso 4: Verificar en tu App
- Asegúrate de que el frontend esté corriendo:
http://localhost:5173 - Ve a la página de login:
http://localhost:5173/login - Ingresa un tenant (ej:
aduanasoft) - Click en el botón "Iniciar sesión con Microsoft"
¿Qué debería pasar?
✅ Correcto:
- Te redirige a Microsoft login
- Ves la página de Microsoft pidiendo tu email/contraseña
- Después de autenticarte, vuelves a tu app
❌ Incorrecto (lo que te está pasando ahora):
- Te lleva a la página de login de Keycloak
- Ves el usuario "admin" ya logueado
Troubleshooting Común
Error: "Identity provider not found"
- El alias en Keycloak debe ser exactamente
microsoft(minúsculas) - O cambia el código:
loginWithProvider('TU_ALIAS_EXACTO')
Error: redirect_uri_mismatch en Azure
- La URI en Azure debe ser EXACTAMENTE:
http://localhost:8080/realms/master/broker/microsoft/endpoint - Nota el
/endpointal final
Error: Unexpected error when authenticating with identity provider
docker cp azure.crt anexo76-keycloak:/
docker exec -it -u root anexo76-keycloak /bin/bash
keytool -importcert -trustcacerts -file /azure.crt \
-keystore /etc/java/java-21-openjdk/java-21-openjdk-21.0.8.0.9-1.el9.x86_64/lib/security/cacerts \
-alias azure-root -storepass changeit -noprompt
Me redirige pero muestra error en Microsoft
- Verifica que el Client ID y Secret en Keycloak sean correctos
- Verifica que la app en Azure esté habilitada
Funciona pero el usuario no tiene tenant_id
- Esto es normal en el primer login
- Puedes configurar un mapper adicional o manejarlo en tu backend
Comando Rápido de Verificación
Ejecuta esto en una terminal:
# Verificar si el endpoint del broker existe
curl -s -o /dev/null -w "%{http_code}" "http://localhost:8080/realms/master/broker/microsoft/login?client_id=test&redirect_uri=http://localhost"
Resultados:
302= ✅ Microsoft está configurado (redirige a Microsoft)404= ❌ Microsoft NO está configurado en Keycloak500= ⚠️ Hay un error de configuración
Resumen Rápido
Para que funcione necesitas:
- ✅ App Registration en Azure AD con Client ID y Secret
- ✅ Identity Provider "microsoft" configurado en Keycloak
- ✅ Redirect URI en Azure:
http://localhost:8080/realms/master/broker/microsoft/endpoint - ✅ Variables de entorno en frontend (.env):
VITE_KEYCLOAK_URL=http://localhost:8080 VITE_KEYCLOAK_REALM=master VITE_KEYCLOAK_CLIENT_ID=anexo76-frontend
El flujo correcto es:
Tu App → Keycloak Broker → Microsoft Login → Keycloak → Tu App
Lo que está pasando ahora:
Tu App → Keycloak Login (porque no encuentra el provider)
¿Necesitas ayuda con la configuración? Primero verifica en Keycloak Admin Console si existe el Identity Provider "microsoft".