Code Monkey home page Code Monkey logo

keycloak-aspnetcore's Introduction

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

keycloak-aspnetcore's People

Contributors

juandepalo avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

yvansuen

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.