Integrando Keycloak en Vue.js 3 y Laravel 11 sin complicaciones

Diego Cortés
Diego Cortés
January 21, 2025
Integrando Keycloak en Vue.js 3 y Laravel 11 sin complicaciones

La integración de sistemas de autenticación puede ser un desafío, especialmente cuando se trata de combinar diferentes tecnologías. Recientemente, se presentó un enfoque práctico para integrar Keycloak en un entorno de desarrollo que utiliza Vue.js 3 y Laravel 11. Este proceso permite gestionar la autenticación de usuarios de manera eficiente, simplificando el acceso a aplicaciones web. A continuación, se detallan los pasos y consideraciones a tener en cuenta para llevar a cabo esta integración.

¿Qué es Keycloak?

Keycloak es una solución de identidad y acceso de código abierto que permite la autenticación única (SSO) y la gestión de acceso a aplicaciones. Es ideal para desarrolladores que buscan proteger sus aplicaciones y gestionar credenciales de forma segura sin complicaciones.

Requisitos Previos

Antes de comenzar la integración, es necesario tener instalado y configurado lo siguiente:

  • Vue.js 3: un framework progresivo de JavaScript.
  • Laravel 11: un framework de PHP para desarrollo de aplicaciones web.
  • Keycloak: un servidor que se puede ejecutar localmente o en un entorno en la nube.

Configuración de Keycloak

Para empezar, necesitas crear un nuevo 'Realm' en Keycloak, que es un espacio de gestión de identidad. Una vez creado, debes configurar clientes y roles deseados para tus aplicaciones.

  1. Accede al tablero de Keycloak.
  2. Crea un nuevo 'Realm'.
  3. Dentro de este 'Realm', configura un nuevo cliente. Este cliente representará tu aplicación frontend en Vue.js.

Cuando crees un nuevo cliente, asegúrate de habilitar la opción de flujo de autorización que necesites, como el flujo de autorización de código.

Integración en Vue.js 3

Para integrar Keycloak en tu proyecto de Vue.js, se recomienda utilizar la biblioteca keycloak-js, que facilita la conexión con el servidor Keycloak. A continuación, se detallan los pasos:

  1. Instala la dependencia:
  2. npm install keycloak-js
  3. Configura Keycloak en tu aplicación: Crea un nuevo archivo, por ejemplo, keycloak.js, e inicializa la instancia de Keycloak con la configuración adecuada:
  4. import Keycloak from 'keycloak-js';
    
    const keycloak = new Keycloak({
     url: 'https://tu-servidor-keycloak/auth',
     realm: 'tu-realm',
     clientId: 'tu-client-id',
    });
    
    export default keycloak;
  5. Inicializa Keycloak en el punto de entrada de tu aplicación: Utiliza el método init para autenticar al usuario al iniciar la aplicación.

Integración en Laravel 11

Para Laravel, es recomendable utilizar el paquete laravel-keycloak-guard, que proporciona una forma sencilla de integrar Keycloak como un sistema de autenticación en el backend.

  1. Instala el paquete:
  2. composer require vizir/laravel-keycloak-admin
  3. Configura el archivo de autenticación: Publica la configuración del paquete y edita el archivo config/keycloak.php para incluir los detalles de tu servidor Keycloak.
  4. Protege tus rutas: Utiliza guardias de Keycloak para proteger las rutas de tu API y asegurarte de que solo los usuarios autenticados puedan acceder a ellas.

Conclusión

Siguiendo estos pasos, podrás integrar Keycloak sin complicaciones en tu aplicación desarrollada con Vue.js 3 y Laravel 11. Esta configuración no solo te proporcionará una gestión simplificada de identidades, sino también una mayor seguridad para tus aplicaciones.

Si te interesa aprender más sobre temas similares, ¡te invito a seguir explorando más artículos en mi blog!

Información del artículo

Publicado: January 21, 2025
Categoría: Tutoriales de Laravel
Tiempo de lectura: 5-8 minutos
Dificultad: Intermedio

Consejos clave

1

Toma tu tiempo para entender cada concepto antes de continuar con el siguiente.

2

Practica los ejemplos en tu propio entorno de desarrollo para mejor comprensión.

3

No dudes en revisar los recursos adicionales mencionados en el artículo.

Diego Cortés
Diego Cortés
Full Stack Developer, SEO Specialist with Expertise in Laravel & Vue.js and 3D Generalist

Preguntas Frecuentes

Categorías

Page loaded in 28.42 ms