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:
|
||
|
||
[![asciicast](https://asciinema.org/a/Py3dbR2m5Jt3FdhGI7eINtpdu.png)](https://asciinema.org/a/Py3dbR2m5Jt3FdhGI7eINtpdu)
|
||
|