Accesso singolo (SSO) OAuth 2.0 JWT
La sicurezza informatica è diventata un problema importante durante la pandemia, poiché i lavoratori da remoto hanno offerto ampie nuove opportunità di attacchi. Di conseguenza, le aziende sono più preoccupate che mai.
IAM servizi come SSO, MFA, ecc.
In questo documento, ti presenteremo uno di questi protocolli SSO OAuth 2.0, come funziona, a cosa serve, come entra in gioco JWT, come può la tua organizzazione trarre vantaggio dall'utilizzo di OAuth 2.0 e JWT come parte del tuo IAM .
Cos'è OAuth 2.0?
OAuth 2.0 (Open Authorization) è un framework di autorizzazione che consente alle applicazioni di ottenere un accesso limitato agli account utente su un servizio HTTP. Delega l'autenticazione utente al servizio che ospita l'account utente e autorizza le applicazioni di terze parti ad accedere all'account utente.
OAuth 2.0 fornisce flussi di autorizzazione per applicazioni web e desktop e dispositivi mobili.
Questa pagina contiene informazioni dettagliate sugli endpoint OAuth 2.0 che miniOrange espone sui suoi server di autorizzazione.
OpenID Connect (OIDC) è un sottile strato di identità in cima al protocollo OAuth 2.0 per la gestione dell'autenticazione degli utenti. OAuth 2.0 è il protocollo standard per l'autorizzazione e OIDC il protocollo per l'autenticazione degli utenti. Insieme, questi due protocolli consentono di accedere a più app e siti Web in modo sicuro, senza dover effettuare l'accesso più volte, tramite Single Sign-On (SSO).
Per saperne di più sul protocollo OpenID Connect visita questa pagina.
Che cosa è JWT?
JWT (JSON Web Token) è uno standard aperto (RFC 7519) che definisce un modo compatto e autonomo per trasmettere in modo sicuro informazioni tra le parti come un oggetto JSON. Queste informazioni possono essere verificate e considerate attendibili perché sono firmate digitalmente utilizzando un segreto (con l'algoritmo HMAC) o una coppia di chiavi pubblica/privata utilizzando RSA o ECDSA.
Scopriamo come funziona OAuth 2.0
In questo scenario, puoi ottenere Single Sign On (SSO) nella tua applicazione web utilizzando miniOrange IdP con protocollo OAuth 2.0 / OpenID Connect (OIDC). La tua applicazione web agirà come un client OAuth 2.0.
Flusso di lavoro SSO OAuth 2.0
- Un utente sconosciuto tenta di accedere a WordPress (ad esempio, alla tua applicazione web).
- WordPress invia una richiesta di autorizzazione a miniOrange (OAuth Provider / OpenID Connect Server).
- Il server OAuth miniOrange richiede all'utente di accedere e autorizzare l'applicazione.
- L'utente viene reindirizzato alla pagina di login dove potrà effettuare l'accesso.
- miniOrange autentica l'utente e invia il codice di autorizzazione a WordPress.
- WordPress invia il proprio client_id, client_secret con il codice di autorizzazione ricevuto da miniOrange.
- miniOrange autentica la richiesta e invia il token di accesso e il JWT a WordPress.
- WordPress utilizza il token di accesso per accedere alle risorse sul server delle risorse e convalida il JWT (JSON Web Token).
- Utilizzando il token di accesso, il token ID (JWT) e le informazioni utente, miniOrange consente agli utenti di accedere alle funzionalità protette.
- Ora, l'utente è autenticato e ha effettuato l'accesso. Quindi, l'utente ottiene l'accesso alle risorse senza immettere alcuna credenziale.
Validazione del JWT
JWT (JSON Web Token, solitamente denominato id_token) contiene i dati di identità dell'utente. Viene utilizzato dall'applicazione client per ottenere informazioni sull'utente come il nome, l'indirizzo e-mail, ecc. Sul tuo endpoint di Callback, puoi leggere e analizzare il token JWT (informazioni utente). Struttura di JSON Web Token (JWT):
JWT è composto da tre parti separate da punti (.)
(ad esempio - xxxx.yyyyyyyyyyyy.zzzzzz), che sono:
- Intestazione: Contiene il nome dell'algoritmo di firma utilizzato per firmare il payload.
- Carico utile: Contiene attributi utente come ID e-mail, nome, ecc.
- Firma: Il valore della firma del payload.
Una volta che hai le informazioni utente JSON, puoi avviare il tuo login passando le informazioni email/username alla tua funzionalità di autenticazione locale.
JWT contiene i seguenti attributi JSON:
| Settore |
Descrizione |
| iss |
URI HTTPS che indica l'emittente |
| sotto |
identificativo dell'utente presso l'emittente |
| aud |
client_id del client richiedente |
| nonce |
il valore del parametro nonce ricevuto dal client |
| exp |
tempo di scadenza di questo token |
| iat |
L'ora in cui è stato emesso questo token |
| tempo di autenticazione |
ora in cui è avvenuta l'autenticazione |
| a_hash |
la prima metà di un hash del token di accesso |
Perché dovresti usare OAuth 2.0?
miniOrange può aiutarti ad abilitare SSO utilizzando il protocollo OAuth 2.0 per i seguenti scenari:
- Se la tua organizzazione sta cercando un sistema di autorizzazione di autenticazione ma non ha tempo e risorse per implementarlo da zero.
- Se la tua organizzazione desidera passare a un metodo di autenticazione più sicuro, ad esempio, autenticazione basata su token.
- Se la tua organizzazione sta cercando di dare un esperienza di accesso senza interruzioni agli utenti, risparmiando loro la seccatura di ricordare più serie di nomi utente e password.
- Se vuoi che i tuoi utenti si autentichino tramite applicazioni più affidabili come Google, Facebook, ecc. che garantiscono l'autenticità dell'identità degli utenti.
Cosa possiamo fare per voi?
Se desideri migliorare la tua attività e ridurre l'onere di dover gestire più credenziali per un account che utilizza più servizi o vuoi semplicemente conoscerci meglio, saremo lieti di sentirti.
Riferimenti esterni