juandepalo / Keycloak-aspnetcore

Configuracion de seguridad oauth2 con Keycloak y aspnetcore

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Keycloak / ASP.NET Core / Swagger Nswag

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.

Resumen

  • Server
    • ASP.NET Core 2.2
    • Docker: keycloack server con base de datos mysql
  • Client
    • Nswag. interfaz de usuario y el generador de Swagger

Setup

  1. Instalación:

  2. Clonar el proyecto: git clone https://github.com/juandepalo/Keycloak-aspnetcore.git

  3. Situarse en el directorio:

    cd ./Keycloak-aspnetcore

  4. ejecutar:

    docker-compose -f "docker-compose.yml" up -d --build --remove-orphans

  5. Abrir el navegador http://localhost:8080 http://localhost:10001.

http://localhost:8080

http://localhost:10001

Configuración

  1. Modificacion de host.

    1. 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.

    nombreserviciokeycloak

    modificación fichero hosts:

    127.0.0.1 localhost keycloalocalhost

  2. Configuracion de Keycloak.

    1. He dejado la exportación de configuración de un cliente para el ejemplo en keycloak-Import/realm-export.json

Pulsamos sobre Administrador console. Nos solicitara las credenciales. Por defecto con docker-compose hemos creado el usuario admin, con contraseña Pa55w0rd login Consola

Para nuestro entorno de pruebas crearemos nuestro Realm "Demo", para ello pulsamos sobre la add Realm creacion Realm

Vamos a la pestaña "Security Defenses" y permitimos todos los origenes X-Frame-Options : ALLOW-FROM * Seguridad Realm

Importamos el cliente keycloak-Import/realm-export.json Importar Cliente

Validamos configuración Configuración Cliente

Generamos Secret key que debemos copiar para configurar el proyecto de Aspnet.core Creación de Secret

Para consumir la api necestiamos añadir un usuario al cliente samplewebapi Creación Usuario

Le asignamos una contraseña Cambio contraseña Creacion contraseña Usuario confirmacion cambio contrasñea

Validamos los Roles Roles Usuario

Para ver el esquema de autenficación de Keycloak nos situamos en Realm Setting Configuracion Realm

y pulsamos sonbre el Endpoints "OpenID Endpoint Configuration" Datos Configuración

  1. Configuracion Aspnet. Con los datos obtenidos del esquema de keycloak configuramos nuestro cliente.

Configuración Aspnet

  1. Probar:

Accerder a la url http://localhost:10001/swagger/ swagger

Autorización

Validar datos cliente

Pantalla login

Usuario SampleWebApi

Autentificación correcta

Prueba consumo api

Resultado

Enlaces

Visual studio Nswag

Nswag

Add OAuth2 authorization (OpenAPI 3)

KeyCloak Documentacion

About

Configuracion de seguridad oauth2 con Keycloak y aspnetcore


Languages

Language:C# 34.3%Language:HTML 28.4%Language:TypeScript 25.1%Language:JavaScript 5.0%Language:CSS 4.1%Language:Dockerfile 3.1%