From 342ab14cb21bc9e9db79cb4a164a00c89054c220 Mon Sep 17 00:00:00 2001 From: Radek Davidek Date: Tue, 30 Jun 2026 17:48:22 +0200 Subject: [PATCH] readme updated --- README.md | 49 +++++++++++++++++++++++++++++++++---------------- 1 file changed, 33 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 4777761..469e9e0 100644 --- a/README.md +++ b/README.md @@ -5,27 +5,31 @@ Jednoduchy REST wrapper nad puvodni logikou `AdfsAuthMediator`. ## Co dela - nacte konfiguraci z YAML -- vytvori `client_assertion` stejne jako puvodni Java callout -- zavola ADFS token endpoint +- vytvori `client_assertion` (JWT) podepsany privatnim klicem +- zavola ADFS token endpoint pomoci `private_key_jwt` autentizace +- slouzi jako transparentni proxy: prepisuje prichozi pozadavky na backend a pridava `Authorization: Bearer ` +- automaticky rotuje `clientIds` pri obdrzeni HTTP 429 (throttling) od backendu - drzi access token v pametove cache, dokud nevyprsi -- vystavi endpoint `GET /token` a `GET /health` +- vystavi endpointy `/process`, `/health` ## Konfigurace Konfigurace je v `config/config.yaml` nebo ve classpath `config.yaml`. -Klice v sekci `adfs` zachovavaji stejne nazvy jako puvodni policy: +Sekce `adfs`: -- `tokenUrl` -- `audience` -- `resource` -- `clientId` -- `certificate` -- `privateKey` -- `proxyHost` -- `proxyPort` -- `proxyUser` -- `proxyPassword` +- `tokenUrl`: URL ADFS token endpointu +- `audience`: Audience pro JWT (vetsinou stejne jako tokenUrl) +- `resource`: Identifier resourse (napr. `urn:kamma:api`) +- `clientIds`: Seznam povolenych Client ID pro rotaci +- `certificate`: Base64 encoded X509 certifikat (pro ADFS) +- `privateKey`: Base64 encoded private key (pro podpis JWT) +- `proxyHost`, `proxyPort`, `proxyUser`, `proxyPassword`: Volitelna proxy pro volani ADFS + +Ostatni: + +- `backendUrl`: Cilkova URL backendu, kam se proxy forwarduje +- `server.port`: Port, na kterem microservice posloucha (default 8080) ## Spusteni @@ -36,7 +40,20 @@ java -jar target/adfs-auth-ms-1.0-SNAPSHOT.jar ## 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 -curl http://localhost:8080/health -curl http://localhost:8080/token +# Volání sečtení x=10 a y=20 přes lokální proxy +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 `. +3. Přepošle dotaz na backend. +4. Vrátí odpověď z backendu zpět klientovi.