Arquitectura y Conceptos
Si pensamos en una empresa de gran tamaño típica, generalmente está dividida en departamentos que pueden contener uno o más equipos. Cada equipo implementa software (microservicios) en varios lenguajes diferentes y pueden usar diferentes nubes o incluso ejecutarse on-premise. La tecnología usada no es tan importante, pero cómo van a gestionar los usuarios de sus aplicaciones sí lo es. ¿Cómo será el método de autenticación y autorización? ¿Cómo se dividirán los usuarios por grupos y funciones?
Ciertamente no esperamos que las aplicaciones los gestionen por su cuenta, ni siquiera por cuestiones de seguridad.
Estos usuarios pueden ser internos, externos de empresas asociadas, o pueden incluso ser usuarios de aplicaciones sociales (Google, Apple, Facebook), etc.
Estas aplicaciones necesitan ayuda para gestionar sus usuarios de la manera más segura posible, ahí es donde entra la gestión de identidad y acceso, en nuestro caso Keycloak.

Keycloak permite configurar diversos protocolos de autenticación y federación de identidad, como OpenID Connect, OAuth 2.0, SAML 2.0, LDAP, entre otros, para que las aplicaciones puedan integrarse con él de forma segura.
Lo que Keycloak nos ofrece es un lugar central donde todas las identidades pueden gestionarse y esto es extremadamente importante en una empresa donde la seguridad es fundamental.
Normalmente, una empresa tendría requisitos como eliminar ese usuario de una aplicación, eliminarlo de un grupo de esa aplicación, eliminarlo completamente de la organización, rotación de claves y tokens periódicos, etc. Con un IAMS podemos hacer esto de forma centralizada por el administrador.
Keycloak puede usarse como un servidor de inicio de sesión único (SSO - Single Sign On). Básicamente, puede actuar como un proveedor de identidad SAML o puede incluso actuar como un servidor de autorización OAuth. Por lo tanto, como se mencionó anteriormente, tus aplicaciones pueden usar SAML u OpenID Connect para hacer inicio de sesión único en tu empresa.
Puede actuar como un broker de identidad en medio entre tu aplicación y otro proveedor de identidad, ya sea de socios o de Social Provider.

Básicamente, las aplicaciones desplegadas en nuestra empresa tal vez necesiten tener usuarios de esas organizaciones asociadas. La manera más segura de hacer esto es aprovechar sus identidades almacenadas en sus propios proveedores de identidad. En ese caso, Keycloak puede comunicarse con esos proveedores de identidad usando SAML u OpenID Connect.
Podemos querer los usuarios de Internet que son básicamente usuarios de Google o Facebook. Tal vez queramos que accedan a nuestra aplicación. Keycloak también puede comunicarse con ellos usando OAuth u OpenID Connect.
Keycloak también puede conectarse a servidores LDAP existentes, como Active Directory o Novell NetWare, para traer todos los usuarios de los servidores de directorio a Keycloak.
Por lo tanto, si pensamos en esto a un nivel más elevado, Keycloak puede consolidar todos estos usuarios de diferentes proveedores de identidad y gestionarlos de forma centralizada, incluso aunque algunos de ellos no estén realmente definidos en el propio Keycloak.
Keycloak también proporciona autenticación multifactor para los usuarios de inmediato.