1.9 KiB
1.9 KiB
adfs-auth-ms
Jednoduchy REST wrapper nad puvodni logikou AdfsAuthMediator.
Co dela
- nacte konfiguraci z YAML
- vytvori
client_assertion(JWT) podepsany privatnim klicem - zavola ADFS token endpoint pomoci
private_key_jwtautentizace - slouzi jako transparentni proxy: prepisuje prichozi pozadavky na backend a pridava
Authorization: Bearer <token> - automaticky rotuje
clientIdspri obdrzeni HTTP 429 (throttling) od backendu - drzi access token v pametove cache, dokud nevyprsi
- vystavi endpointy
/process,/health
Konfigurace
Konfigurace je v config/config.yaml nebo ve classpath config.yaml.
Sekce adfs:
tokenUrl: URL ADFS token endpointuaudience: Audience pro JWT (vetsinou stejne jako tokenUrl)resource: Identifier resourse (napr.urn:kamma:api)clientIds: Seznam povolenych Client ID pro rotacicertificate: 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 forwardujeserver.port: Port, na kterem microservice posloucha (default 8080)
Spusteni
mvn package
java -jar target/adfs-auth-ms-1.0-SNAPSHOT.jar
API
GET /health- Kontrola stavu sluzbyANY /process/**- Proxy endpoint, ktery prida ADFS token a forwarduje nabackendUrl
Ukázka volání
Pokud je backendUrl nastaven na https://calc.kamma.cz/add, volání přes proxy vypadá takto:
# 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:
- Získá platný token z ADFS (pomocí jedné z nakonfigurovaných identit).
- Přidá hlavičku
Authorization: Bearer <token>. - Přepošle dotaz na backend.
- Vrátí odpověď z backendu zpět klientovi.