Categories
54cuatro

Gestión de acceso e identidad de código abierto

Complementando la entrada sobre el caso de implementación de una #WebAPI que usaba Keycloak, seguimos profundizando sobre el este tema. Nuestra empresa viene trabajando con clientes en lo que hace a la digitalización de sus procesos operativos. Uno de nuestros mayores éxitos viene de la mano de una empresa dentro de la industria de Salud a la que ayudamos a actualizar su arquitectura aplicativa.

En este caso la actualización tecnológica vino de la mano de una implementación de una plataforma de gestión de identidades, donde unificar y facilitar la protección de las aplicaciones y los servicios usando una capa de AAA.

¿Qué solución planteamos?

La plataforma de autenticacion estaba basada en una plataforma realizada dentro de la compañia, no contaba con protocolos de federación de identidad. A raiz de eso, planteamos el reemplazo de esa capa de autenticacion, usando una herramienta Open Source. Planteamos el uso de Keycloak, un producto de inicio de sesión único (IdP) con Identity Management y Access Management para aplicaciones y servicios modernos, 100% open source.

Adicionalmente #Keycloak permite la integración de protocolos como SAML v2 y OpenID Connect (OIDC) / OAuth2.

Objetivo logrado

Desde la vista conceptual un IdP permite que una aplicación delegue su autenticación y esto traducidos en términos empresariales facilita la protección de las aplicaciones sin tener que desarrollar nuevo código con cada aplicación, permitiendo tener un microservicio dedicado a facilitar la autenticación, robusteciendo la seguridad y acelerando el desarrollo de software.

Todas las ventajas de Keycloak:

  • Reducción del tiempo de entrega de software (#time2market) al dejar de preocuparse por los aspectos de seguridad de la autenticación.
  • Autenticación centralizada e inicio de sesión único (single sign on #SSO)
  • Soporte a protocolos estándar AUTH, SAML y OIDC
  • Integracion con LDAP y AD
  • Delegación de autenticación (Google, Facebook, etc)
  • Instalación realizada 100% sobre contenedores
  • Autogestión de usuarios (recovery de password, desbloqueo de cuentas)

[popup_anything id=”2076″]
Categories
54cuatro

WebAPI que autentica por token y WebApp que autentica mediante Keycloak

Este desarrollo fue diseñado para un cliente que necesitaba un sistema de #SSO para toda su plataforma de aplicaciones, algunas #API, otras #Rest y otras #SOAP. La gran mayoría de los desarrollos de nuestro cliente eran .NET.

El cliente tenia un desarrollo propio que hacia uso de autenticación y autorización, pero a través de procesos custom. La autenticación usaba usuario y password, se creaba y persistía un #customsession.

El desafio pasaba por comenzar a utilizar un protocolo standard de autorización, el elegido fue oAuth2, protocolo que utiliza #JWT pero configurando tambien SAML para casos donde hubiera necesidad de autenticar y autorizar sobre XML.

Hicimos una #WebAPI que autentica por #Token, y una #WebApp que autentica mediante el form de #Keycloak.

¿Que usamos?

Usamos un stack tecnológico basado en Kubernetes para correr los contenedores del sistema de SSO, y Keycloak como solucion de #IAM (Identity & Access Management).

Video

Esta demo continua el desarrollo efectuado en esta entrada.

En este caso, el principal desafío era implementar una herramienta de autenticación común para todas las app de la empresa. Implementar una solución de administración de identidades tiene como objetivo mejorar la seguridad, pero al mismo tiempo se logra un aumento significativo de la productividad debido a la reducción de las tareas redundante y el re-aprovechamiento de código. Adicionalmente se genera una disminución en los costos.

Beneficios

Desde una plataforma IAM se puede lograr la administracion de usuarios internos y externos, como asi tambien las cuentas de servicios que usan las herramientas y software. Adicionalmente las apps que validan por token pueden hacerlo a traves de la misma herramienta. Es decir, tenemos una plataforma unificada que nos permite:

  • ABM de cuentas de usuario
  • Manejo de contraseñas
  • Inicio de sesión único (SSO)
  • Control de acceso basado en roles (RBAC)
  • Gobernanza de acceso
  • Auditoria y Cumplimiento

Algo destacado es que estos sistemas permiten desarrollar capacidades de autogestión que permite lograr que el usuario tenga una determinada autonomía para recuperar passwords, generar nuevos usuarios, etc.

Resumen

Como conclusión, podemos destacar que un sistema de IAM emplea la tecnología para apoyar la transformación digital. Un software que brinda facilidad de administración, un incremento importante en la seguridad, optimización de los tiempos de desarrollo y satisfacción a los clientes de la empresa.


Si necesitas ayuda, solicita asesoramiento con tu proyecto desde aqui mismo:

[popup_anything id=”2076″]