readme updated

This commit is contained in:
Radek Davidek 2026-06-30 17:48:22 +02:00
parent eb7054d533
commit 342ab14cb2

View File

@ -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.