Características clave
- User Management – Crea, actualiza y elimina cuentas de usuario.
- Role-Based Access Control (RBAC) – Asigna roles predefinidos con permisos granulares.
- Group Association – Gestiona membresías de usuarios en aplicaciones.
- OAuth2 Authentication – Flujos de autenticación seguros utilizando tokens JWT.
- Performance Optimization – Utiliza caché en memoria para un manejo rápido de consultas.
- Observability – Integrado con OpenTelemetry para registro y rastreo.
Grupos de roles
Los grupos de roles se definen por aplicación según los recursos disponibles. A cada usuario se le asigna un nivel de permisos:- Admin – Acceso completo a todos los recursos y capacidades administrativas.
- Editor – Puede modificar contenido y configuraciones para recursos específicos pero carece de control administrativo completo.
- Contributor – Puede contribuir contenido y realizar tareas, pero tiene acceso limitado a la configuración del sistema.
- Viewer – Acceso de solo lectura para ver contenido sin realizar cambios.
ImportanteLos grupos de roles vienen predefinidos, y sus permisos no se pueden cambiar.
Acciones permitidas
| Rol | Métodos permitidos |
|---|---|
| Admin | Control completo sobre todos los recursos |
| Editor | GET, POST, PATCH, DELETE |
| Contributor | GET, POST, PATCH |
| Viewer | Solo GET |
Arquitectura y flujo de identity
Identity sigue un patrón de arquitectura limpia con el siguiente flujo de solicitudes:
Figura 1. Flujo de Identity
Flujo de solicitudes
- Entrada de solicitud HTTP
- Los endpoints de la API procesan las solicitudes entrantes.
- El middleware maneja CORS, registro y telemetría.
- El middleware de autorización aplica políticas de acceso.
- Procesamiento de solicitudes
- Los handlers validan la entrada y extraen parámetros.
- La capa de servicio ejecuta la lógica de negocio.
- La capa de adaptador traduce las llamadas de servicio al sistema IAM externo.
- Flujo de autenticación
- Las aplicaciones cliente se autentican usando OAuth2.
- Los tokens JWT se validan con certificados embebidos.
- Los permisos se aplican según las definiciones de roles.
- Flujo de respuesta
- Los datos se transforman en modelos de respuesta de API.
- Las respuestas HTTP estandarizadas garantizan consistencia.
- El registro y la telemetría rastrean el ciclo de vida de la solicitud.
Dependencias externas
- Primary storage – Sistema de gestión de identidades centralizado.
- Caching – Optimizado con un almacén de datos en memoria.
- Tracing & monitoring – Integrado con OpenTelemetry.
- Deployment – Kubernetes para gestión de infraestructura.
Descripción general de la API
Identity proporciona gestión centralizada de identidad y acceso para aplicaciones distribuidas. Las APIs soportan:- Gestión de cuentas de usuario y autenticación.
- Control de acceso basado en roles y aplicación de permisos.
- Operaciones de identidad de grupos y aplicaciones.
Almacenamiento y modelado de datos
Identity no almacena datos por sí mismo—se conecta con sistemas externos para manejar identidad y caché.Almacenamiento primario
El servicio depende de un sistema externo de gestión de identidades como su almacén de datos principal. Gestiona entidades clave como usuarios, grupos y aplicaciones:- Entidad de usuario
- Propiedades clave: ID, nombre, apellido, nombre de usuario, correo electrónico, contraseña hasheada y membresías de grupo.
- Mapeo: Corresponde directamente a objetos de usuario en el sistema de identidad.
- Operaciones: Soporta acciones de creación, lectura, actualización y eliminación mediante API.
- Entidad de grupo
- Propiedades clave: ID, nombre, nombre para mostrar, fecha de creación y usuarios asociados.
- Mapeo: Corresponde directamente a objetos de grupo en el sistema de identidad.
- Operaciones: Operaciones de lectura disponibles mediante API.
- Entidad de aplicación
- Propiedades clave: ID, nombre, descripción, credenciales de cliente y fecha de creación.
- Mapeo: Corresponde directamente a objetos de aplicación en el sistema de identidad.
- Operaciones: Soporta acciones de creación, lectura y eliminación mediante API.
Almacenamiento secundario
Se integra una base de datos basada en documentos para soportar necesidades adicionales de persistencia de datos.Caché
Se utiliza una capa de caché para mejorar el rendimiento, gestionando datos temporales de manera eficiente. Las conexiones y consumidores de caché se manejan programáticamente dentro de Identity.Despliegue y operaciones
- Escalabilidad y confiabilidad – Gestionado a través de Kubernetes.
- Observability – Integrado con OpenTelemetry.
- Seguridad – Alineado con las mejores prácticas de la industria para autenticación y autorización.

