SSO Ciudadano Multi-dispositivo (HMI)¶
Objetivo¶
Definir una experiencia unica de identidad para ciudadania, colaboradores y equipos internos desde PC, notebook, tablet, smartphone y gadgets, manteniendo trazabilidad de decisiones humanas (HILT) y evidencia auditable.
Decision de arquitectura adoptada¶
Opcion A (broker OIDC self-hosted) como baseline:
- IdP central self-hosted (por ejemplo Keycloak) como broker de identidad.
oauth2-proxycomo puerta de acceso a apps web gobernadas.- Claims por
rol + audiencia + dispositivo + riesgopara enrutar vistas del portal. - HILT obligatorio para riesgos
alto|critico.
Mapa HMI por dispositivo¶
| Codigo | Dispositivo | Flujo recomendado |
|---|---|---|
D1 |
Smartphone personal | OIDC + MFA + directivas moviles compactas |
D2 |
Laptop institucional | OIDC + MFA + evidencias documentales |
D3 |
Workstation tecnica | OIDC + privilegio minimo + hardening |
D4 |
Servidor/cluster local | Bastion + OIDC federado + trazas runtime |
D5 |
Infra cloud | IAM federado + auditoria central |
D6 |
Tablet/aula | MDM + onboarding guiado + perfiles gestionados |
Matriz de gobernanza por rol¶
La fuente canonica vive en:
knowledge/datasets/citizen-role-device-risk-matrix.tsvknowledge/datasets/citizen-device-taxonomy.tsvknowledge/datasets/citizen-evidence-catalog.tsvknowledge/datasets/citizen-hmi-ux-contract.tsvknowledge/datasets/citizen-repo-permission-routing.tsv
Validacion local-first:
python3 scripts/verify/citizen_role_device_risk_guard.py
python3 scripts/verify/citizen_hmi_ux_guard.py
python3 scripts/verify/citizen_repo_permission_routing_guard.py
Contrato UXUI por actor y dispositivo¶
El contrato citizen-hmi-ux-contract.tsv fija, para cada par rol + dispositivo:
- Superficie HMI (
mobile_web,desktop_web,workstation_console,bastion_cli,tablet_classroom). - Modo de navegacion (
guided,taskboard,evidence-first,ops-first,narrative). - Densidad de contenido y perfil de accesibilidad (WCAG/teclado/lector).
- Friccion de autenticacion segun riesgo (
silent-sso,mfa,step-up-mfa). - Estilo de prompt HILT cuando el riesgo es
alto|critico.
Con esto la UX deja de ser subjetiva y pasa a controlarse por GitOps con guardrails reproducibles.
Routing por permisos de repositorio (misma URL)¶
El portal enruta desde la misma URL segun claim permission:
| Permission | Destino por defecto |
|---|---|
read |
portal/institutional-onboarding/ |
write |
portal/github-collaboration-hub/ |
maintainer |
portal/tech-people-context-steward-quickstart/ |
admin |
portal/human-decision-protocol/ (o VDI personal si viene claim) |
owner |
VDI personal (atq_vdi_url o fallback /vdi/<usuario>/) |
Resultado: una entrada unica con experiencia adaptativa a permiso + rol + dispositivo + riesgo.
Integracion con onboarding¶
El wizard de onboarding recoge ahora:
- Rol ciudadano inicial.
- Dispositivo primario (D1..D6).
- Preferencia de SSO ciudadano.
Esto permite personalizar ruta, narrativa y controles desde el primer dia.
Guardrails¶
- Sin
evidence_codesno hay cierre de decision. - Riesgo
alto|criticoexige HILT explicito. - El router de experiencia no concede privilegios por defecto.
- Todo cambio de rol/dispositivo debe quedar trazado en issue/PR.
Framework CLI propietario (operacion human-first)¶
El entrypoint canónico para traducir contrato SSO a operación CLI entendible por cualquier perfil humano es:
scripts/proxmox/device_sso_cli_framework.sh (ATQ-CLI-SSO-DEVICE-V1)
Capacidades:
- Narrativa por audiencia (
ops|exec|legal|onboarding). - Modo lenguaje
colloquial|technical. - Contexto profesional explícito:
public-admin,education-center,vocational-student. - Mindmap ASCII de capas/saltos y coaching Linux para gestión de procesos.
- Gestión OEM + overlays por perfil con
HOSTPROXMOXcomo gateway HMI de endpoint (PC/Laptop/SmartPhone/Tablet). - Registro de nodos mesh para computación comunitaria descentralizada (
mesh).
Ejemplo rápido:
bash scripts/proxmox/device_sso_cli_framework.sh describe \
--audience onboarding \
--professional-context public-admin \
--language colloquial
Overlay mínimo por perfil (incluye perfil infantil protegido):
bash scripts/proxmox/device_sso_cli_framework.sh overlay \
--audience onboarding \
--professional-context education-center \
--profile overlay-child-safe-critical-thinking \
--write-overlay
Registro de nodo mesh (computación comunitaria):