OAuth2 für Drittapps
OAuth2 mit PKCE-Flow für Drittapps und Multi-User-Integrationen — über den footage.one Keycloak-Realm.
Wann OAuth2 statt API-Token?
| Szenario | Empfehlung |
|---|---|
| Persönlicher Agent (Claude Desktop, eigenes n8n) | API-Token |
| Drittapp mit mehreren Endnutzern | OAuth2 / PKCE |
| Custom GPT mit Actions | OAuth2 (von OpenAI gefordert) |
Flow
footage.one nutzt Authorization Code Flow mit PKCE — passend für Public Clients (SPAs, Mobile, Desktop) und Confidential Clients (Server).
1. App öffnet Auth-URL mit code_challenge
2. User loggt sich bei Keycloak ein
3. Callback liefert Code zurück
4. App tauscht Code + code_verifier gegen Tokens
5. Access-Token → Authorization-Header für /api/asset/
Endpoints
footage.one nutzt Keycloak. Realm: footageone. Die Asset-Manager-App selbst läuft unter https://app.footage.one und authentifiziert sich gegen denselben Realm.
- Issuer:
https://auth.footage.one/realms/footageone - OIDC Discovery:
https://auth.footage.one/realms/footageone/.well-known/openid-configuration— liefert alle Endpoint-URLs, unterstützte Scopes und Signatur-Keys maschinenlesbar. - 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
Für die meisten OAuth2-Bibliotheken reicht der Issuer — Endpoints werden automatisch per Discovery geladen.
Scopes
| Scope | Bedeutung |
|---|---|
openid |
Pflicht — OIDC-Konformität |
profile |
User-Profil-Daten |
email |
E-Mail-Adresse |
Resource-spezifische Scopes (assets:read, albums:write, …) sind aktuell nicht implementiert — der Access-Token spiegelt die Rechte des eingeloggten Users.
Client-Registrierung
OAuth-Clients werden über den footage.one-Support registriert — kein Self-Service. Anfrage mit folgenden Infos:
- Name der Drittapp
- Redirect-URIs (mehrere möglich)
- Public oder Confidential Client?
- Beschreibung des Use-Cases
Danach erhältst du client_id (und client_secret bei Confidential Clients).
Weiter
- API-Tokens als Alternative
- OpenAI Custom GPT — konkretes OAuth2-Setup