Introducción

Aprenda a usar Keycloak en un entorno local basado en docker para implementar la protección de acceso a recursos en microservicios basados en Devprime.

Keycloak es una plataforma de gestión de identidades que soporta la seguridad de aplicaciones y microservicios en single sign-on con procesos de gestión de identidades y accesos, ofreciendo autenticación y autorización integrada con la plataforma Devprime. Esta integración se realiza mediante el adaptador de seguridad.

Siga los pasos que se indican a continuación para preparar el entorno local de Keycloak con las configuraciones conjuntas básicas para habilitar las pruebas de integración local con el motor de seguridad.

  1. Inicialice el contenedor Keycloak mediante el comando proporcionado en la documentación de docker.
  2. Abra la URL de Keycloak en http://localhost:8080 y vea el portal de Keycoak.
  3. Inicie sesión ingresando el nombre de usuario ‘admin’ y la contraseña ‘admin’.
  4. Crea un nuevo Reino y establece un nombre. En este ejemplo, usaremos ‘devprime’.

Bienvenido a Keycloak

  1. Configure algunos ajustes iniciales para permitir el registro del usuario y el uso del correo electrónico al iniciar sesión. Para encontrar esta configuración, vaya a Realm “Devprime” y busque el menú ‘Configuración de Realm’.

a) Localice el menú “Iniciar sesión” e ingrese a la opción “Personalización de la pantalla de inicio de sesión” y cámbiela.

Welcome Keycloak

b) Localice la opción “Configuración de correo electrónico” y cámbiela.

Welcome Keycloak

  1. En este punto crearemos un “Cliente” para permitir el acceso del microservicio a Keycloak. En el menú principal, ubique el elemento “Clientes” y elija la opción “Crear cliente”.

Welcome Keycloak

  1. Realice una configuración inicial informando el “ID de cliente” y otras configuraciones de acuerdo con la configuración de Configuración general y capacidad. En nuestro ejemplo, usamos el nombre “myapp” para ClientID y cambiamos la autenticación de cliente y el flujo implícito.

Primer paso de la configuración

Welcome Keycloak

Segundo paso de la configuración

Welcome Keycloak

  1. Para permitir el redireccionamiento de URL entre Keycloak y el microservicio, es necesario registrar urls válidas.

a) Si tienes la pantalla abierta desde el paso anterior, localiza la opción “Acceder a ajustes”
b) Agregue la url “https://localhost:5001/signin-oidc” en la opción URIs de redireccionamiento válidos.
c) Esta misma pantalla está disponible en el menú principal en “Clientes” / “myapp”.

Welcome Keycloak

  1. Para obtener las credenciales de integración del microservicio con Keycloak vaya al menú “Clientes” y luego ingrese a “myapp” para ubicar la pestaña “Credenciales”. Copie la clave secreta para usarla en la aplicación.

Welcome Keycloak

Esta configuración inicial le permitirá iniciar las primeras pruebas sobre la configuración de seguridad en los microservicios. Keycloak ofrece una variedad de opciones para los flujos de autenticación.

Al final, recuerde los parámetros utilizados y/u obtenidos en la configuración de la capa de claves para su uso en el microservicio. La URL de cierre de sesión que se muestra a continuación es un ejemplo que devuelve la redirección a localhost

Otra opción importante para configurar es “URIs de redireccionamiento válidos” que define las urls autorizadas. En nuestro escenario, estamos usando localhost en el entorno local. Debes registrar todas las urls o puedes usar el ejemplo “https://localhost:5001/*”.

Artículo Parámetro
Dominio https://localhost:8080/auth/realms/devprime
ID de cliente Su ID de cliente
ClientSecret Tus Secretos
LogoutUri https://localhost:8080/auth/realms/devprime/protocol/openid-connect/logout?redirect_uri=https%3A%2F%2Flocalhost%3A5001
URI de redireccionamiento válidos https://localhost:5001/signin-oidc

Error común:

  • Verifique el nombre y la credencial de ClientID
[ERR][Web]["HTTP"][System.Exception]["Microsoft.AspNetCore.Authentication"]
["An error was encountered while handling the remote login." "An error was encountered while handling the remote login.
Message contains error: 'unauthorized_client', error_description: 'Invalid client or Invalid client credentials', error_uri: 'error_uri is null'."]

Próximos pasos:

Última modificación April 11, 2024 (cc33f7e6)