OAuth Übersicht
OAuth Authentication
Abschnitt betitelt „OAuth Authentication“OAuth Auth Cloudflare unterstützt mehrere OAuth-Provider für die Benutzerauthentifizierung.
Unterstützte Provider
Abschnitt betitelt „Unterstützte Provider“- GitHub OAuth: GitHub-Konten zur Anmeldung verwenden
- Google OAuth: Google-Konten zur Anmeldung verwenden
- Custom OAuth: Jeden OAuth 2.0-kompatiblen Provider integrieren
OAuth 2.0 Flow
Abschnitt betitelt „OAuth 2.0 Flow“Das Projekt implementiert den Authorization Code Grant Flow mit PKCE (Proof Key for Code Exchange) für zusätzliche Sicherheit.
Flow-Diagramm
Abschnitt betitelt „Flow-Diagramm“1. User → Frontend: Klickt auf "Login"2. Frontend → Auth Server: Initiiert OAuth-Flow3. Auth Server → OAuth Provider: Redirect zu Login-Seite4. User → OAuth Provider: Authentifizierung5. OAuth Provider → Auth Server: Callback mit Authorization Code6. Auth Server → OAuth Provider: Tauscht Code gegen Access Token7. Auth Server → User DB: Erstellt/aktualisiert Benutzerprofil8. Auth Server → Frontend: Redirect mit JWT Token9. Frontend: Speichert Token, zeigt geschützten InhaltSicherheitsfeatures
Abschnitt betitelt „Sicherheitsfeatures“PKCE (Proof Key for Code Exchange)
Abschnitt betitelt „PKCE (Proof Key for Code Exchange)“PKCE verhindert Authorization Code Interception Angriffe:
- Client generiert zufälligen
code_verifier - Client erstellt
code_challenge= SHA256(code_verifier) - Client sendet
code_challengebei Authorization Request - Nach Callback sendet Client
code_verifier - Server validiert: SHA256(code_verifier) == code_challenge
State Parameter
Abschnitt betitelt „State Parameter“Der state Parameter verhindert CSRF-Angriffe:
- Zufälliger Token wird vor OAuth-Redirect generiert
- Im Callback wird validiert, dass der State übereinstimmt
- State wird in Cloudflare KV mit kurzer TTL gespeichert
JWT Token
Abschnitt betitelt „JWT Token“Nach erfolgreicher OAuth-Authentifizierung wird ein JWT Token generiert:
{ "userId": "github:123456", "name": "Max Mustermann", "email": "max@example.com", "provider": "github", "iat": 1234567890, "exp": 1234571490}Konfiguration
Abschnitt betitelt „Konfiguration“OAuth-Provider werden über Umgebungsvariablen konfiguriert:
# Provider auswählen (github, google, oder custom)wrangler secret put OAUTH_PROVIDER
# OAuth Credentialswrangler secret put OAUTH_CLIENT_IDwrangler secret put OAUTH_CLIENT_SECRETwrangler secret put OAUTH_REDIRECT_URINächste Schritte
Abschnitt betitelt „Nächste Schritte“- GitHub OAuth Setup - GitHub OAuth konfigurieren
- Google OAuth Setup - Google OAuth konfigurieren
- Custom Provider - Eigenen Provider hinzufügen