Basato sul framework OAuth 2.0, il protocollo di autenticazione OpenID Connect viene usato quasi quotidianamente da tutti noi, a volte in maniera inconsapevole.
Infatti quando una qualsiasi applicazione web deve autenticare un utente e ottenere informazioni sul suo profilo, può utilizzare OpenID Connect (OIDC) in combinazione con OAuth 2.0. Di solito, questo avviene in quello che è definito un “flusso di autorizzazione OIDC“:
- L’applicazione richiede l’accesso alle informazioni sull’utente ottenendo un token di autorizzazione mediante l’utilizzo di OAuth 2.0.
- Quando l’utente si autentica presso il fornitore di identità (come Google o Facebook), il fornitore emette un ID token come parte del processo di autenticazione. Questo ID token è un token di identità OIDC e contiene le informazioni dell’utente.
- L’applicazione riceve quindi sia il token di autorizzazione OAuth 2.0 che l’ID token OIDC. Il token di autorizzazione può essere utilizzato per accedere alle risorse dell’utente, mentre l’ID token contiene le informazioni dell’utente autenticato.
Quindi come dicevamo in apertura questa modalità si applica scenari molto conosciuti, in cui è necessario sia l’autenticazione che l’autorizzazione, come l’accesso a un’applicazione utilizzando le credenziali di un fornitore di identità di terze parti.
Tutto questo lungo preambolo serve per contestualizzare il protagonista della nostra notizia, ossia il progetto OpenPubKey. Creato dagli sviluppatori del gruppo BastionZero, OpenPubKey è salito agli onori delle cronache dopo che la Linux Foundation lo ha inglobato, rendendolo parte dei progetti open-source gestiti dalla fondazione.
Ma in cosa consiste OpenPubKey?
Sinteticamente, OpenPubkey consente agli utenti di associare in modo sicuro e accurato chiavi crittografiche (le classiche chiavi usate ad esempio nel contesto GPG) a utenti e carichi di lavoro, trasformando un OpenID Connect Identity Provider (IdP) in una Certificate Authority (CA).
Il prodotto di questa elaborazione è quello che viene definito essere un PK Token che può essere utilizzato ad esempio per firmare messaggi, e come racconta ZDNet, aziende come Google, Microsoft, Okta e OneLogin lo stanno già utilizzando in questo senso.
Ma la parte davvero rilevante di questa tecnologia è che di fatto si appoggia senza pesare su quanto già esistente: OpenPubKey è perfettamente compatibile con il protocollo OpenID Connect ed OAuth, e non richiede implementazioni particolari, pertanto risulta compatibile a sua volta con i provider OpenID conosciuti, vedi Google, Azure/Microsoft, Okta, OneLogin o Keycloak.
Il progetto è solo all’inizio, ma è spinto con forza anche da Docker, che vede in questo senso uno strumento ideale per firmare in maniera sicura i container e quindi irrobustire l’intero processo di produzione e distribuzione delle applicazioni mediante container.
Curiosamente, pur vivendo all’interno del proprio progetto GitHub, https://github.com/openpubkey/openpubkey, al momento il client OpenPubKey non supporta Github OpenID Provider, così come Azure OpenID Provider (OP), ma c’è da scommetterci, sarà solo questione di tempo.
Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.