Configurazione client Keycloak con Signed JWT
Table of Contents:
- Introduzione
- Come aggiungere un client OpenID Connect a Keycloak
- Configurazione delle impostazioni iniziali del client
- Configurazione dei flussi di autorizzazione
- Aggiunta dei token scopes e dei claims
- Generazione del materiale chiave
- Estrazione della chiave privata
- Preparazione del file PEM per l'autenticazione JWT
- Configurazione del client in Stigma e Watcher
- Conclusioni
Introduzione
Nel seguente articolo, ti mostrerò come aggiungere un client OpenID Connect a Keycloak utilizzando un metodo di autenticazione basato su JSON Web Token (JWT). Questo processo ti consentirà di creare un'API sicura utilizzando Keycloak come fornitore di identità. Seguirò passo dopo passo il processo di configurazione, inclusa la generazione del materiale chiave e l'estrazione della chiave privata. Alla fine dell'articolo, sarai in grado di utilizzare il client Keycloak con successo per autenticare richieste JWT. Pronto per iniziare? Continua a leggere!
Come aggiungere un client OpenID Connect a Keycloak
Per iniziare, dovremo accedere alla console di amministrazione di Keycloak. Una volta effettuato l'accesso, selezioniamo il realm corretto e passiamo alla sezione "Clients". Qui creeremo un nuovo client impostando un ID significativo e scegliendo il protocollo OpenID Connect. Salviamo le impostazioni e procediamo alla configurazione iniziale del client.
Configurazione delle impostazioni iniziali del client
Nella schermata delle impostazioni iniziali del client, impostiamo il tipo di accesso su "confidential" per abilitare determinate funzionalità. Disabilitiamo i flussi OAuth che consentirebbero l'autenticazione degli utenti e abilitiamo il flusso OAuth che permette l'utilizzo di service accounts tramite il grant "client credentials". Salviamo le impostazioni e proseguiamo all'aggiunta dei token scopes e dei claims.
Aggiunta dei token scopes e dei claims
Assicuriamoci che i token emessi per questo client includano gli scopes adeguati per il nostro servizio. In questo caso, è necessario aggiungere gli scopes "stigma" e "watcher". Inoltre, vogliamo che i token includano anche il claim "roles". Verifichiamo le impostazioni e proseguiamo alla generazione del materiale chiave.
Generazione del materiale chiave
Per autenticarci utilizzando la chiave pubblica crittografica, è necessario che Keycloak conosca la nostra chiave pubblica o quella del client. Abbiamo la possibilità di importare una chiave pubblica esistente o generare del nuovo materiale chiave. Nel nostro caso, genereremo nuovo materiale chiave e sceglieremo il formato PKCS12 come archivio. Salviamo l'archivio PKCS12 nel nostro disco locale.
Estrazione della chiave privata
Poiché molti client, come Stigma e Watcher, richiedono una chiave privata PEM, è necessario estrarre la chiave privata dall'archivio PKCS12. Possiamo utilizzare gli strumenti OpenSSL per eseguire questa operazione. Estraiamo la chiave privata dal file PKCS12 e proteggiamola con una passphrase per la crittografia. Adesso abbiamo un file PEM contenente la chiave privata pronta per essere utilizzata per l'autenticazione con JWT.
Continua a leggere l'articolo per scoprire come configurare il client nei dettagli in Stigma e Watcher e per ottenere ulteriori informazioni sul processo di autenticazione con i token JWT. Alla fine, saprai esattamente come utilizzare Keycloak per autenticare le tue richieste JWT in modo sicuro e affidabile.
Conclusioni
In questo articolo, abbiamo esplorato il processo di aggiunta di un client OpenID Connect a Keycloak utilizzando il metodo di autenticazione basato su JSON Web Token (JWT). Abbiamo seguito passo dopo passo la configurazione iniziale del client, la generazione del materiale chiave e l'estrazione della chiave privata. Ora hai tutte le conoscenze necessarie per utilizzare Keycloak con successo come fornitore di identità e autenticare richieste JWT. Non vediamo l'ora di vedere gli incredibili risultati che potrai ottenere utilizzando Keycloak e JWT per garantire la sicurezza delle tue API. Buona fortuna!