¿Qué es un proveedor de identidad (IdP)?
En el ámbito de Gestión de identidades y access (Identity and access management, IAM) , un proveedor de identidad (IdP) es el servicio central para gestionar identidades. Se encarga de autenticar a los usuarios, emitir tokens de identidad y proporcionar información de usuario a proveedores de servicios (por ejemplo, aplicaciones, servicios, APIs).
Además de Autenticación (Authentication) , los proveedores de identidad modernos también son responsables de Autorización (Authorization) (aplicación de políticas de Control de acceso (Access control) ) y el soporte de funciones avanzadas como Inicio de sesión único (SSO) y Multi-tenancy (Multi-tenancy) .
Normas de los proveedores de identidad
Debido a la naturaleza de la gestión de identidades y la necesidad de interoperabilidad, sería poco práctico e ineficiente construir proveedores de identidad sin normas. Aquí hay algunos escenarios típicos:
- Dos proveedores de identidad necesitan comunicarse entre sí para intercambiar información de usuario (por ejemplo, inicio de sesión social).
- Una aplicación necesita autenticar usuarios utilizando múltiples proveedores de identidad (por ejemplo, identidad federada).
- Un proveedor de identidad necesita admitir múltiples tipos de clientes (por ejemplo, web, móvil, IoT).
Para abordar estos escenarios, la industria ha desarrollado varios estándares populares para proveedores de identidad:
- OAuth 2.0 : Un marco de autorización ampliamente utilizado que permite a las aplicaciones obtener acceso en nombre de los usuarios o servicios.
- OpenID Connect (OIDC) : Una capa de identidad construida sobre OAuth 2.0 que proporciona autenticación e información del usuario.
- Lenguaje de marcado para declaraciones de seguridad (Security Assertion Markup Language, SAML) : Un estándar para intercambiar datos de autenticación y autorización entre dominios de seguridad.
Para nuevas aplicaciones, OpenID Connect (OIDC) es el estándar recomendado para usar, ya sea para construir un proveedor de identidad o integrarse con proveedores de identidad existentes.
Arquitectura del proveedor de identidad
El término “proveedor de identidad” no especifica una arquitectura o implementación particular. Es decir, un proveedor de identidad también puede ser una aplicación monolítica, un microservicio o un servicio en la nube.
Debido a la complejidad y criticidad de la gestión de identidades, las aplicaciones modernas tienden a utilizar proveedores de identidad especializados que son servicios independientes o soluciones de proveedor.
Características del proveedor de identidad
Los proveedores de identidad modernos ofrecen una amplia gama de características para soportar diversos casos de uso y requisitos. Aquí hay algunas características comunes:
- Autenticación (Authentication) : Verificar la identidad de los usuarios utilizando varios métodos (por ejemplo, nombre de usuario/contraseña, inicio de sesión social, Autenticación multifactor (Multi-factor authentication, MFA) ).
- Autorización (Authorization) : Aplicar políticas de Control de acceso (Access control) y gestionar los permisos de usuario (por ejemplo, Control de acceso basado en roles (RBAC) , Control de acceso basado en atributos (Attribute-based access control, ABAC) ).
- Gestión de usuarios: Crear, actualizar y eliminar cuentas y perfiles de usuario; proporcionar datos de usuario a proveedores de servicios .
- Gestión de tokens: Emitir y gestionar tokens de identidad (por ejemplo, ID token, access token, refresh token).
- Inicio de sesión único (SSO) : Permitir a los usuarios autenticarse una vez y acceder a múltiples aplicaciones.
- Multi-tenancy (Multi-tenancy) : Soportar múltiples organizaciones o arrendatarios con datos y configuraciones de usuario aislados.