Configuracion de seguridad oauth2 con Keycloak y aspnetcore
Esta aplicación es un ejemplo de como proteger ASP.NET core 2.2 con un servidor de autentificacion oauth2 Keycloak.
Tambien se implementa el consumo de la api con Nswag con OpenApi 3.
Instalación:
Clonar el proyecto:
git clone https://github.com/juandepalo/Keycloak-aspnetcore.git
Situarse en el directorio:
cd ./Keycloak-aspnetcore
ejecutar:
docker-compose -f "docker-compose.yml" up -d --build --remove-orphans
Abrir el navegador http://localhost:8080 http://localhost:10001.
Modificacion de host.
Para ejecutar localmente modificaremos el fichero ‘C:\Windows\System32\drivers\etc\hosts’ añadiendo el nombre del servicio de Keycloark que se puede modificar en el docker-compose.
modificación fichero hosts:
`127.0.0.1 localhost keycloalocalhost`
Pulsamos sobre Administrador console. Nos solicitara las credenciales.
Por defecto con docker-compose hemos creado el usuario admin, con contraseña Pa55w0rd
Para nuestro entorno de pruebas crearemos nuestro Realm “Demo”, para ello pulsamos sobre la add Realm
Vamos a la pestaña “Security Defenses” y permitimos todos los origenesX-Frame-Options : ALLOW-FROM *
Importamos el cliente keycloak-Import/realm-export.json
Validamos configuración
Generamos Secret key que debemos copiar para configurar el proyecto de Aspnet.core
Para consumir la api necestiamos añadir un usuario al cliente samplewebapi
Le asignamos una contraseña
Validamos los Roles
Para ver el esquema de autenficación de Keycloak nos situamos en Realm Setting
y pulsamos sonbre el Endpoints “OpenID Endpoint Configuration”
Accerder a la url http://localhost:10001/swagger/