javascript - Ako implementovať autentifikáciu React SPA pomocou Keycloak a PKCE flow?
Toto je môj prvý raz, čo pracujem s Keycloakom. Pripravil som si inštanciu Keycloak na svojom lokálnom počítači, v ktorej môžem vytvárať realmy, klientov atď.
Našiel som príklady použitia React + Keycloak, ale žiadny z nich nepoužíval PKCE tok.
Neviem, ako nakonfigurovať Keycloak a React. Viem len, že klientská aplikácia musí byť schopná vygenerovať overovateľný kód a výzvu kódu.
Hľadám jednoduchý príklad implementácie autorizácie pomocou Reactu a Keycloak, ktorý by mal nasledovať OAuth 2.0 Authorization Code Grant s PKCE flow, alebo tipy, čo robiť na strane Reactu a čo na strane Keycloaku na implementáciu OAuth 2.0.
Čo chcem robiť:
- Nastavenie inštancie Keycloak (pripravené)
- Registrácia verejného klienta v Keycloacku (hotovo)
- Implementácia jednoduchého scenára prihlásenia na webe (scenár nasleduje OAuth 2.0 Authorization Code Grant s PKCE flow)
Odpoveď č. 1
(Staré používateľské rozhranie Keycloak)
Prejdite do svojho Kráľovstva, potom do klienta a vyberte svojho klienta:
- Nastavte
Typ prístupunaverejný - Povolené
Štandardný tok povolený - Pridajte príslušné
Platné presmerovacie URIaWebové pôvody - Prejdite do
Rozšírené nastaveniaa v poliMetóda výzvy kódu pre výmenu kľúča dôkazuvyberteS256a potom kliknite naUložiť.
(Nové používateľské rozhranie Keycloak)
Vyberte svoj ríšu a potom prejdite do klienta a kliknite vo svojom klientovi:
- Nastavte
Overenie klientanaVYP - V
Authentication FlowvyberteStandard flow - Pridajte príslušné
Platné presmerovacie URIaWebové pôvody - Kliknite na tlačidlo
Uložiť - Prejdite na kartu
Rozšírené - Prejdite na sekciu
Pokročilé nastaveniaa v poliProof Key for Code Exchange Code Challenge MethodvyberteS256, a potom kliknite naUložiť.
Na adaptéry vašej React aplikácie pridajte "enable-pkce": true.
Z dokumentácie Keycloak:
Adaptér KeycloakInstalled podporuje mechanizmus PKCE [RFC 7636], ktorý poskytuje dodatočnú ochranu počas výmeny kódu za token v protokole OIDC. PKCE je možné povoliť nastavením "enable-pkce": true v konfigurácii adaptéra. Povolenie PKCE je veľmi odporúčané, aby sa predišlo útokom typu code injection a code replay.

