in Architettura Software, Informatica

Introduzione a KeyCloak

Keycloak è un software open source che abilita il Single Sign-On (IdP) con Identity Management e Access Management per applicazioni e servizi moderni.

È disponibile con licenza Apache e supportato da Red Hat.

Tra le principali caratteristiche di Keycloak ci sono:

  • Single Sign-On e Single Sign-Out
  • Possibilità di utilizzare servizi esterni per l’autenticazione (es.Google, Twitter, Facebook)
  • Autenticazione tramite OTP (tramite FreeOtp o Google Authenticator)
  • Possibilità di utilizzo all’interno di container
  • Admin console che consente la configurazione tramite interfaccia web
  • User Identity e Accesses, permettendo di creare un database di utenti con ruoli e gruppi
  • Possibilità di sincronizzare il database di utenti con database esterni tramite LDAP e Active Directory.
  • Api interne che possono essere utilizzate per lo sviluppo di provider esterni per sincronizzazione degli utenti
  • Può essere utilizzato come Identity Broker tra gli utenti ed altri identity provider

Nel quotidiano si tratta di un software che consente di gestire i criteri di autenticazione utilizzando i protocolli SAML2, OpenId connect ed ovviamente anche Oauth2.

Immaginiamo uno scenario in cui sono presenti un insieme di applicazioni ciascuna con i propri utenti. Siccome ogni applicazione ha i propri utenti non è possibile pensare di poter condividere le informazioni, anche perchè le logiche potrebbero essere differenti tra applicazione e applicazione.

L’idea è quella di avere uno strumento che permetta di federare tutti gli utenti per tutte le applicazione presenti.

Per chiarire meglio il concetto, possiamo prendere ad esempio Google, che ci consente di utilizzare un singole account per poter accedere a servizi differenti.

KeyCloak ci permette di gestire i nostri utenti in un ambiente federato. E’ un progetto gestito da Redhat che mette a disposizione una versione gratuita ed una versione a pagamento.

E’ disponibile in tre differenti modalità di installazione:

  • Server: è possibile scaricarlo in versione tar o zip con tutti gli script necessari per il funzionamento.
  • Docker: è possibile scaricare l’immagine docker dal link http://quay.io/keycloak/keycloak oppure direttamente da DockerHub (jboss/keycloak)
  • Operator: una distribuzione disponibile per kubernates e OpenShift basata sull’ sdk di Operator

Nei prossimi post vedremo come installare la versione dockerizzata e configurarla per poter garantire l’accesso ad un applicazione Api (per il backend) sviluppate con .NET Core e una parte frontend React.