Windows Authentication einrichten
Windows Authentication (auch Integrated Windows Authentication oder IWA genannt) ermöglicht es Benutzern, sich automatisch mit ihren Windows-Domain-Anmeldedaten bei RAMP anzumelden. Vorteile:
- Nahtloses SSO – Benutzer werden beim Zugriff auf RAMP automatisch angemeldet
- Keine Anmeldeaufforderungen – Authentifizierung erfolgt transparent
- Zentrale Verwaltung – Benutzer werden über Active Directory verwaltet
- Kerberos-Sicherheit – Starke Authentifizierung ohne Übertragung von Passwörtern
Geeignet für: Interne Unternehmensumgebungen, Windows-basierte Infrastruktur, Domain-verbundene Rechner, IIS-gehostete Deployments.
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:
- Windows Server mit Active Directory Domain Services
- IIS (Internet Information Services) installiert
- Domain-verbundene Server für das Hosting der RAMP-API
- Dienstkonto mit Active Directory-Leseberechtigungen
- .NET 10 Runtime auf dem Server installiert
- Client-Rechner, die Domain-verbunden sind
Architekturübersicht
Abschnitt betitelt „Architekturübersicht“+--------------+ Windows Auth +--------------+| Browser | ------------------> | RAMP API || (Domain-PC) | (NTLM/Kerberos) | auf IIS |+--------------+ +--------------+ | | LDAP (Optional) v +--------------+ | Active | | Directory | +--------------+Schnellstart
Abschnitt betitelt „Schnellstart“-
Dienstkonto in Active Directory erstellen
Abschnitt betitelt „Dienstkonto in Active Directory erstellen“Erstellen Sie ein dediziertes Dienstkonto für den Betrieb von RAMP:
Terminal-Fenster # PowerShell auf dem DomänencontrollerNew-ADUser -Name "RAMP Service" `-SamAccountName "ramp-service" `-UserPrincipalName "ramp-service@yourdomain.com" `-AccountPassword (ConvertTo-SecureString "ComplexPassword123!" -AsPlainText -Force) `-Enabled $true `-PasswordNeverExpires $true `-Description "RAMP Application Service Account"# Zur Domänen-Benutzergruppe hinzufügen (Mindestanforderung)Add-ADGroupMember -Identity "Domain Users" -Members "ramp-service" -
IIS für Windows Authentication konfigurieren
Abschnitt betitelt „IIS für Windows Authentication konfigurieren“Windows Authentication-Funktion installieren
Abschnitt betitelt „Windows Authentication-Funktion installieren“Terminal-Fenster # Als Administrator ausführenInstall-WindowsFeature Web-Windows-AuthAlternativ den Server-Manager verwenden:
- Server-Manager öffnen -> Verwalten -> Rollen und Features hinzufügen
- Navigieren zu: Webserver (IIS) -> Webserver -> Sicherheit
- Windows-Authentifizierung aktivieren
- Installieren klicken
Anwendungspool erstellen
Abschnitt betitelt „Anwendungspool erstellen“- IIS-Manager öffnen (inetmgr)
- Zu Anwendungspools -> Anwendungspool hinzufügen navigieren
- Einstellungen:
- Name:
RAMP - .NET CLR-Version:
Kein verwalteter Code(für .NET 10) - Verwalteter Pipeline-Modus:
Integriert - OK klicken
- Name:
- Rechtsklick auf den
RAMP-Anwendungspool -> Erweiterte Einstellungen - Unter Prozessmodell -> Identität: Auf […] klicken
- Benutzerdefiniertes Konto auswählen -> Festlegen…
- Dienstkonto-Anmeldedaten eingeben:
- Benutzername:
IHREDOMAIN\ramp-service - Passwort: [Dienstkonto-Passwort]
- OK klicken
- Benutzername:
Website erstellen oder konfigurieren
Abschnitt betitelt „Website erstellen oder konfigurieren“- Rechtsklick auf Websites -> Website hinzufügen (oder vorhandene Website auswählen)
- Einstellungen:
- Websitename:
RAMP - Anwendungspool: Den oben erstellten
RAMP-Pool auswählen - Physischer Pfad:
C:\inetpub\wwwroot\RAMP(oder Ihr Deployment-Pfad) - Bindung:
httpsauf Port443mit SSL-Zertifikat
- Websitename:
- OK klicken
Windows-Authentifizierung aktivieren
Abschnitt betitelt „Windows-Authentifizierung aktivieren“- Ihre RAMP-Website in IIS auswählen
- Auf das Feature Authentifizierung doppelklicken
- Anonyme Authentifizierung deaktivieren (Rechtsklick -> Deaktivieren)
- Windows-Authentifizierung aktivieren (Rechtsklick -> Aktivieren)
- Rechtsklick auf Windows-Authentifizierung -> Anbieter…
- Sicherstellen, dass die Anbieter in dieser Reihenfolge sind (sicherster zuerst):
Negotiate(Kerberos)NTLM
- Rechtsklick auf Windows-Authentifizierung -> Erweiterte Einstellungen…
- Kernelmodusauthentifizierung aktivieren: Aktiviert
- OK klicken
-
RAMP-Backend konfigurieren
Abschnitt betitelt „RAMP-Backend konfigurieren“Aktualisieren Sie
appsettings.jsonin Ihrem RAMP-API-Deployment-Ordner:{"Authentication": {"Providers": {"Windows": {"Enabled": true,"AutoProvision": true,"Domain": "IHREDOMAIN.COM"}}},"Jwt": {"Secret": "YourSecretKeyAtLeast32CharactersLong!","Issuer": "RAMP.API","Audience": "RAMP.Web","AccessTokenExpirationMinutes": 480},"ConnectionStrings": {"DefaultConnection": "Server=sql-server;Database=RAMP;Integrated Security=true;TrustServerCertificate=true"}}Konfigurationserklärung:
Enabled: true– Aktiviert den Windows-AuthentifizierungsanbieterAutoProvision: true– Erstellt automatisch RAMP-Benutzerkonten bei der ersten AnmeldungDomain– Ihr Active Directory-Domänenname
-
RAMP auf IIS bereitstellen
Abschnitt betitelt „RAMP auf IIS bereitstellen“Anwendung veröffentlichen
Abschnitt betitelt „Anwendung veröffentlichen“Terminal-Fenster cd src/RAMP.APIdotnet publish -c Release -o C:\Publish\RAMPDateien auf den Server kopieren
Abschnitt betitelt „Dateien auf den Server kopieren“Die veröffentlichten Dateien auf Ihren IIS-Server übertragen:
- Quelle:
C:\Publish\RAMP\* - Ziel:
C:\inetpub\wwwroot\RAMP\(oder Ihr konfigurierter Pfad)
Ordnerberechtigungen festlegen
Abschnitt betitelt „Ordnerberechtigungen festlegen“Terminal-Fenster # Dienstkonto Zugriff auf den Anwendungsordner gewährenicacls "C:\inetpub\wwwroot\RAMP" /grant "IHREDOMAIN\ramp-service:(OI)(CI)F" /T - Quelle:
-
Frontend konfigurieren
Abschnitt betitelt „Frontend konfigurieren“Aktualisieren Sie
.env.productionin Ihrem RAMP-Frontend-Deployment:Terminal-Fenster # OIDC deaktivieren (stattdessen Windows Auth verwenden)VITE_OIDC_ENABLED=false# API-Endpunkt (in der Produktion HTTPS verwenden)VITE_API_BASE_URL=https://ramp.yourdomain.com/api# Credential-Weiterleitung für Windows Auth aktivierenVITE_USE_CREDENTIALS=true -
Kerberos konfigurieren (Empfohlen)
Abschnitt betitelt „Kerberos konfigurieren (Empfohlen)“Konfigurieren Sie für erhöhte Sicherheit die Kerberos-Authentifizierung:
Service Principal Names (SPNs) erstellen
Abschnitt betitelt „Service Principal Names (SPNs) erstellen“Terminal-Fenster # Auf dem Domänencontroller oder mit AD-Admin-Rechtensetspn -S HTTP/ramp.yourdomain.com IHREDOMAIN\ramp-servicesetspn -S HTTP/ramp IHREDOMAIN\ramp-service# Prüfen, ob SPNs erstellt wurdensetspn -L IHREDOMAIN\ramp-serviceErwartete Ausgabe:
Registered ServicePrincipalNames for CN=RAMP Service,CN=Users,DC=yourdomain,DC=com:HTTP/ramp.yourdomain.comHTTP/rampClient-Browser konfigurieren
Abschnitt betitelt „Client-Browser konfigurieren“Damit die automatische Authentifizierung funktioniert, fügen Sie RAMP zur Lokalen Intranetzone hinzu:
Internet Explorer / Edge:
- Internetoptionen -> Sicherheit -> Lokales Intranet -> Websites -> Erweitert
- Hinzufügen:
https://ramp.yourdomain.com - Sicherstellen, dass “Serverüberprüfung (https:) für alle Sites in dieser Zone verlangen” aktiviert ist
Chrome (verwendet Windows-Einstellungen):
- Erbt die Einstellungen der IE/Edge-Zone Lokales Intranet
Firefox:
- Zu
about:confignavigieren network.negotiate-auth.trusted-urisaufhttps://ramp.yourdomain.comsetzen
-
Konfiguration testen
Abschnitt betitelt „Konfiguration testen“Test von einem Domain-verbundenen Rechner
Abschnitt betitelt „Test von einem Domain-verbundenen Rechner“- Browser auf einem Domain-verbundenen Client-Computer öffnen
- Zu folgendem Adresse navigieren:
https://ramp.yourdomain.com - Erwartet: Automatische Anmeldung (keine Anmeldeaufforderung)
- Verifizieren: Ihr Domain-Benutzername erscheint in der Benutzeroberfläche (z. B. “IHREDOMAIN\john.doe”)
Authentifizierungsmethode prüfen
Abschnitt betitelt „Authentifizierungsmethode prüfen“In den Browser-Entwicklertools:
- Registerkarte Netzwerk öffnen
- Auf RAMP zugreifen
- Die erste API-Anfrage finden (z. B.
/_api/auth/me) - Anfrage-Header auf folgendes prüfen:
Authorization: Negotiate ...(Kerberos) – Beste OptionAuthorization: NTLM ...(NTLM) – Akzeptabel
Fehlerbehebung
Abschnitt betitelt „Fehlerbehebung“Anmeldeaufforderung erscheint (Automatische Authentifizierung funktioniert nicht)
Abschnitt betitelt „Anmeldeaufforderung erscheint (Automatische Authentifizierung funktioniert nicht)“Problem: Browser zeigt Anmeldeaufforderung statt automatischer Authentifizierung.
Lösungen:
-
Prüfen, ob der Client Domain-verbunden ist:
Terminal-Fenster # Auf dem Client-Rechnersysteminfo | findstr /B /C:"Domain"Sollte Ihre Domain anzeigen, nicht “WORKGROUP”
-
Website zur Zone Lokales Intranet hinzufügen (siehe Schritt 6)
-
IE-Sicherheitseinstellungen prüfen:
- Internetoptionen -> Erweitert
- Zum Sicherheitsabschnitt scrollen
- Sicherstellen, dass “Integrierte Windows-Authentifizierung aktivieren” aktiviert ist
-
Sicherstellen, dass IIS Windows Auth aktiviert ist (siehe Schritt 2)
Fehler 401 Nicht autorisiert
Abschnitt betitelt „Fehler 401 Nicht autorisiert“Problem: Benutzer erhält nach dem Authentifizierungsversuch “401 Nicht autorisiert”.
Lösungen:
-
Prüfen, ob das Dienstkonto AD-Berechtigungen hat:
Terminal-Fenster # Konto überprüfenGet-ADUser -Identity "ramp-service" -Properties Enabled, PasswordNeverExpires -
IIS-Anwendungspool-Identität überprüfen:
- IIS-Manager -> Anwendungspools -> RAMP -> Erweiterte Einstellungen
- Prozessmodell -> Identität sollte
IHREDOMAIN\ramp-servicesein
-
IIS-Protokolle prüfen:
- Ort:
C:\inetpub\logs\LogFiles\W3SVC1\ - Nach 401-Fehlern mit Unterstatus-Codes suchen:
401.1– Zugriff verweigert (falsche Anmeldedaten)401.2– Zugriff verweigert aufgrund der Serverkonfiguration401.3– ACL auf der Ressource
- Ort:
-
Dienstkonto-Anmeldung testen:
- Versuchen Sie sich am Server mit den Dienstkonto-Anmeldedaten anzumelden
- Prüfen Sie, ob es Zugriff auf den RAMP-Ordner hat
Benutzer authentifiziert, aber ohne Rollen
Abschnitt betitelt „Benutzer authentifiziert, aber ohne Rollen“Problem: Benutzer meldet sich erfolgreich an, kann aber auf keine Funktionen zugreifen.
Lösungen:
-
Prüfen, ob Benutzer automatisch bereitgestellt wurde:
- Als Administrator anmelden
- Zu Admin -> Benutzer navigieren
- Nach dem Domain-Benutzernamen suchen
-
Rollen manuell zuweisen:
- Benutzer finden -> Rollen zuweisen
- Geeignete Anwendungsrollen hinzufügen (z. B. Benutzer, Koordinator)
-
Bootstrap-Administratoren konfigurieren:
- Weitere Informationen unter Bootstrap-Administratoren-Anleitung
- Benutzer hinzufügen, um ihnen bei der ersten Anmeldung automatisch Admin-Rollen zuzuweisen
Kerberos funktioniert nicht (Fallback auf NTLM)
Abschnitt betitelt „Kerberos funktioniert nicht (Fallback auf NTLM)“Problem: Authentifizierung funktioniert, verwendet aber NTLM statt Kerberos.
Lösungen:
-
Prüfen, ob SPNs korrekt registriert sind:
Terminal-Fenster setspn -L IHREDOMAIN\ramp-serviceSollte
HTTP/ramp.yourdomain.comundHTTP/rampanzeigen -
Nach doppelten SPNs suchen:
Terminal-Fenster setspn -XDuplikate führen zum Kerberos-Fehler. Gefundene Duplikate entfernen.
-
DNS-Auflösung überprüfen:
Terminal-Fenster nslookup ramp.yourdomain.comSollte zur korrekten Server-IP auflösen
-
Prüfen, ob Client Kerberos anfordert:
klist-Befehl auf dem Client-Rechner verwenden- Sollte Ticket für
HTTP/ramp.yourdomain.comanzeigen
-
Kerberos-Protokollierung aktivieren:
Terminal-Fenster # Auf dem Client-Rechner (als Administrator ausführen)reg add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters" /v LogLevel /t REG_DWORD /d 1 /fEreignisanzeige -> Windows-Protokolle -> System auf Kerberos-Ereignisse prüfen
Sicherheits-Best-Practices
Abschnitt betitelt „Sicherheits-Best-Practices“Produktions-Checkliste
Abschnitt betitelt „Produktions-Checkliste“- HTTPS verwenden – Gültiges SSL-Zertifikat installieren
- Dediziertes Dienstkonto – Keine persönlichen oder geteilten Konten verwenden
- Starkes Dienstkonto-Passwort – 20+ Zeichen, regelmäßig rotieren
- Geringste Rechte – Dienstkonto hat nur Lesezugriff auf AD
- Kerberos statt NTLM – SPNs für Kerberos konfigurieren
- Anonyme Authentifizierung deaktivieren – Nur Windows Auth sollte aktiviert sein
- Audit-Protokollierung aktivieren – Fehlgeschlagene Authentifizierungsversuche verfolgen
- Netzwerksicherheit – Firewall-Regeln, AD-Verkehrsverschlüsselung
- Regelmäßige Updates – Windows- und IIS-Sicherheitspatches anwenden
Dienstkonto-Sicherheit
Abschnitt betitelt „Dienstkonto-Sicherheit“Empfehlenswert:
- Dediziertes Dienstkonto verwenden (kein Benutzerkonto)
- “Passwort läuft nie ab” setzen (aber manuell nach Plan rotieren)
- Nur erforderliche AD-Berechtigungen vergeben (in der Regel schreibgeschützt)
- Starkes, eindeutiges Passwort verwenden (20+ Zeichen)
- Passwort in sicherem Vault speichern (Azure Key Vault usw.)
Nicht empfehlenswert:
- Administratorkonto verwenden
- Persönliches Benutzerkonto verwenden
- Das Konto mit anderen Anwendungen teilen
- Unnötige AD-Berechtigungen vergeben
- Passwort in Klartextkonfigurationsdateien speichern
Erweiterte Konfiguration
Abschnitt betitelt „Erweiterte Konfiguration“Optional: LDAP-Integration für Benutzersuche
Abschnitt betitelt „Optional: LDAP-Integration für Benutzersuche“Wenn Sie die Verzeichnissuche in RAMP aktivieren möchten (z. B. Benutzersuche für die Rollenzuweisung), konfigurieren Sie LDAP:
{ "Authentication": { "Providers": { "Windows": { "Enabled": true, "AutoProvision": true, "Domain": "IHREDOMAIN.COM", "Ldap": { "Server": "ldap://dc.yourdomain.com:389", "SearchBase": "DC=yourdomain,DC=com", "ServiceAccount": { "Username": "IHREDOMAIN\\ramp-service", "Password": "[sicher gespeichert]" } } } } }}Weitere Informationen zur LDAP-Konfiguration finden Sie unter LDAP-Einrichtungsanleitung.
Optional: Cross-Forest Active Directory
Abschnitt betitelt „Optional: Cross-Forest Active Directory“Für Benutzer in mehreren AD-Gesamtstrukturen:
{ "Authentication": { "Providers": { "Windows": { "Enabled": true, "Domains": [ { "Name": "CONTOSO.COM", "Ldap": { "Server": "ldap://dc1.contoso.com", "SearchBase": "DC=contoso,DC=com" } }, { "Name": "SUBSIDIARY.COM", "Ldap": { "Server": "ldap://dc1.subsidiary.com", "SearchBase": "DC=subsidiary,DC=com" } } ] } } }}Benutzerbereitstellung
Abschnitt betitelt „Benutzerbereitstellung“Automatische Benutzererstellung
Abschnitt betitelt „Automatische Benutzererstellung“Wenn ein Domain-Benutzer zum ersten Mal auf RAMP zugreift:
- IIS authentifiziert den Benutzer über Windows Authentication
- Die Identität des Benutzers wird an RAMP übergeben (z. B.
IHREDOMAIN\john.doe) - RAMP prüft, ob Benutzer mit
IdentityProvider = "Windows"vorhanden ist - Falls nicht, erstellt RAMP ein neues Benutzerkonto:
- Benutzername:
IHREDOMAIN\john.doe - E-Mail: Abgeleitet vom Benutzernamen (oder aus LDAP, wenn konfiguriert)
- Anzeigename: Gleich wie Benutzername (oder aus LDAP, wenn konfiguriert)
- IdentityProvider:
Windows
- Benutzername:
- Benutzer ist jetzt angemeldet, hat aber standardmäßig keine Rollen
- Administrator muss Rollen manuell zuweisen (oder Bootstrap-Administratoren verwenden)
Alternative: Deployment auf Kestrel (Docker/Linux)
Abschnitt betitelt „Alternative: Deployment auf Kestrel (Docker/Linux)“Windows Authentication erfordert in der Regel IIS auf Windows Server. Für Docker-Deployments:
Wenn Sie Windows Auth mit Kestrel verwenden müssen:
- Auf Windows Server bereitstellen (nicht Linux)
- Kestrel für Windows Auth konfigurieren (erweiterte Einrichtung)
Nächste Schritte
Abschnitt betitelt „Nächste Schritte“Nach der Konfiguration der Windows Authentication:
- Bootstrap-Administratoren-Anleitung – Rollen automatisch zuweisen
- MFA-Einrichtung – Optional MFA für sensible Operationen hinzufügen
- Authentifizierungsübersicht – Alle Authentifizierungsanbieter vergleichen