Keycloak offentlig klient og autorisation
Så vidt jeg har forstået, har du dine frontend- og backend-applikationer adskilt. Hvis din frontend er en statisk web-app og ikke betjenes af den samme backend-applikation (server), og din backend er en simpel REST API - så ville du have to Keycloak-klienter konfigureret:
public
klient til frontend-appen. Det ville være ansvarligt for at erhverve JWT-tokens.bearer-only
klient, som ville blive knyttet til din backend-applikation.
For at aktivere autorisation skal du oprette roller (enten realm- eller klientomfang, start på realm-niveau, da det er lettere at forstå). Hver bruger vil derefter blive tildelt en rolle/er i Keycloak admin UI. Baseret på dette bør du konfigurere din keycloak-adapterkonfiguration (på backend).
Alt taget i betragtning, for at tale med din REST API, vil du vedhæfte et JWT-token til hver HTTP-anmodning i autorisationsoverskriften. Afhængigt af din frontend-ramme kan du bruge en af disse:
- Keycloak js-adapter
- Andre bindinger (vinklet, reagere)
P.S. Til debugging har jeg lige skrevet et CLI-værktøj kaldet brauzie, der ville hjælpe dig med at hente og analysere dine JWT-tokens (omfang, roller osv.). Det kan bruges til både offentlige og fortrolige kunder. Du kan lige så godt bruge Postman og https://jwt.io
HTH :)