44 lines
1.7 KiB
Markdown
44 lines
1.7 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->>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`
|
||
|
||
```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
|
||
```
|
||
|
||
Request:
|
||
|
||
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
|
||
|