Improve SGU logon resilience and client UX
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
# Operación del SGU Authentication Broker
|
||||
|
||||
## Dónde se ejecuta
|
||||
|
||||
En el laboratorio, el broker se ejecuta en el controlador de dominio Windows
|
||||
Server:
|
||||
|
||||
| Elemento | Valor |
|
||||
|---|---|
|
||||
| Equipo | `WIN-1AIQMMA1EPR.lci.lasalle.mx` |
|
||||
| Servicio | `SGUAuthBroker` / `SGU Authentication Broker` |
|
||||
| Ejecutable | `C:\Program Files\SGU\AuthBroker\SGU.AuthBroker.exe` |
|
||||
| Configuración | `C:\Program Files\SGU\AuthBroker\appsettings.Production.json` |
|
||||
| Endpoint cliente | `https://sgu-auth.lci.lasalle.mx:8443/v1/authenticate` |
|
||||
| Salud | `https://sgu-auth.lci.lasalle.mx:8443/health/live` |
|
||||
| Transporte | HTTPS 1.1 con certificado de cliente obligatorio (mTLS) |
|
||||
|
||||
El Credential Provider no se comunica directamente con Active Directory ni
|
||||
conserva una contraseña. Envía la clave y la contraseña originales al broker;
|
||||
el broker valida SGU, actualiza la cuenta de dominio y devuelve solamente el
|
||||
dominio y el nombre de usuario canónico.
|
||||
|
||||
## Comprobación rápida
|
||||
|
||||
Ejecutar como administrador en Windows Server:
|
||||
|
||||
```powershell
|
||||
Get-CimInstance Win32_Service -Filter "Name='SGUAuthBroker'" |
|
||||
Select-Object Name, State, StartMode, PathName, ProcessId
|
||||
|
||||
Get-NetTCPConnection -LocalPort 8443 -State Listen
|
||||
Get-NetFirewallRule -DisplayName 'SGU Authentication Broker (mTLS)'
|
||||
sc.exe qfailure SGUAuthBroker
|
||||
```
|
||||
|
||||
Desde un cliente que tenga el certificado mTLS:
|
||||
|
||||
```powershell
|
||||
Invoke-WebRequest `
|
||||
-Uri https://sgu-auth.lci.lasalle.mx:8443/health/live `
|
||||
-CertificateThumbprint CLIENT_CERT_THUMBPRINT
|
||||
```
|
||||
|
||||
Una petición sin un certificado cliente válido debe ser rechazada durante TLS.
|
||||
Eso es comportamiento esperado, no una caída del servicio.
|
||||
|
||||
## Timeouts y recuperación
|
||||
|
||||
- El Credential Provider espera hasta **20 segundos** por el broker.
|
||||
- El broker espera hasta **15 segundos** por SGU. Un portal que normalmente
|
||||
tarda alrededor de seis segundos queda dentro del margen sin bloquear LogonUI
|
||||
indefinidamente.
|
||||
- El instalador configura recuperación del servicio con reinicios a los 5, 15
|
||||
y 60 segundos y reinicia el contador de fallos después de 24 horas.
|
||||
- Si el broker o SGU no está disponible, el Credential Provider entrega la
|
||||
contraseña intacta a Windows. AD o el caché de inicio de sesión de Windows aún
|
||||
debe validarla; el fallback no concede acceso por sí mismo.
|
||||
|
||||
Reiniciar o volver a desplegar el servicio produce una interrupción breve en un
|
||||
laboratorio con una sola instancia. Antes de una demostración, comprobar
|
||||
`Running` y el listener 8443.
|
||||
|
||||
## Diagnóstico
|
||||
|
||||
```powershell
|
||||
Get-WinEvent -FilterHashtable @{
|
||||
LogName='Application'
|
||||
StartTime=(Get-Date).AddHours(-1)
|
||||
} | Where-Object ProviderName -eq 'SGU Authentication Broker' |
|
||||
Select-Object TimeCreated, LevelDisplayName, Id, Message
|
||||
|
||||
Get-Content 'C:\Program Files\SGU\AuthBroker\appsettings.Production.json' -Raw |
|
||||
ConvertFrom-Json |
|
||||
Select-Object -ExpandProperty Broker
|
||||
```
|
||||
|
||||
Nunca habilitar registro de cuerpos HTTP: contienen la contraseña durante la
|
||||
solicitud. Los certificados, no las contraseñas, proporcionan la identidad entre
|
||||
el cliente y el broker.
|
||||
Reference in New Issue
Block a user