OIDC / OAuth2-Einrichtung
Diese Anleitung führt Sie durch die Konfiguration von RAMP zur Verwendung von OpenID Connect (OIDC)-Authentifizierung mit gängigen Identitätsanbietern wie Azure AD, Okta, Keycloak oder Auth0.
Was ist OIDC-Authentifizierung?
Abschnitt betitelt „Was ist OIDC-Authentifizierung?“OpenID Connect (OIDC) ist ein modernes Authentifizierungsprotokoll, das es RAMP ermöglicht, die Benutzerauthentifizierung an den Identitätsanbieter Ihrer Organisation zu delegieren. Vorteile:
- Single Sign-On (SSO) – Benutzer melden sich einmal für alle Anwendungen an
- Zentrale Benutzerverwaltung – Benutzer an einem Ort verwalten
- Erhöhte Sicherheit – MFA, bedingter Zugriff und Sicherheitsrichtlinien werden von Ihrem IdP verwaltet
- Keine Passwortspeicherung – RAMP speichert oder verarbeitet niemals Passwörter
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:
- Einen OIDC-konformen Identitätsanbieter (Azure AD, Okta, Keycloak, Auth0 usw.)
- Administratorzugriff zur Registrierung von Anwendungen in Ihrem IdP
- RAMP-Backend-API bereitgestellt und zugänglich
- RAMP-Frontend bereitgestellt oder in der Entwicklung laufend
Schnellstart
Abschnitt betitelt „Schnellstart“-
RAMP in Ihrem Identitätsanbieter registrieren
Abschnitt betitelt „RAMP in Ihrem Identitätsanbieter registrieren“Sie müssen RAMP als Anwendung/Client in Ihrem Identitätsanbieter registrieren.
Erforderliche Einstellungen:
- Anwendungstyp: Öffentlich (SPA/Browser-Anwendung)
- Grant-Typ: Authorization Code mit PKCE
- Redirect-URI:
https://your-ramp-domain.com/_auth/callback - Post-Logout-Redirect-URI:
https://your-ramp-domain.com - Scopes:
openid profile email
Notieren Sie sich nach der Registrierung diese Werte:
- Authority-URL (z. B.
https://login.microsoftonline.com/{tenant-id}/v2.0) - Client-ID (z. B.
abc123-def456-ghi789)
-
RAMP-Frontend konfigurieren
Abschnitt betitelt „RAMP-Frontend konfigurieren“Erstellen oder aktualisieren Sie
.env.local(Entwicklung) oder.env.productioninsrc/RAMP.Web/:Terminal-Fenster # OIDC-Authentifizierung aktivierenVITE_OIDC_ENABLED=true# Authority-URL Ihres IdentitätsanbietersVITE_OIDC_AUTHORITY=https://your-idp.com# Client-ID aus Schritt 1VITE_OIDC_CLIENT_ID=your-client-id# Redirect-URI (muss mit der IdP-Registrierung übereinstimmen)VITE_OIDC_REDIRECT_URI=https://your-ramp-domain.com/_auth/callback# Optional: Post-Logout-RedirectVITE_OIDC_POST_LOGOUT_REDIRECT_URI=https://your-ramp-domain.com# Optional: Benutzerdefinierte Scopes (Standard: "openid profile email")VITE_OIDC_SCOPE=openid profile emailTerminal-Fenster VITE_OIDC_ENABLED=trueVITE_OIDC_AUTHORITY=https://your-idp.comVITE_OIDC_CLIENT_ID=your-dev-client-idVITE_OIDC_REDIRECT_URI=http://localhost:5173/_auth/callbackVITE_OIDC_POST_LOGOUT_REDIRECT_URI=http://localhost:5173 -
RAMP-Backend konfigurieren (Optional)
Abschnitt betitelt „RAMP-Backend konfigurieren (Optional)“Das Backend benötigt eine minimale Konfiguration für OIDC, da die Authentifizierung im Frontend erfolgt. Sie sollten jedoch die JWT-Validierungseinstellungen konfigurieren.
Aktualisieren Sie
appsettings.json:{"Jwt": {"Secret": "YourSecretKeyAtLeast32CharactersLong!","Issuer": "RAMP.API","Audience": "RAMP.Web","AccessTokenExpirationMinutes": 480,"RefreshTokenExpirationDays": 30}} -
Konfiguration testen
Abschnitt betitelt „Konfiguration testen“RAMP-Frontend starten:
Terminal-Fenster cd src/RAMP.Webnpm run devNavigieren Sie in Ihrem Browser zu RAMP:
- Entwicklung:
http://localhost:5173 - Produktion:
https://your-ramp-domain.com
Erwarteter Ablauf:
- Sie werden zur Anmeldeseite Ihres Identitätsanbieters weitergeleitet
- Melden Sie sich mit Ihren Anmeldedaten an
- Nach erfolgreicher Authentifizierung werden Sie zurück zu RAMP weitergeleitet
- Sie sollten das RAMP-Dashboard mit Ihrem Namen/Ihrer E-Mail sehen
Im Browser-Konsolenfenster überprüfen:
- Entwicklertools öffnen und die Konsole prüfen
- Es sollten erfolgreiche Authentifizierungsmeldungen erscheinen
- Keine CORS- oder Weiterleitungsfehler
- Entwicklung:
Anbieterspezifische Beispiele
Abschnitt betitelt „Anbieterspezifische Beispiele“Authority-URL:
https://login.microsoftonline.com/{tenant-id}/v2.0Konfiguration:
VITE_OIDC_AUTHORITY=https://login.microsoftonline.com/your-tenant-id/v2.0VITE_OIDC_CLIENT_ID=your-application-client-idVITE_OIDC_SCOPE=openid profile email User.ReadApp-Registrierung:
- Azure Portal -> Entra ID -> App-Registrierungen -> Neue Registrierung
- Redirect-URI hinzufügen:
https://your-ramp-domain.com/_auth/callback - Authentifizierung -> “Zugriffstoken” und “ID-Token” aktivieren
- API-Berechtigungen ->
User.Readaus Microsoft Graph hinzufügen
Authority-URL:
https://your-domain.okta.com/oauth2/defaultKonfiguration:
VITE_OIDC_AUTHORITY=https://your-domain.okta.com/oauth2/defaultVITE_OIDC_CLIENT_ID=your-client-idApp-Einrichtung:
- Okta Admin-Konsole -> Anwendungen -> App-Integration erstellen
- Anmeldemethode: OIDC
- Anwendungstyp: Single-Page-Anwendung
- Grant-Typ: Authorization Code
- Redirect-URI hinzufügen
Authority-URL:
https://keycloak.your-domain.com/realms/your-realmKonfiguration:
VITE_OIDC_AUTHORITY=https://keycloak.your-domain.com/realms/your-realmVITE_OIDC_CLIENT_ID=ramp-webClient-Einrichtung:
- Keycloak Admin-Konsole -> Clients -> Client erstellen
- Client-Typ: OpenID Connect
- Client-ID:
ramp-web - Client-Authentifizierung: AUS (öffentlicher Client)
- Gültige Redirect-URIs:
https://your-ramp-domain.com/_auth/callback - Web-Ursprünge:
https://your-ramp-domain.com
Authority-URL:
https://your-tenant.auth0.comKonfiguration:
VITE_OIDC_AUTHORITY=https://your-tenant.auth0.comVITE_OIDC_CLIENT_ID=your-client-idAnwendungseinrichtung:
- Auth0 Dashboard -> Anwendungen -> Anwendung erstellen
- “Single Page Web Applications” auswählen
- Einstellungen -> Erlaubte Callback-URLs:
https://your-ramp-domain.com/_auth/callback - Erlaubte Abmelde-URLs:
https://your-ramp-domain.com - Erlaubte Web-Ursprünge:
https://your-ramp-domain.com
Fehlerbehebung
Abschnitt betitelt „Fehlerbehebung“Fehler “Ungültige redirect_uri”
Abschnitt betitelt „Fehler “Ungültige redirect_uri”“Problem: Der Identitätsanbieter lehnt die Redirect-URI ab.
Lösung:
- Sicherstellen, dass
VITE_OIDC_REDIRECT_URIexakt mit dem übereinstimmt, was in Ihrem IdP registriert ist - Protokoll prüfen (
httpvs.https) - Portnummer prüfen (
:5173für Entwicklung, weglassen für Produktion bei Standardports) - Abschließende Schrägstriche prüfen (manche IdPs sind streng)
- Groß-/Kleinschreibung prüfen
Fehler “Client nicht gefunden”
Abschnitt betitelt „Fehler “Client nicht gefunden”“Problem: Der Identitätsanbieter erkennt die Client-ID nicht.
Lösung:
- Sicherstellen, dass
VITE_OIDC_CLIENT_IDexakt übereinstimmt (Groß-/Kleinschreibung beachten) - Sicherstellen, dass der Client/die Anwendung in Ihrem IdP aktiviert ist
- Prüfen, ob Sie die richtige Umgebung verwenden (Entwicklungs- vs. Produktions-Client-ID)
CORS-Fehler im Browser-Konsolenfenster
Abschnitt betitelt „CORS-Fehler im Browser-Konsolenfenster“Problem: Browser blockiert Anfragen aufgrund der CORS-Richtlinie.
Lösung:
- Sicherstellen, dass Ihr IdP Anfragen vom RAMP-Ursprung erlaubt
- In der IdP-Konfiguration
https://your-ramp-domain.comzu erlaubten Ursprüngen hinzufügen - Für die Entwicklung
http://localhost:5173zu erlaubten Ursprüngen hinzufügen
Endlose Weiterleitungsschleife
Abschnitt betitelt „Endlose Weiterleitungsschleife“Problem: Browser leitet ständig zwischen RAMP und IdP weiter.
Lösung:
- Prüfen, dass
VITE_OIDC_SCOPEopenidenthält - Sicherstellen, dass der Client für den Authorization Code-Flow konfiguriert ist
- Browser-Cookies und lokalen Speicher leeren
- Browser-Konsole auf detaillierte Fehlermeldungen prüfen
Benutzer authentifiziert, aber ohne Rollen
Abschnitt betitelt „Benutzer authentifiziert, aber ohne Rollen“Problem: Benutzer meldet sich erfolgreich an, hat aber keine Berechtigungen in RAMP.
Lösung:
Dieses Verhalten ist für OIDC-Erstbenutzer erwartet. Ein Administrator muss Rollen zuweisen:
- Als Administrator anmelden
- Zu Admin -> Benutzer navigieren
- Benutzer suchen (nach E-Mail)
- Rollen zuweisen klicken
- Geeignete Anwendungsrollen zuweisen
Alternativ können Sie Bootstrap-Administratoren konfigurieren, um bestimmten Benutzern bei der ersten Anmeldung automatisch Rollen zuzuweisen.
Sicherheits-Best-Practices
Abschnitt betitelt „Sicherheits-Best-Practices“Produktions-Deployment
Abschnitt betitelt „Produktions-Deployment“- HTTPS verwenden – In der Produktion immer TLS/SSL-Zertifikate verwenden
- Redirect-URIs validieren – Nur notwendige Redirect-URIs registrieren
- Scope-Minimierung – Nur die von RAMP benötigten Scopes anfordern (
openid profile email) - Kurze Token-Laufzeiten – Tokens so konfigurieren, dass sie innerhalb einer Stunde ablaufen
- Sichere Client-Registrierung – Geeignete Client-Authentifizierungseinstellungen verwenden
- Fehlgeschlagene Anmeldungen überwachen – Audit-Protokollierung in Ihrem IdP aktivieren
Token-Speicherung
Abschnitt betitelt „Token-Speicherung“RAMP speichert Tokens im Browser-Sitzungsspeicher, der:
- Beim Schließen des Browser-Tabs/-Fensters geleert wird
- Für andere Websites nicht zugänglich ist
- Nicht auf der Festplatte gespeichert wird
Benutzerbereitstellung
Abschnitt betitelt „Benutzerbereitstellung“Automatische Benutzererstellung
Abschnitt betitelt „Automatische Benutzererstellung“Wenn sich ein Benutzer zum ersten Mal über OIDC anmeldet:
- RAMP erhält Claims von Ihrem Identitätsanbieter (Name, E-Mail, sub)
- RAMP prüft, ob ein Benutzer mit dieser
ProviderSubjectIdvorhanden ist - Falls nicht, erstellt RAMP automatisch ein neues Benutzerkonto
- Das Benutzerprofil wird aus den OIDC-Claims gefüllt:
sub-Claim -> Eindeutiger Bezeichneremail-Claim -> E-Mail-Adressenameoderpreferred_username-> Anzeigename
Erforderliche Claims
Abschnitt betitelt „Erforderliche Claims“Ihr Identitätsanbieter muss diese Claims zurückgeben:
| Claim | Zweck | Beispiel |
|---|---|---|
sub | Eindeutiger Benutzerbezeichner | 248289761001 |
email | E-Mail-Adresse des Benutzers | john.doe@company.com |
name oder preferred_username | Anzeigename | John Doe |
Wenn diese Claims fehlen, schlägt die Benutzererstellung fehl.
Nächste Schritte
Abschnitt betitelt „Nächste Schritte“Nach der Konfiguration der OIDC-Authentifizierung:
- MFA-Einrichtungsanleitung – TOTP-basierte Multi-Faktor-Authentifizierung hinzufügen
- Bootstrap-Administratoren-Anleitung – Admin-Rollen automatisch zuweisen
- E-Mail-Einrichtungsanleitung – E-Mails für Passwort-Zurücksetzen aktivieren