krakend/README.md

1.5 KiB

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

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:

asciicast