Zum Inhalt springen

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.

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

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
  1. 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)
  2. Erstellen oder aktualisieren Sie .env.local (Entwicklung) oder .env.production in src/RAMP.Web/:

    Terminal-Fenster
    # OIDC-Authentifizierung aktivieren
    VITE_OIDC_ENABLED=true
    # Authority-URL Ihres Identitätsanbieters
    VITE_OIDC_AUTHORITY=https://your-idp.com
    # Client-ID aus Schritt 1
    VITE_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-Redirect
    VITE_OIDC_POST_LOGOUT_REDIRECT_URI=https://your-ramp-domain.com
    # Optional: Benutzerdefinierte Scopes (Standard: "openid profile email")
    VITE_OIDC_SCOPE=openid profile email
  3. 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
    }
    }
  4. RAMP-Frontend starten:

    Terminal-Fenster
    cd src/RAMP.Web
    npm run dev

    Navigieren 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

Authority-URL:

https://login.microsoftonline.com/{tenant-id}/v2.0

Konfiguration:

Terminal-Fenster
VITE_OIDC_AUTHORITY=https://login.microsoftonline.com/your-tenant-id/v2.0
VITE_OIDC_CLIENT_ID=your-application-client-id
VITE_OIDC_SCOPE=openid profile email User.Read

App-Registrierung:

  1. Azure Portal -> Entra ID -> App-Registrierungen -> Neue Registrierung
  2. Redirect-URI hinzufügen: https://your-ramp-domain.com/_auth/callback
  3. Authentifizierung -> “Zugriffstoken” und “ID-Token” aktivieren
  4. API-Berechtigungen -> User.Read aus Microsoft Graph hinzufügen

Problem: Der Identitätsanbieter lehnt die Redirect-URI ab.

Lösung:

  • Sicherstellen, dass VITE_OIDC_REDIRECT_URI exakt mit dem übereinstimmt, was in Ihrem IdP registriert ist
  • Protokoll prüfen (http vs. https)
  • Portnummer prüfen (:5173 für Entwicklung, weglassen für Produktion bei Standardports)
  • Abschließende Schrägstriche prüfen (manche IdPs sind streng)
  • Groß-/Kleinschreibung prüfen

Problem: Der Identitätsanbieter erkennt die Client-ID nicht.

Lösung:

  • Sicherstellen, dass VITE_OIDC_CLIENT_ID exakt ü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)

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.com zu erlaubten Ursprüngen hinzufügen
  • Für die Entwicklung http://localhost:5173 zu erlaubten Ursprüngen hinzufügen

Problem: Browser leitet ständig zwischen RAMP und IdP weiter.

Lösung:

  • Prüfen, dass VITE_OIDC_SCOPE openid enthä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

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:

  1. Als Administrator anmelden
  2. Zu Admin -> Benutzer navigieren
  3. Benutzer suchen (nach E-Mail)
  4. Rollen zuweisen klicken
  5. Geeignete Anwendungsrollen zuweisen

Alternativ können Sie Bootstrap-Administratoren konfigurieren, um bestimmten Benutzern bei der ersten Anmeldung automatisch Rollen zuzuweisen.


  • 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

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

Wenn sich ein Benutzer zum ersten Mal über OIDC anmeldet:

  1. RAMP erhält Claims von Ihrem Identitätsanbieter (Name, E-Mail, sub)
  2. RAMP prüft, ob ein Benutzer mit dieser ProviderSubjectId vorhanden ist
  3. Falls nicht, erstellt RAMP automatisch ein neues Benutzerkonto
  4. Das Benutzerprofil wird aus den OIDC-Claims gefüllt:
    • sub-Claim -> Eindeutiger Bezeichner
    • email-Claim -> E-Mail-Adresse
    • name oder preferred_username -> Anzeigename

Ihr Identitätsanbieter muss diese Claims zurückgeben:

ClaimZweckBeispiel
subEindeutiger Benutzerbezeichner248289761001
emailE-Mail-Adresse des Benutzersjohn.doe@company.com
name oder preferred_usernameAnzeigenameJohn Doe

Wenn diese Claims fehlen, schlägt die Benutzererstellung fehl.


Nach der Konfiguration der OIDC-Authentifizierung: