Navegando por la autenticación de identidad: desde LDAP hasta los protocolos modernos

March 28, 2024

Technology

Al construir el mecanismo de autenticación de identidad para aplicaciones de red, los ingenieros enfrentan diversas opciones. Un enfoque es diseñar un mecanismo de autenticación personalizado, que puede ser adecuado para ciertas aplicaciones recién desarrolladas. Otro enfoque es adoptar estándares populares ampliamente reconocidos, lo que no solo ayuda en la compatibilidad con aplicaciones heredadas, sino que también garantiza la interoperabilidad con otros servicios, simplificando así el proceso de integración. Por lo tanto, una comprensión profunda de las tecnologías comunes de autenticación de identidad es crucial para construir servicios de autenticación de identidad robustos e interoperables.

LDAP / Active Directory

LDAP (Lightweight Directory Access Protocol) es un protocolo basado en IP diseñado específicamente para acceder a servicios de directorio. Vale la pena mencionar que el Active Directory de Microsoft también admite este protocolo.

Los servicios de directorio son una forma especial de base de datos que organiza varios recursos (como usuarios, organizaciones, dispositivos, etc.) utilizando identificadores únicos. Este almacenamiento de datos estructurado permite a los clientes consultar los recursos necesarios en la base de datos utilizando una sintaxis de búsqueda específica. Para los recursos almacenados en servicios de directorio, pueden contener información de atributos rica, como el nombre de un usuario, correo electrónico, número de teléfono, etc. Para servidores LDAP específicos, generalmente hay algunas plantillas integradas para especificar los requisitos de claves y valores de atributos, asegurando la precisión de los datos.

En entornos empresariales, las aplicaciones de LDAP/Active Directory son particularmente extendidas. Las empresas pueden almacenar información de empleados en una estructura jerárquica basada en sus departamentos, y cada recurso "usuario" puede almacenar información básica y credenciales de los empleados.

Integración de LDAP en Aplicaciones

Para muchas aplicaciones existentes, la integración del protocolo LDAP se ha convertido en una característica importante, ya sea integrada o implementada basada en mecanismos de extensión. Tomando Apache APISIX como ejemplo, ha implementado con éxito la integración de LDAP a través de un mecanismo de plugin flexible. Esta integración permite a los clientes enviar nombres de usuario y contraseñas en formato de autenticación básica, luego consultar y validar las credenciales del usuario en el servidor LDAP, asegurando efectivamente las solicitudes de API.

En aplicaciones y servicios desarrollados por ingenieros, el protocolo LDAP también puede ser utilizado para implementar funciones de gestión de usuarios y autenticación. Al utilizar bibliotecas cliente de LDAP proporcionadas por lenguajes de programación específicos, es fácil conectarse a servicios LDAP. Una vez establecida la conexión, se puede utilizar la API de búsqueda para consultar recursos en el directorio y recuperar los atributos de usuario necesarios.

LDAP

Pros y Contras de LDAP

Pros

  • Almacenamiento centralizado y consulta eficiente: Los datos se almacenan centralmente en servicios de directorio, y su estructura organizativa mejora en gran medida la velocidad de consulta, facilitando el manejo de grandes volúmenes de solicitudes de lectura.

  • Estructura de árbol intuitiva: La estructura de árbol de los servicios de directorio se asemeja mucho a la estructura organizativa del mundo real, lo que permite que los recursos se indexen convenientemente en nodos hoja, alineándose con la intuición de los usuarios.

  • Integración ampliamente aplicada: Debido a su madurez y estabilidad, el protocolo LDAP proporciona soporte de integración integrado en muchos software.

Contras

  • Protocolo obsoleto: El protocolo LDAP fue diseñado en épocas anteriores, utilizando codificación ASN.1, que difiere significativamente del formato JSON predominante hoy en día, lo que dificulta la integración.

  • Funcionalidad limitada y problemas de compatibilidad: El protocolo en sí tiene una funcionalidad limitada, lo que lleva a que algunos software de servidor LDAP tengan que extenderse a través de medios no estándar, lo que puede afectar la compatibilidad entre diferentes servidores LDAP.

  • Configuración compleja y desafíos de seguridad: La configuración del servidor LDAP involucra muchos factores de seguridad, como TLS y control de acceso a datos, requiriendo experiencia para asegurar una configuración correcta, de lo contrario se arriesga la fuga de datos.

  • Dificultad de implementación en aplicaciones: Desde la perspectiva de la aplicación, acceder a servidores LDAP es similar a acceder a bases de datos, requiriendo el uso de APIs de bajo nivel como Search para el acceso a datos, lo que impone altas demandas a los desarrolladores de aplicaciones.

La Modernización de LDAP

Aunque el protocolo LDAP puede parecer algo obsoleto en el entorno tecnológico actual, todavía es ampliamente soportado por muchos software principales como un estándar clásico. Muchas empresas todavía dependen de LDAP para gestionar varios recursos dentro de la organización, y su estabilidad y fiabilidad han sido verificadas en aplicaciones prácticas.

Para superar algunas limitaciones del protocolo LDAP en aplicaciones modernas, han surgido algunos productos de middleware. Estos middleware encapsulan el protocolo LDAP internamente y proporcionan interfaces de protocolo más modernas y fáciles de usar, como OpenID Connect:

Ellos manejan la conversión y adaptación de protocolos, proporcionando protocolos modernos para reducir la carga de trabajo de integración para los desarrolladores de aplicaciones.

Estos productos de middleware son responsables de la conversión y adaptación de protocolos, proporcionando a los desarrolladores de aplicaciones métodos de integración más modernos y eficientes, reduciendo efectivamente la carga de trabajo necesaria para integrar LDAP.

Mecanismo de Autenticación de Identidad Basado en HTTP

En el campo de la autenticación de identidad, los protocolos basados en HTTP juegan un papel crucial. OpenID Connect (OIDC), SAML y CAS están entre los representantes.

OpenID Connect

OpenID Connect es una extensión de OAuth 2, proporcionando no solo capacidades de autorización sino también mejorando las capacidades de autenticación de identidad. Comparado con la funcionalidad limitada de OAuth 2, OIDC ofrece características más ricas, como la funcionalidad central de id_token y los estándares de descubrimiento de OIDC.

La ventaja de OIDC radica en su amplia aplicación y rico ecosistema. Implementaciones maduras de servidor y cliente están disponibles en varios lenguajes de programación, facilitando la integración y despliegue. Además, OIDC puede combinarse con otras tecnologías, como el uso de JSON Web Tokens (JWT) como tokens, aprovechando su falta de estado para reducir la carga en los servicios de autenticación de identidad.

CAS

CAS (Central Authentication Service) es un protocolo de autenticación de identidad ampliamente utilizado en escenarios web, utilizado para implementar la funcionalidad de inicio de sesión único. El protocolo CAS es relativamente simple en diseño y fácil de integrar en varias aplicaciones. Además, it puede ser utilizado en producción. Vale la pena mencionar que plataformas de gestión de autenticación de identidad como Keycloak también soportan el protocolo CAS, expandiendo aún más su ámbito de aplicación.

SAML

SAML (Security Assertion Markup Language) es un protocolo de autenticación de identidad de larga data, con la versión actual SAML 2.0 lanzada en 2005. El protocolo utiliza XML como el método de codificación para la comunicación entre servicios y define estructuras de datos únicas. Sin embargo, debido a la implementación relativamente compleja de SAML y su uso menos intuitivo y directo, sus ventajas no son tan aparentes cuando se comparan con protocolos modernos de autenticación de identidad como OIDC y CAS.

No obstante, soluciones de gestión de identidad y acceso como Keycloak todavía proporcionan implementaciones de servidor de SAML para satisfacer las necesidades de autenticación de identidad en escenarios específicos.

Cyber Security

Sincronización y Gestión de Identidad de Usuario

Considere un escenario común: una empresa proporciona múltiples sistemas de aplicaciones internas a sus empleados y adopta el inicio de sesión único para mejorar la experiencia del usuario. Sin embargo, cada vez que un nuevo empleado se une o un empleado antiguo se va, los administradores de TI necesitan crear o eliminar manualmente cuentas en varios sistemas, un proceso que no solo es engorroso sino que también está acompañado de riesgos de seguridad potenciales.

Para abordar este problema, los administradores de TI necesitan urgentemente una herramienta estandarizada y automatizada de gestión de cuentas de usuario. Es en este contexto que surge el estándar SCIM (System for Cross-domain Identity Management).

El estándar SCIM define una serie de APIs REST específicas diseñadas para lograr una interoperabilidad perfecta entre IDPs (proveedores de identidad) y sistemas de aplicaciones o servicios SaaS. A través de estas APIs, los usuarios pueden configurar automáticamente cuentas, simplificando enormemente el proceso de creación, actualización y eliminación de cuentas.

Desde su introducción, el protocolo SCIM ha sido ampliamente adoptado y aplicado. Por ejemplo, soluciones de gestión de identidad bien conocidas como Microsoft Entra ID (anteriormente Azure Active Directory) y Okta soportan el protocolo SCIM. Además, plataformas de gestión de identidad y acceso de código abierto como Keycloak también proporcionan extensiones de servidor/cliente SCIM, enriqueciendo aún más sus escenarios de aplicación.

Conclusión

Este artículo describe brevemente las principales tecnologías ampliamente utilizadas en escenarios de autenticación de identidad. En el proceso de construir servicios de autenticación de identidad eficientes y seguros, estas soluciones técnicas maduras juegan un papel crucial. No solo simplifican enormemente el trabajo de integración y mejoran la eficiencia del trabajo, sino que también reducen efectivamente los riesgos de seguridad, asegurando la seguridad de los datos empresariales y la información del usuario. Al aprovechar estas soluciones tecnológicas, podemos satisfacer mejor las demandas de la autenticación de identidad moderna, ofreciendo una experiencia más conveniente y segura tanto para las empresas como para los usuarios.

Share article link