feat: plantilla base workspace SaaS
This commit is contained in:
218
docs/VERIFICAR_MICROSOFT_CONFIG.md
Normal file
218
docs/VERIFICAR_MICROSOFT_CONFIG.md
Normal file
@@ -0,0 +1,218 @@
|
||||
# ✅ 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:
|
||||
|
||||
1. Ve a [Azure Portal](https://portal.azure.com)
|
||||
2. Busca **Azure Active Directory** o **Microsoft Entra ID**
|
||||
3. **App registrations** → **New registration**
|
||||
4. 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`
|
||||
- Click **Register**
|
||||
5. **Copia el Application (client) ID** - lo necesitarás
|
||||
6. 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)
|
||||
|
||||
### 2.2 Agregar Microsoft a Keycloak
|
||||
|
||||
1. En Keycloak Admin Console: http://localhost:8080
|
||||
2. Login: `admin` / `admin`
|
||||
3. Menú lateral: **Identity providers**
|
||||
4. Dropdown: **Add provider** → Selecciona **Microsoft**
|
||||
5. 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]
|
||||
```
|
||||
|
||||
6. Click **Save**
|
||||
7. 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
|
||||
|
||||
1. Asegúrate de que el frontend esté corriendo: `http://localhost:5173`
|
||||
2. Ve a la página de login: `http://localhost:5173/login`
|
||||
3. Ingresa un tenant (ej: `aduanasoft`)
|
||||
4. 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 `/endpoint` al final
|
||||
|
||||
### Error: Unexpected error when authenticating with identity provider
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```bash
|
||||
# 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 Keycloak
|
||||
- `500` = ⚠️ Hay un error de configuración
|
||||
|
||||
---
|
||||
|
||||
## Resumen Rápido
|
||||
|
||||
**Para que funcione necesitas:**
|
||||
|
||||
1. ✅ App Registration en Azure AD con Client ID y Secret
|
||||
2. ✅ Identity Provider "microsoft" configurado en Keycloak
|
||||
3. ✅ Redirect URI en Azure: `http://localhost:8080/realms/master/broker/microsoft/endpoint`
|
||||
4. ✅ 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".
|
||||
Reference in New Issue
Block a user