Cos’è un fornitore di identità (Identity provider, IdP)?
Nel regno di Gestione delle identità e degli accessi (IAM) , un fornitore di identità (Identity provider, IdP) è il servizio centrale per la gestione delle identità. È responsabile dell’autenticazione degli utenti, dell’emissione di token di identità e della fornitura di informazioni sugli utenti ai service provider (ad esempio, applicazioni, servizi, API).
Oltre all’ Autenticazione (Authentication) , i fornitori di identità moderni sono anche responsabili dell’ Autorizzazione (applicazione delle politiche di Controllo degli accessi ) e del supporto di funzionalità avanzate come il Single sign-on (SSO) e la Multi-tenancy .
Standard del fornitore di identità
A causa della natura della gestione delle identità e della necessità di interoperabilità, sarebbe impraticabile e inefficiente costruire fornitori di identità senza standard. Ecco alcuni scenari tipici:
- Due fornitori di identità devono comunicare tra loro per scambiare informazioni sugli utenti (ad esempio, login sociale).
- Un’applicazione deve autenticare gli utenti utilizzando più fornitori di identità (ad esempio, identità federata).
- Un fornitore di identità deve supportare più tipi di client (ad esempio, web, mobile, IoT).
Per affrontare questi scenari, l’industria ha sviluppato diversi standard popolari per i fornitori di identità:
- OAuth 2.0 : Un framework di autorizzazione ampiamente utilizzato che consente alle applicazioni di ottenere accesso per conto di utenti o servizi.
- OpenID Connect (OIDC) : Un livello di identità costruito sopra OAuth 2.0 che fornisce autenticazione e informazioni sugli utenti.
- Linguaggio di Marcatura per le Affermazioni di Sicurezza (SAML) : Uno standard per lo scambio di dati di autenticazione e autorizzazione tra domini di sicurezza.
Per le nuove applicazioni, OpenID Connect (OIDC) è lo standard raccomandato da utilizzare sia per costruire un fornitore di identità che per integrarsi con fornitori di identità esistenti.
Architettura del fornitore di identità
Il termine “fornitore di identità” non specifica una particolare architettura o implementazione. Vale a dire, un fornitore di identità può anche essere un’applicazione monolitica, un microservizio o un servizio cloud.
A causa della complessità e della criticità della gestione delle identità, le applicazioni moderne tendono a utilizzare fornitori di identità specializzati che sono servizi autonomi o soluzioni di fornitori.
Funzionalità del fornitore di identità
I fornitori di identità moderni offrono una vasta gamma di funzionalità per supportare vari casi d’uso e requisiti. Ecco alcune funzionalità comuni:
- Autenticazione (Authentication) : Verifica l’identità degli utenti utilizzando vari metodi (ad esempio, nome utente/password, login sociale, Autenticazione multi-fattore (MFA) ).
- Autorizzazione : Applica politiche di access control e gestisce i permessi degli utenti (ad esempio, Controllo degli accessi basato sui ruoli (RBAC) , Controllo degli accessi basato sugli attributi (ABAC) ).
- Gestione degli utenti: Crea, aggiorna ed elimina account e profili utente; fornisce dati utente ai service provider .
- Gestione dei token: Emette e gestisce token di identità (ad esempio, ID token, access token, refresh token).
- Single sign-on (SSO) : Consente agli utenti di autenticarsi una volta e accedere a più applicazioni.
- Multi-tenancy : Supporta più organizzazioni o tenant con dati utente e configurazioni isolate.