Clave Única + Keycloak

Clave Única + Keycloak

Si necesitas integrar Clave Unica con tu aplicación, te recomendio hacerlo con Keycloak, y luego realizas la integración entre Keycloak y tu aplicación.

¿Porqué ?

Bueno, múltiples motivos. Algunos:

  • Es altamente probable que los usuarios de tu aplicación también requieran acceder a otras aplicaciones (mesa de ayuda, ERP, soporte, facturación, tienda, etc). Luego, por cada aplicación tendrás que hacer una integración con Clave Única, lo que resultaría tremendamente engorroso. Por eso, se acuño el concepto de "Single Sign On", para que los usarios no tenga que autenticarse a cada rato. El mejor ejemplo es Google, que sólo te autentificas 1 vez, y luego puedes acceder a las distintas aplicaciones (Gmail, Google Drive, Google Sheets, Youtube, etc).
  • Keycloak es una aplicación opensource que se dedica exclusivamente a la gestión y autentificación de identidades. A través de Keycloak puedes administar mejor todo el flujo de login. Tiempo máximo del token, emails de recuperación, logs, flujos para nuevos usuarios, etc. Además, de ser necesario, puedes integrar otros mecanismos de login además de Clave Única.
  • La integración con Clave Única y Keycloak es sumamente sencilla, no toma más de 5-10 minutos.

Clave Unica

Primero debes gestionar el formulario de solicitud en Clave Unica para obtener el "client_id" y el "client_secret". Una vez que tengas dicha información, ya puedes configurar Clave Unica en Keycloak

Configuración de Keycloak en Clave Unica

Una vez que tengas instalando Keycloak (se recomienda la instanción via contenedor), primero debes crear un reino (o realm).

Crear nuevo Idp

Luego, en Keycloak vas a la sección de "Identity Providers" y seleccionas la opción "OpenID Connect 1.0". En la sección de "Discovery Endpoint" debes colocar la siguiente URL:
https://accounts.claveunica.gob.cl/openid/.well-known/openid-configuration

Y luego, sólo colocar las credenciales que te fueron proporcionadas por Clave Unica:

Y con eso ya estará funcionando la integración con Clave Unica ! Antes eso sí, haremos 2 configuraciones opcionales.

Redirección automática (opcional)

En este proyecto, no habrán otras opciones de autentificación, por lo que queremos que cuando un usuario sea redirigido a Keycloak, éste automáticamente se redireccionado a Clave Unica.

Para ello, se debe ir a la sección de "Authenticacion" y luego ir a flujo de autenticación "browser" y seleccionar la configuración para el elemento "Identity Provider Redirect".
Ahi se debe colocar el alias de tu Idp, que este caso, se utilizó el alias "oidc" para Clave Única:

Evitar completar campos adicionales (opcional

Una vez que el usario esté autentificado en Clave Única, éste será devuelto a Keycloak y se le presentará una formulario para completar algunos campos como "Nombre", "Apellido" e "email". Para evitar este formulario, se puede deshabilitar en la sección de "Authentication" y deshabilitamos la opción para el campo "Review Profile" dentro del flujo "first broker login" :

Adicionalmente, en la sección "Required Actions", se debe deshabilitar la opción de "Update Profile".

Prueba final

Para el ambiente de desarrollo de Clave Unica, se puede probar con estos usuarios:

RUN: 44.444.444-4 contraseña: testing
RUN: 55.555.555-5 contraseña: testing
RUN: 88.888.888-8 contraseña: testing
RUN: 99.999.999-9 contraseña: testing

Se puede usar esta URL de pruebas en Keycloak para probar la integración con Clave Unica: (Sólo debes hacer click sobre "Sign in" y será redirigido")

https://login-dev.cenabast.gob.cl/realms/cenabast/account/#/

Conclusión 🙌

Ya saben, la integración con Clave Unica deben hacerlo con alguna aplicación de Single Sign On, sea esta Keycloak u otra. Keycloak es preferible, al ser de código abierto y altamente escalable.

Buen día !