Alcune caratteristiche di Keycloak:
- Controllo degli accessi centralizzato SSO => fornisce un sistema di Authentication centralizzato Single Sign-On
- Cross-Domain SSO => Permette di fare Single Sign-On tra applicativi che risiedono su domini diversi
- Identity Brokering => Il sistema può NON conoscere gli utenti e attingere esternamente alle informazioni che necessita per autenticarli
- Federazione degli utenti => attraverso un unico provider si federa l’accesso a molteplici servizi
- Client Library Ready => Dispone di librerie in vari linguaggi di programmazione per l’integrazione sulle applicazioni (Client)
- Event auditing => sistema di logging che tiene traccia di tutto ciò che accade
- Themes => Personalizzazione dell'interfaccia grafica dell'applicativo
- Tutte le funzionalità disponibili nell’interfaccia grafica possono essere chiamate anche tramite API REST
Abbiamo delle applicazioni (Client) che erogano dei servizi e vogliamo proteggerle => deleghiamo a Keycloak la verifica degli accessi tramite uno dei protocolli di autenticazione.
Keycloak si basa su due protocolli di autenticazione:
- OIDC (OpenID Connect, basato sulle specifiche OpenID, a loro volta estensione delle specifiche OAUTH2)
- SAML 2.0
Fase di AUTORIZZAZIONE
Dopo aver verificato l'identità dell'utente si verifica che sia autorizzato ad accedere ai Servizi richiesti (Authorization Services), Keycloak stacca un Token con cui l'utente si presenta ai servizi per la fase di autorizzazione.
Gli Authorization Services possono essere predefiniti o customizzabili:
- Attribute Based Access
- Role Based Access
- Custom Policies
- Custom Rules
- Policy Chaining
- Custom Resources