GallerEDV AuthAnmelden
FÜR ENTWICKLER

Eine Anmeldung.
Weniger Daten.

GallerEDV Auth unterstützt Websites mit eigenem Backend über OAuth 2.0 und OpenID Connect. Registriere eine Anwendung im Entwicklerbereich. Vor Freigabe kann nur das Eigentümerkonto testen.

1. Konfiguration laden

GET https://myaccount.galler-edv.eu/.well-known/openid-configuration

Issuer: https://myaccount.galler-edv.eu. Signaturen: RS256. Lade die öffentlichen Schlüssel über die dort angegebene JWKS-URL und berücksichtige das kid bei Schlüsselrotation.

2. Anmeldung starten

Erzeuge auf deinem Backend einen zufälligen state, eine nonce (je 16–255 Zeichen) und einen PKCE-Verifier mit 43–128 erlaubten Zeichen. Speichere sie in deiner geschützten Serversitzung. Die Challenge ist Base64url ohne Padding des SHA-256-Hashes des Verifiers.

GET /oauth/authorize
 ?response_type=code
 &client_id=DEINE_CLIENT_ID
 &redirect_uri=https%3A%2F%2Fdeine-domain.de%2Fauth%2Fcallback
 &scope=openid%20profile
 &state=ZUFÄLLIGER_STATE
 &nonce=ZUFÄLLIGE_NONCE
 &code_challenge=BASE64URL_SHA256_VERIFIER
 &code_challenge_method=S256

Redirect-URIs müssen exakt registriert sein. Unterstützt werden ausschließlich HTTPS-Web-Backends mit geheimem Client-Secret, Query-Antworten und PKCE S256. Optional: prompt=login, prompt=consent und max_age. Bei prompt=none wird eine notwendige Interaktion als Fehler zurückgegeben.

3. Code serverseitig austauschen

Prüfe am Callback den state gegen deine Serversitzung und den zurückgegebenen iss gegen den erwarteten Issuer. Behandle error ausdrücklich. Ein Code gilt 60 Sekunden und ist nur einmal verwendbar.

POST /oauth/token
Authorization: Basic BASE64(URLENCODE(CLIENT_ID):URLENCODE(CLIENT_SECRET))
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code
&code=ERHALTENER_CODE
&redirect_uri=https%3A%2F%2Fdeine-domain.de%2Fauth%2Fcallback
&code_verifier=DEIN_GESPEICHERTER_VERIFIER

Die Antwort enthält access_token, id_token, token_type, expires_in und den tatsächlich erlaubten scope. Beide Tokens gelten fünf Minuten. Secrets und Tokens gehören ausschließlich auf dein Backend.

4. Identität prüfen

Validiere am ID-Token Signatur, Algorithmus RS256, iss, aud, exp und deine gespeicherte nonce. Verwende iss und sub gemeinsam als Kontokennung. Benutzernamen oder E-Mails sind keine stabilen Kontoschlüssel.

Die Kennung ist pro Nutzer und Redirect-Host/Sektor stabil. Ein Wechsel des Hosts ändert die Kennung und muss als neue Anwendung geplant werden. Es gibt keine automatische Verknüpfung bestehender Konten.

5. Freigegebene Daten abrufen

GET /oauth/userinfo
Authorization: Bearer ACCESS_TOKEN

openid liefert ausschließlich sub. Bei profile können Nutzer name, preferred_username und picture einzeln erlauben. email liefert nur nach Freigabe und Bestätigung email und email_verified=true. Alle zusätzlichen Felder können fehlen. picture ist eine widerrufbare Bild-URL; speichere sie nicht als öffentliche Kontokennung.

6. Längerfristiger Zugriff

Registriere und begründe offline_access. Nur nach ausdrücklicher Zustimmung wird ein Refresh-Token ausgegeben.

POST /oauth/token
Authorization: Basic …
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token&refresh_token=AKTUELLES_REFRESH_TOKEN

Ersetze das gespeicherte Refresh-Token nach jeder Antwort atomar. Vermeide parallele Refresh-Anfragen. Wiederverwendung sperrt die ganze Token-Familie. Maximale Gesamtdauer: 30 Tage; nach sieben Tagen ohne Erneuerung verfällt der Zugriff. Bei invalid_grant ist eine neue Anmeldung erforderlich.

7. Widerruf und Abmeldung

POST /oauth/revoke
Authorization: Basic …
Content-Type: application/x-www-form-urlencoded

token=ACCESS_ODER_REFRESH_TOKEN

Der Widerruf beendet die Token-Familie. Beende zusätzlich deine eigene lokale Sitzung. Nutzer können in GallerEDV Auth Datenfreigaben reduzieren und Verbindungen trennen; behandle HTTP 401 entsprechend. Gemeinsame Abmeldung aller externen Sitzungen, öffentliche Browser-Clients, mobile Apps, Client-Credentials und dynamische Clientregistrierung werden in Version 1 nicht angeboten.