2020-10-10 13:38:01 +00:00
# KrakenD api gateway playground
2020-10-15 16:20:06 +00:00
## etap2 (JWT)
2020-10-10 13:38:01 +00:00
2020-10-15 16:20:06 +00:00
Tutaj już będzie deko więcej roboty. Backend z etapu1, czyli prosty nie zabezpieczony serwer REST.
2020-10-10 13:38:01 +00:00
2020-10-15 16:20:06 +00:00
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/ ).
2020-10-14 18:55:43 +00:00
2020-10-15 16:20:06 +00:00
W poprzednim przykładzie (etap1) KrakenD posłóżył nam do sekwencji zapytań do api i jednej odpowiedzi
2020-10-15 16:30:47 +00:00
W tym etapie wprowadzimy nowy request zabezpieczony tokenem JWT:
2020-10-14 18:55:43 +00:00
2020-10-15 16:20:06 +00:00
```mermaid
sequenceDiagram
2020-10-15 16:30:47 +00:00
Użytkownik->>KrakenD: /jwt_access < br / > [Authorizaion: Bearer token]
2020-10-15 21:08:04 +00:00
KrakenD->>DEX: dex/keys
DEX-->>KrakenD: jwk
2020-10-15 16:30:47 +00:00
KrakenD-->>KrakenD: validator < br / > [issuer]
KrakenD->>Backend: /users/1.json
2020-10-15 16:20:06 +00:00
Backend-->>KrakenD: response_0
KrakenD->>+Użytkownik: Response
```
2020-10-14 18:55:43 +00:00
2020-10-15 21:08:04 +00:00
Dodatkowy scope `groups`
```mermaid
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
```
2020-10-15 21:32:00 +00:00
Request:
2020-10-15 21:33:05 +00:00
http://127.0.0.1:5556/dex/auth?client_id=example-app& redirect_uri=http%3A%2F%2F127.0.0.1%3A5555%2Fcallback& response_type=code& scope=openid+profile+email+offline_access& state=I+wish+to+wash+my+irish+wristwatch
Request (dodatkowy scope `groups` dający access to strony admina):
http://127.0.0.1:5556/dex/auth?client_id=example-app& redirect_uri=http%3A%2F%2F127.0.0.1%3A5555%2Fcallback& response_type=code& scope=groups+openid+profile+email+offline_access& state=I+wish+to+wash+my+irish+wristwatch
2020-10-15 21:32:00 +00:00