Hub de acceso universal con servidor OAuth

Una situación a la que se enfrentan múltiples empresas es la creación de múltiples sistemas para resolver problemas en sus respectivos dominios y por ende el camino típico es un sistema de acceso de usuarios repolicado una y otra vez en cada uno de los sistemas. Esto es un gran problema ya que es necesario dar de alta a cada usuario en cada uno de los sistemas a los cuales tendrá acceso y por ende se termina con información redundante y por ende con inconsistencias.

Esto introduce un proceso nuevo, e inecesario, que es la consiliación de estos datos, es decir, tareas para limpiar y mantener unificada la información.

Pero lo anterior solo ataca el síntoma y no la enfermedad, la cual fue autogenerada desde origen y se debe a un mal diseño sin preveer el futuro.

Ciertamente hay escenarios donde la replicación de información es inevitable pero en este caso no lo es y a continuación te hablaré de como resolvimos esto.

Nuestra conclusión fue tener una sola fuente de verdad, un solo lugar donde se pudieran dar de alta los usuarios y permisos de estos. La mejor opción era una aplicación para la gestión de lo anterior y en su núcleo un servidor OAuth. Básicamente lo que haríamos era convertirnos en un proveedor de autentificación con un poco más de scopes que sirvieran al resto de las aplicaciones. Este es el Hub de acceso universas (pero dentro hay otras funcionalidades extras del dominio de manejo de usuarios).

Así pues, las demás aplicaciones en el ecosistema TI de la empresa, solo actuarían como clientes del Hub, al modo en que haces login social con Google o Facebook, pero en este caso sería el sistema Hub (ingresa con tu cuenta Hub). En otroas palabras, una de las funcionalidades es el Single Sign On y de este modo se resuelve el problam de replicación de datos y funcionalidades y también se enfoca el recurso a una sola aplicación la cual puede mantenerse y mejorarse (y no los múltiples sistemas de ingreso por aplicación).

Diagrama