Installation mit Owner-Consent
Authorization Code, PKCE S256, state, nonce und ein eigener RSA-Schlüssel pro Club-Installation.
13 Min. LesezeitPrivate App oder Partner-App
| Modell | Geeignet für | Installation |
|---|---|---|
| Private App | Ein Club verbindet sein eigenes Backend | Club Owner legt und installiert die App im Club-Portal |
| Partner-App | Eine freigegebene Anwendung wird bei mehreren Clubs installiert | Partner startet den Consent-Flow; jeder Club erhält einen eigenen Principal |
1. Transaktion im Partner-Backend vorbereiten
Erzeuge code_verifier, S256-code_challenge, state, nonce und ein RSA-Schlüsselpaar mit mindestens 2.048 Bit. Speichere Private Key, Verifier und Bindungswerte verschlüsselt mit kurzer Ablaufzeit. An Padel Lab geht nur der Public JWK.
3. Callback prüfen
Akzeptiere den Callback nur, wenn genau ein code und ein konstantzeitlich passender state vorliegen. Tausche den Code ausschließlich aus demselben Backend und derselben Umgebung aus.
4. Installationscode austauschen
Der Exchange ist kein Token-Endpunkt und liefert kein Access Token. Bei einem unklaren Transportausgang wiederholst du exakt denselben Body mit demselben Idempotency-Key.
POST /v1/club/oauth/installation-exchange
Content-Type: application/json
Idempotency-Key: 018f-install-exchange
{
"grant_type": "authorization_code",
"code": "plc_auth_code_0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",
"code_verifier": "plc-verifier-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdef",
"redirect_uri": "https://partner.example/callback"
}5. Antwort binden und sicher speichern
Vergleiche data.nonce mit der gespeicherten Nonce. Erst danach kombinierst du oauth_subject, credential_key_id und deinen lokalen Private Key. Übernimm api_base_url, oauth_issuer, oauth_token_url, oauth_audience und oauth_audience_scope aus der Antwort als verbindliche Umgebungskonfiguration.
Berechtigungen im Club
- Nur
CLUB_OWNERinstalliert produktiv, erweitert Scopes oder widerruft. CLUB_ADMINdarf Status, Nutzung und Audit-Logs lesen.- Dynamische Client-Registrierung ist deaktiviert.
- Jede Club-/Umgebungsinstallation ist ein eigener Machine User.