Skip to main content

🚀 Alta una Nueva Aplicación en Keycloak para uso OAuth 2.0

Este documento explica cómo crear una nueva aplicación en Keycloak para implementar OAuth 2.0.


1. Accede a la Consola de Administración

  1. Abre tu navegador y accede a:

    http://<host>:8080/admin
  2. Inicia sesión con tu usuario administrador.


2. Crear un Nuevo Realm(Reyno)

Si ya tienes un realm configurado, salta al paso 3.

  1. En el menú izquierdo, selecciona Add Realm.
  2. Ingresa un nombre para el Realm (por ejemplo, microfrontend-apps).
  3. Haz clic en Create.

3. Crear un Nuevo Cliente (Aplicación)

  1. Dentro del realm en el que estás trabajando, selecciona Clients en el menú lateral izquierdo.
  2. Haz clic en Create.

Configuración del Cliente (Aplicación):

  • Client ID: Ingresa un nombre único para tu aplicación (por ejemplo, angular-dashboard).
  • Client Protocol: Selecciona openid-connect.
  • Root URL: Ingresa la URL principal (por ejemplo, http://localhost:4200).
  • Haz clic en Save.

4. Configuración del Cliente OAuth 2.0

Después de guardar, configura estos parámetros en la pestaña Settings:

  1. Access Type: Selecciona Public (para una SPA de Angular).
  2. Valid Redirect URIs:
    • Agrega: http://localhost:4200/*.
  3. Web Origins:
    • Agrega: http://localhost:4200.

Haz clic en Save.


5. Crear un Rol y Configurar el Alcance (Scope)

  1. En el menú del cliente, selecciona Roles.
  2. Haz clic en Add Role y crea un rol (por ejemplo, user).
  3. Ve a MappersCreate y configura:
    • Name: roles
    • Mapper Type: User Realm Role
    • Token Claim Name: roles
    • Activa Add to access token y guarda los cambios.

6. Crear un Usuario para la Prueba

  1. Selecciona UsersAdd User.
  2. Ingresa un Username (por ejemplo, demo-user) y haz clic en Save.
  3. En la pestaña Credentials, establece una contraseña.
  4. Asigna el rol user en Role Mappings.

7. Obtener el Endpoint OAuth 2.0

  1. Ve a Realm SettingsOpenID Endpoint Configuration.
  2. Copia los Authorization y Token Endpoints.

8. Configuración en el Frontend (Angular)

Instalar la Librería de Keycloak

npm install keycloak-js

Configurar Keycloak en Angular

keycloak.service.ts

import Keycloak from 'keycloak-js';

const keycloak = new Keycloak({
url: 'http://localhost:8080',
realm: 'microfrontend-apps',
clientId: 'angular-dashboard',
});

export function initializeKeycloak(): () => Promise<void> {
return () =>
keycloak.init({
onLoad: 'login-required',
});
}

export { keycloak };

app.module.ts

import { NgModule, APP_INITIALIZER } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { initializeKeycloak, keycloak } from './keycloak.service';

@NgModule({
declarations: [AppComponent],
imports: [BrowserModule],
providers: [
{
provide: APP_INITIALIZER,
useFactory: initializeKeycloak,
multi: true,
},
],
bootstrap: [AppComponent],
})
export class AppModule {}

app.component.ts

import { Component } from '@angular/core';
import { keycloak } from './keycloak.service';

@Component({
selector: 'app-root',
template: `
<h1>Bienvenido a la Aplicación Angular</h1>
<button (click)="logout()">Cerrar Sesión</button>
`,
})
export class AppComponent {
logout() {
keycloak.logout();
}
}

9. Prueba de la Configuración

  1. Inicia tu aplicación Angular:
    ng serve
  2. Ve a http://localhost:4200. Deberías ser redirigido a Keycloak para iniciar sesión.
  3. Inicia sesión con tu usuario de prueba.
  4. Serás redirigido de nuevo a tu aplicación Angular.

Conclusión

Siguiendo estos pasos, habrás configurado correctamente una aplicación en Keycloak para autenticación con OAuth 2.0.