api-mocks | ||
dex | ||
krakend | ||
ldap | ||
.env.dist | ||
.gitignore | ||
docker-compose.yml | ||
Makefile | ||
README.md |
KrakenD api gateway playground
etap2 (JWT)
Tutaj już będzie deko więcej roboty. Backend z etapu1, czyli prosty nie zabezpieczony serwer REST.
Do naszej infrastruktury dodajemy usługę Hydra, która jest dostawcą protokołu OAuth2 oraz OpenID aby zabezpieczyć nasze api za pomocą JWT.
W poprzednim przykładzie (etap1) KrakenD posłóżył nam do sekwencji zapytań do api i jednej odpowiedzi W tym etapie wprowadzimy nowy request zabezpieczony tokenem JWT:
sequenceDiagram
Użytkownik->>KrakenD: /jwt_access <br/>[Authorizaion: Bearer token]
KrakenD->>DEX: dex/keys
DEX-->>KrakenD: jwk
KrakenD-->>KrakenD: validator <br/>[issuer]
KrakenD->>Backend: /users/1.json
Backend-->>KrakenD: response_0
KrakenD->>+Użytkownik: Response
Dodatkowy scope groups
sequenceDiagram
Użytkownik->>KrakenD: /jwt_access_admin <br/>[Authorizaion: Bearer token]
KrakenD->>DEX: dex/keys
DEX-->>KrakenD: jwk
KrakenD-->>KrakenD: validator <br/>[issuer, groups: admins]
KrakenD->>Backend: /users/1.json
Backend-->>KrakenD: response_0
KrakenD->>+Użytkownik: Response
Request:
Flow jest typowo testowy, na razie nie ma revoke jwt, a samo pobranie tokenu należy zrobić za pomocą pliku Makefile
.
Przykład wykorzystania KrakenD do zabezpieczenia bakendu za pomocą JWT: