IdentityProxy to lekki serwer proxy uwierzytelniania, który działa jako warstwa pośrednicząca między aplikacjami a dostawcami tożsamości. Obsługuje różne protokoły OAuth2/OIDC (Azure AD, Google, GitHub) i zabezpiecza dowolną aplikację webową bez konieczności modyfikacji jej kodu. Automatycznie dodaje nagłówki HTTP z informacjami o użytkowniku do żądań kierowanych do aplikacji backendowej oraz zarządza sesjami i tokenami dostępu. Uruchamiany jako kontener Docker i konfigurowany poprzez zmienne środowiskowe, stanowi idealne rozwiązanie dla aplikacji wymagających integracji z zewnętrznymi dostawcami tożsamości bez ingerencji w kod źródłowy.

Podstawowa konfiguracja Link to heading

Poniżej znajduje się przykładowa konfiguracja IdentityProxy z wykorzystaniem Microsoft jako dostawcy tożsamości:

docker run -p 8080:8080 -e EXTERNAL_URL='http://localhost:8080/' -e IDENTITY_AUTHORITY='https://login.microsoftonline.com/svrooij.io/v2.0/' ghcr.io/svrooij/identityproxy:latest

Dokumentacja API Link to heading

IdentityProxy udostępnia interaktywną dokumentację API dostępną pod adresem http://localhost:8080/scalar/, która umożliwia przeglądanie i testowanie dostępnych endpointów bezpośrednio z przeglądarki. Specyfikacja OpenAPI jest dostępna w formacie JSON pod adresem http://localhost:8080/openapi/v1.json, co pozwala na automatyczne generowanie klientów API lub integrację z narzędziami takimi jak Postman.

Generowanie tokenów JWT Link to heading

IdentityProxy oferuje endpoint http://localhost:8080/api/identity/token służący do generowania tokenów JWT dla celów testowych lub integracji z aplikacjami. Pozwala to na tworzenie niestandardowych tokenów z określonymi claims, co jest szczególnie przydatne podczas testowania zachowania aplikacji dla różnych użytkowników i uprawnień. Przykładowe żądanie:

curl -X POST http://localhost:8080/api/identity/token \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
  "aud": "62eb2412-f410-4e23-95e7-6a91146bc32c",
  "sub": "99f0cbaa-b3bb-4a77-81a5-e8d17b2232ec",
  "expires_in": 3600,
  "additional_claim_1": "value1",
  "additional_claim_2": "value2"
}'

Podsumowanie Link to heading

IdentityProxy to potężne narzędzie do zarządzania uwierzytelnianiem i autoryzacją w aplikacjach webowych, oferujące elastyczność i łatwość integracji z różnymi dostawcami tożsamości. Dzięki prostocie konfiguracji i bogatym funkcjom, takim jak generowanie tokenów JWT i interaktywna dokumentacja API, stanowi doskonałe rozwiązanie dla deweloperów poszukujących efektywnych metod zabezpieczania swoich aplikacji.