Ir al contenido

Módulo VI — identidad, permisos y gobernanza

El módulo VI es el plano de gobernanza sobre el modelo de autorización existente del motorno reimplementa el enforcer ni los connectors de identidad, los consume. Vincula cinco subsistemas tras un único contexto acotado (la identidad y su gobernanza): un reconciliador del roster de directorio, el puente agente↔identidad que hace firme la atribución, un motor ABAC solo-deny, el gate de aprobación human-in-the-loop y los backends de autoría de política/identidad. Esta es la raíz de toda acción gobernada del producto.

El módulo se sitúa en la capa de gestión y es la autoridad de decisión del control plane: quién y qué puede hacer qué, y qué acciones requieren primero a un humano. Su contrato es la postura solo-deny y deny-by-default hecha aplicable —

  • La reconciliación del roster converge un directorio conectado (las fuentes de identidad) en las entidades Identity canónicas del motor más el grafo de colección/membresía propiedad del módulo, con find-or-create indexado únicamente por external id, de modo que actualiza la misma fila que el mapa de acceso crea a partir de una referencia de auditoría. Esa convergencia de una sola fila es lo que hace posible la atribución firme.
  • El puente agente↔identidad vincula un agente al id interno de la identidad no humana canónica que presenta su credencial, resolviendo la dependencia dura que permite al módulo III (el mapa de acceso) cancelar el falso least-privilege drift de permitido-vs-observado.
  • El motor ABAC es un evaluador nativo que corre después del RBAC y solo puede restringir más — nunca amplía un grant.

El módulo VI posee cuatro entidades en el modelo de datos compartido — una colección y una arista collection-member (el grafo de grupo/rol derivado de la fuente, resuelto transitivamente dentro de límites), una aprobación (una solicitud HITL mutable) y una traza approval-decision append-only. Las identidades no se duplican en una tabla del módulo; se reconcilian en la entidad Identity canónica del motor.

El evaluador ABAC implementa el seam de evaluador de política del motor con propiedades verificadas: toda regla es una regla deny; corre después del RBAC dentro de un AND, de modo que una política nunca puede expandir el acceso; una política habilitada malformada falla cerrada (deniega); la ruta caliente de autorización se sirve desde una caché por tenant invalidada después de que una escritura commitea, aislada estrictamente por tenant. Las specs de política son tipadas y re-serializadas en la escritura (el JSON del operador nunca se round-trippea literalmente), de modo que una credencial no puede entrar en una spec. OPA/Rego es el seam de evaluador externo, nunca una dependencia arrastrada al motor.

El gate de aprobación es la trazabilidad acción→humano que el audit ledger ancla: la separación de funciones y el guard de decisor duplicado se indexan por la identidad de usuario estable (un token de sistema no puede decidir), el umbral de aprobación múltiple es race-safe sobre el store (un cruce concurrente se resuelve en exactamente un ganador), y la expiración se deriva de forma lazy en la lectura y luego se materializa mediante un barrido explícito y acotado por tenant. Los backends de autoría (managed-settings/hooks, política como código Cedar/OPA, el grafo de objetos WIF) añaden una ruta de escritura publish→immutable-revision→drift; para Cedar una política publicada se activa sobre la overlay solo-deny por tenant en vivo y se recarga en el arranque, de modo que una afirmación active sobrevive a un reinicio.

El módulo consume la base de autorización y auditoría del motor y el roster de identidad tipado de las fuentes de directorio configuradas; rellena el campo Agent.IdentityID del que depende el mapa de acceso. Produce eventos FindingReport en el bus de eventos — una identidad compartida vinculada a más de un agente, más escalado y expiración de aprobación — cada uno emitido una sola vez, gobernado por un marcador persistido de modo que un barrido repetido no pueda emitir por duplicado. Toda mutación privilegiada, y las lecturas de identidad y binding relevantes para la reconciliación, se autoauditan al principal real dentro de una transacción commiteada; el actor de auditoría es siempre una referencia tipada de principal, nunca un email.