🚀 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
-
Abre tu navegador y accede a:
http://<host>:8080/admin -
Inicia sesión con tu usuario administrador.
2. Crear un Nuevo Realm(Reyno)
Si ya tienes un realm configurado, salta al paso 3.
- En el menú izquierdo, selecciona Add Realm.
- Ingresa un nombre para el Realm (por ejemplo,
microfrontend-apps). - Haz clic en Create.
3. Crear un Nuevo Cliente (Aplicación)
- Dentro del realm en el que estás trabajando, selecciona Clients en el menú lateral izquierdo.
- 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:
- Access Type: Selecciona Public (para una SPA de Angular).
- Valid Redirect URIs:
- Agrega:
http://localhost:4200/*.
- Agrega:
- Web Origins:
- Agrega:
http://localhost:4200.
- Agrega:
Haz clic en Save.
5. Crear un Rol y Configurar el Alcance (Scope)
- En el menú del cliente, selecciona Roles.
- Haz clic en Add Role y crea un rol (por ejemplo,
user). - Ve a Mappers → Create y configura:
- Name:
roles - Mapper Type:
User Realm Role - Token Claim Name:
roles - Activa Add to access token y guarda los cambios.
- Name:
6. Crear un Usuario para la Prueba
- Selecciona Users → Add User.
- Ingresa un Username (por ejemplo,
demo-user) y haz clic en Save. - En la pestaña Credentials, establece una contraseña.
- Asigna el rol
useren Role Mappings.
7. Obtener el Endpoint OAuth 2.0
- Ve a Realm Settings → OpenID Endpoint Configuration.
- 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
- Inicia tu aplicación Angular:
ng serve
- Ve a
http://localhost:4200. Deberías ser redirigido a Keycloak para iniciar sesión. - Inicia sesión con tu usuario de prueba.
- 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.