readme updated
This commit is contained in:
parent
eb7054d533
commit
342ab14cb2
49
README.md
49
README.md
@ -5,27 +5,31 @@ Jednoduchy REST wrapper nad puvodni logikou `AdfsAuthMediator`.
|
|||||||
## Co dela
|
## Co dela
|
||||||
|
|
||||||
- nacte konfiguraci z YAML
|
- nacte konfiguraci z YAML
|
||||||
- vytvori `client_assertion` stejne jako puvodni Java callout
|
- vytvori `client_assertion` (JWT) podepsany privatnim klicem
|
||||||
- zavola ADFS token endpoint
|
- zavola ADFS token endpoint pomoci `private_key_jwt` autentizace
|
||||||
|
- slouzi jako transparentni proxy: prepisuje prichozi pozadavky na backend a pridava `Authorization: Bearer <token>`
|
||||||
|
- automaticky rotuje `clientIds` pri obdrzeni HTTP 429 (throttling) od backendu
|
||||||
- drzi access token v pametove cache, dokud nevyprsi
|
- drzi access token v pametove cache, dokud nevyprsi
|
||||||
- vystavi endpoint `GET /token` a `GET /health`
|
- vystavi endpointy `/process`, `/health`
|
||||||
|
|
||||||
## Konfigurace
|
## Konfigurace
|
||||||
|
|
||||||
Konfigurace je v `config/config.yaml` nebo ve classpath `config.yaml`.
|
Konfigurace je v `config/config.yaml` nebo ve classpath `config.yaml`.
|
||||||
|
|
||||||
Klice v sekci `adfs` zachovavaji stejne nazvy jako puvodni policy:
|
Sekce `adfs`:
|
||||||
|
|
||||||
- `tokenUrl`
|
- `tokenUrl`: URL ADFS token endpointu
|
||||||
- `audience`
|
- `audience`: Audience pro JWT (vetsinou stejne jako tokenUrl)
|
||||||
- `resource`
|
- `resource`: Identifier resourse (napr. `urn:kamma:api`)
|
||||||
- `clientId`
|
- `clientIds`: Seznam povolenych Client ID pro rotaci
|
||||||
- `certificate`
|
- `certificate`: Base64 encoded X509 certifikat (pro ADFS)
|
||||||
- `privateKey`
|
- `privateKey`: Base64 encoded private key (pro podpis JWT)
|
||||||
- `proxyHost`
|
- `proxyHost`, `proxyPort`, `proxyUser`, `proxyPassword`: Volitelna proxy pro volani ADFS
|
||||||
- `proxyPort`
|
|
||||||
- `proxyUser`
|
Ostatni:
|
||||||
- `proxyPassword`
|
|
||||||
|
- `backendUrl`: Cilkova URL backendu, kam se proxy forwarduje
|
||||||
|
- `server.port`: Port, na kterem microservice posloucha (default 8080)
|
||||||
|
|
||||||
## Spusteni
|
## Spusteni
|
||||||
|
|
||||||
@ -36,7 +40,20 @@ java -jar target/adfs-auth-ms-1.0-SNAPSHOT.jar
|
|||||||
|
|
||||||
## API
|
## API
|
||||||
|
|
||||||
|
- `GET /health` - Kontrola stavu sluzby
|
||||||
|
- `ANY /process/**` - Proxy endpoint, ktery prida ADFS token a forwarduje na `backendUrl`
|
||||||
|
|
||||||
|
### Ukázka volání
|
||||||
|
|
||||||
|
Pokud je `backendUrl` nastaven na `https://calc.kamma.cz/add`, volání přes proxy vypadá takto:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl http://localhost:8080/health
|
# Volání sečtení x=10 a y=20 přes lokální proxy
|
||||||
curl http://localhost:8080/token
|
curl "http://localhost:8080/process/add?x=10&y=20"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Proxy automaticky:
|
||||||
|
1. Získá platný token z ADFS (pomocí jedné z nakonfigurovaných identit).
|
||||||
|
2. Přidá hlavičku `Authorization: Bearer <token>`.
|
||||||
|
3. Přepošle dotaz na backend.
|
||||||
|
4. Vrátí odpověď z backendu zpět klientovi.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user