javascript - Come implementare l'autenticazione SPA React con Keycloak e il flusso PKCE?
Questa è la prima volta che lavoro con Keycloak. Ho preparato un'istanza di Keycloak sulla mia macchina locale in cui posso creare realm, client, ecc.
Ho trovato esempi di utilizzo di React + Keycloak, ma nessuno di essi utilizzava il flusso PKCE.
Non so come configurare Keycloak e React. So solo che l'applicazione client deve essere in grado di generare un code verifier e un code challenge.
Sto cercando un esempio semplice di implementazione dell'autorizzazione utilizzando React e Keycloak che dovrebbe seguire il flusso OAuth 2.0 Authorization Code Grant con PKCE o consigli su cosa fare dalla parte di React e cosa dalla parte di Keycloak per implementare OAuth 2.0.
Quello che voglio fare:
- Configurazione di un'istanza Keycloak (pronta)
- Registrazione di un client pubblico in Keycloak (pronto)
- Implementazione di uno scenario di login semplice sul web (lo scenario segue OAuth 2.0 Authorization Code Grant con PKCE Flow)
Risposta n. 1
(Vecchia interfaccia Keycloak)
Vai al tuo Regno, e poi al cliente e seleziona il tuo cliente:
- Imposta
Tipo di accessosupubblico - Abilitato
Flusso Standard Abilitato - Aggiungi gli appropriati
Valid redirect URIseWeb origins - Vai su
Impostazioni avanzatee nel campoMetodo di Sfida del Codice per la Prova di Scambio di CodiceselezionaS256, quindi clicca suSalva.
(Nuova interfaccia Keycloak)
Seleziona il tuo Regno, poi vai nel client e clicca nel tuo client:
- Imposta
Autenticazione clientsuOFF - In
Flusso di autenticazioneselezionaFlusso standard - Aggiungi gli appropriati
Valid redirect URIseWeb origins - Fai clic sul pulsante
Salva - Vai alla scheda
Avanzate - Vai alla sezione
Impostazioni Avanzatee nel campoMetodo di Sfida del Codice per il Cambiamento della Chiave di VerificaselezionaS256, quindi clicca suSalva.
Sull'adattatore della tua applicazione React aggiungi "enable-pkce": true.
Dalla documentazione di Keycloak:
L'adattatore KeycloakInstalled supporta il meccanismo PKCE [RFC 7636] per fornire una protezione aggiuntiva durante lo scambio di codici per token nel protocollo OIDC. PKCE può essere abilitato con l'impostazione "enable-pkce": true nella configurazione dell'adattatore. Abilitare PKCE è fortemente raccomandato per evitare attacchi di iniezione di codici e di ripetizione dei codici.

