30 lines
1.2 KiB
Markdown
30 lines
1.2 KiB
Markdown
# 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](https://www.ory.sh/hydra/docs/), która jest dostawcą protokołu **OAuth2** oraz **OpenID** aby zabezpieczyć nasze api za pomocą [JWT](https://jwt.io/).
|
|
|
|
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:
|
|
|
|
```mermaid
|
|
sequenceDiagram
|
|
Użytkownik->>KrakenD: /jwt_access <br/>[Authorizaion: Bearer token]
|
|
KrakenD->>Hydra: .well-known/jwks.json
|
|
Hydra-->>KrakenD: jwk
|
|
KrakenD-->>KrakenD: validator <br/>[issuer]
|
|
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:
|
|
|
|
[](https://asciinema.org/a/Py3dbR2m5Jt3FdhGI7eINtpdu)
|
|
|