OAuth2 dla aplikacji zewnętrznych
OAuth2 z przepływem PKCE dla aplikacji zewnętrznych i integracji wielu użytkowników — przez realm Keycloak footage.one.
Kiedy OAuth2 zamiast tokena API?
| Scenariusz | Zalecenie |
|---|---|
| Osobisty agent (Claude Desktop, własne n8n) | Token API |
| Aplikacja zewnętrzna z wieloma użytkownikami końcowymi | OAuth2 / PKCE |
| Custom GPT z Actions | OAuth2 (wymagane przez OpenAI) |
Przepływ
footage.one używa Authorization Code Flow z PKCE — odpowiedniego dla klientów publicznych (SPA, mobile, desktop) i klientów poufnych (serwer).
1. Aplikacja otwiera URL autoryzacji z code_challenge
2. Użytkownik loguje się w Keycloak
3. Callback zwraca kod
4. Aplikacja wymienia kod + code_verifier na tokeny
5. Access token → nagłówek Authorization dla /api/asset/
Endpointy
footage.one używa Keycloak. Realm: footageone. Sama aplikacja Asset Manager działa pod adresem https://app.footage.one i uwierzytelnia się w tym samym realm.
- Issuer:
https://auth.footage.one/realms/footageone - OIDC Discovery:
https://auth.footage.one/realms/footageone/.well-known/openid-configuration— dostarcza wszystkie URL endpointów, obsługiwane zakresy i klucze podpisu w formie maszynowo czytelnej. - Authorize:
https://auth.footage.one/realms/footageone/protocol/openid-connect/auth - Token:
https://auth.footage.one/realms/footageone/protocol/openid-connect/token - Userinfo:
https://auth.footage.one/realms/footageone/protocol/openid-connect/userinfo
Dla większości bibliotek OAuth2 wystarczy issuer — endpointy są ładowane automatycznie przez discovery.
Zakresy
| Zakres | Znaczenie |
|---|---|
openid |
Wymagany — zgodność z OIDC |
profile |
Dane profilu użytkownika |
email |
Adres e-mail |
Zakresy specyficzne dla zasobów (assets:read, albums:write, …) nie są aktualnie zaimplementowane — access token odzwierciedla uprawnienia zalogowanego użytkownika.
Rejestracja klienta
Klienci OAuth są rejestrowane przez wsparcie footage.one — bez samodzielnej rejestracji. Wyślij prośbę z następującymi informacjami:
- Nazwa aplikacji zewnętrznej
- URI przekierowania (możliwe wiele)
- Klient publiczny czy poufny?
- Opis przypadku użycia
Następnie otrzymasz client_id (i client_secret dla klientów poufnych).
Następne kroki
- Tokeny API jako alternatywa
- OpenAI Custom GPT — konkretna konfiguracja OAuth2