Zum Inhalt springen

Bootstrap-Administratoren

Bootstrap-Administratoren werden automatisch erstellt, wenn RAMP zum ersten Mal startet. So wird sichergestellt, dass Sie sofort Administratorzugriff haben, ohne Benutzer manuell in der Datenbank erstellen zu müssen.

  • Automatisch beim ersten Start erstellt
  • Unterstützt alle Authentifizierungsanbieter (RAMP, OIDC, LDAP, Windows, ADFS)
  • Automatisch die Administrator-Rolle zugewiesen
  • Mehrere Admins unterstützt
  • Sicheres Wiederholen (keine Duplikate bestehender Benutzer)

  • Erstmalige RAMP-Bereitstellung
  • Disaster-Recovery-Szenarien
  • Automatisierte Deployments (Docker, Kubernetes)
  • Entwicklungs-/Testumgebungen
  • Sicherstellung des Admin-Zugriffs nach einer Datenbankwiederherstellung
  • Benutzer nach der Ersteinrichtung hinzufügen (stattdessen die Weboberfläche verwenden)
  • Passwortverwaltung in der Produktion (nach der ersten Anmeldung ändern)
  • Langfristige Anmeldedatenspeicherung (sofort rotieren)

{
"Bootstrap": {
"Administrators": [
{
"IdentityProvider": "RAMP",
"Username": "admin",
"Email": "admin@yourcompany.com",
"Password": "Passw0rd"
}
]
}
}
Terminal-Fenster
cd src/RAMP.API
dotnet run

Nach Bootstrap-Bestätigung suchen:

[INFO] Checking bootstrap administrators...
[INFO] Bootstrap administrator created: admin
[INFO] Assigned Administrator role to: admin
  1. Zur RAMP-Anmeldeseite navigieren
  2. Benutzername: admin
  3. Passwort: Passw0rd
  4. Passwort sofort nach der ersten Anmeldung ändern

{
"Bootstrap": {
"Administrators": [
{
"IdentityProvider": "RAMP",
"Username": "admin",
"Email": "admin@yourcompany.com",
"Password": "SecurePassword123!"
}
]
}
}

Anforderungen:

  • Passwort muss Komplexitätsanforderungen erfüllen:
    • Mindestens 8 Zeichen
    • Mindestens 1 Großbuchstabe
    • Mindestens 1 Kleinbuchstabe
    • Mindestens 1 Ziffer
    • Mindestens 1 Sonderzeichen

Sie können mehrere Administratoren über verschiedene Identitätsanbieter konfigurieren:

{
"Bootstrap": {
"Administrators": [
{
"IdentityProvider": "RAMP",
"Username": "localadmin",
"Email": "localadmin@yourcompany.com",
"Password": "LocalAdmin@123"
},
{
"IdentityProvider": "OIDC",
"Username": "john.doe@yourcompany.com",
"Email": "john.doe@yourcompany.com"
},
{
"IdentityProvider": "LDAP",
"Username": "jsmith",
"Email": "jsmith@contoso.com"
}
]
}
}

Anwendungsfall:

  • Lokaler Admin für Notfallzugriff
  • OIDC/LDAP-Admins für den regulären Betrieb
  • Mehrere Teammitglieder als Admins

Passwörter während der Entwicklung sicher speichern:

Terminal-Fenster
cd src/RAMP.API
# Bootstrap-Passwort speichern
dotnet user-secrets set "Bootstrap:Administrators:0:Password" "DevAdmin@123"

Oder appsettings.Development.json verwenden:

{
"Bootstrap": {
"Administrators": [
{
"IdentityProvider": "RAMP",
"Username": "devadmin",
"Email": "devadmin@localhost",
"Password": "DevAdmin@123"
}
]
}
}

version: '3.8'
services:
ramp-api:
image: ramp-api:latest
environment:
- Bootstrap__Administrators__0__IdentityProvider=RAMP
- Bootstrap__Administrators__0__Username=admin
- Bootstrap__Administrators__0__Email=admin@yourcompany.com
- Bootstrap__Administrators__0__Password=${RAMP_ADMIN_PASSWORD}
ports:
- "5165:8080"
Terminal-Fenster
RAMP_ADMIN_PASSWORD=SecureAdminPassword123!
Terminal-Fenster
docker-compose up -d

apiVersion: v1
kind: Secret
metadata:
name: ramp-bootstrap-secret
type: Opaque
stringData:
admin-password: "SecureAdminPassword123!"
apiVersion: apps/v1
kind: Deployment
metadata:
name: ramp-api
spec:
template:
spec:
containers:
- name: ramp-api
image: ramp-api:latest
env:
- name: Bootstrap__Administrators__0__IdentityProvider
value: "RAMP"
- name: Bootstrap__Administrators__0__Username
value: "admin"
- name: Bootstrap__Administrators__0__Email
value: "admin@yourcompany.com"
- name: Bootstrap__Administrators__0__Password
valueFrom:
secretKeyRef:
name: ramp-bootstrap-secret
key: admin-password

  1. RAMP-API startet
  2. Bootstrap:Administrators-Konfiguration wird gelesen
  3. Für jeden Administrator:
    • Prüfen, ob Benutzer bereits vorhanden ist (nach Benutzernamen)
    • Wenn Benutzer nicht vorhanden:
      • Neues Benutzerkonto erstellen
      • Identitätsanbieter setzen
      • Für RAMP-Benutzer: Passwort hashen und speichern
      • Administrator-Rolle zuweisen
    • Wenn Benutzer vorhanden:
      • Erstellung überspringen (keine Duplikate)
      • Administrator-Rolle sicherstellen
  4. Ergebnisse protokollieren

Bootstrap kann mehrmals sicher ausgeführt werden:

  • Bestehende Benutzer werden nicht verändert
  • Keine duplizierten Benutzer werden erstellt
  • Administrator-Rolle wird sichergestellt
  • Passwörter werden bei der Wiederholung NICHT aktualisiert

Prüfung 1: Konfigurationssyntax überprüfen

{
"Bootstrap": {
"Administrators": [
{
"IdentityProvider": "RAMP",
"Username": "admin",
"Email": "admin@example.com",
"Password": "Passw0rd"
}
]
}
}

Prüfung 2: Anwendungsprotokolle auf Bootstrap-Meldungen prüfen

Prüfung 3: Passwortanforderungen überprüfen (nur für RAMP-Benutzer)

  • Mindestens 8 Zeichen
  • Großbuchstaben + Kleinbuchstaben + Ziffer + Sonderzeichen

Prüfung 1: Benutzername/Passwort überprüfen – Benutzernamen unterscheiden zwischen Groß-/Kleinschreibung, keine zusätzlichen Leerzeichen

Prüfung 2: Datenbank prüfen

SELECT * FROM Users WHERE Username = 'admin';

Prüfung 3: Rollenzuweisung überprüfen

SELECT u.Username, ur.RoleId
FROM Users u
JOIN UserRoles ur ON u.Id = ur.UserId
WHERE u.Username = 'admin';

Fehler: “Passwort muss mindestens einen Großbuchstaben enthalten”

Sicherstellen, dass das Passwort enthält:

  • Großbuchstaben: A–Z
  • Kleinbuchstaben: a–z
  • Ziffer: 0–9
  • Sonderzeichen: !@#$%^&*()
  • Länge: 8+ Zeichen

Beispiele gültiger Passwörter:

  • Passw0rd
  • SecurePassword1!
  • Bootstrap#2024

  1. Mit Bootstrap-Anmeldedaten anmelden
  2. Zu Einstellungen -> Passwort ändern navigieren
  3. Ein starkes, eindeutiges Passwort setzen
  4. Sicher speichern (Passwort-Manager)

2. Bootstrap-Konfiguration nach der Ersteinrichtung entfernen

Abschnitt betitelt „2. Bootstrap-Konfiguration nach der Ersteinrichtung entfernen“
{
"Bootstrap": {
"Administrators": []
}
}

Oder den gesamten Bootstrap-Abschnitt nach dem ersten Deployment löschen.

  • Mindestens 12 Zeichen (nicht nur 8)
  • Mischung aus Zeichentypen
  • Keine häufigen Wörter/Muster
  • Passwortgenerator verwenden
  • Passwörter niemals in die Quellcodeverwaltung einchecken
  • Umgebungsvariablen oder Secrets-Management verwenden
  • Anmeldedaten nach der Ersteinrichtung rotieren
  • Nur die minimal benötigte Anzahl erstellen
  • Externe IdP-Konten gegenüber RAMP-nativen Konten bevorzugen
  • Individuelle Konten verwenden (keine geteilten)

Audit-Protokolle nach dem Deployment prüfen:

SELECT * FROM AuditLogs
WHERE Action LIKE '%Bootstrap%'
ORDER BY Timestamp DESC;

{
"Bootstrap": {
"Administrators": [
{
"IdentityProvider": "RAMP",
"Username": "admin",
"Email": "admin@yourcompany.com",
"Password": "ChangeMe@123"
}
]
}
}

Nach dem Deployment:

  1. Als admin anmelden
  2. Passwort ändern
  3. Individuelle Benutzerkonten erstellen
  4. Bootstrap-Konfiguration entfernen
{
"Bootstrap": {
"Administrators": [
{
"IdentityProvider": "OIDC",
"Username": "john.doe@yourcompany.com",
"Email": "john.doe@yourcompany.com"
},
{
"IdentityProvider": "RAMP",
"Username": "emergency",
"Email": "emergency@yourcompany.com",
"Password": "EmergencyAccess@123"
}
]
}
}

Anwendungsfall: Primärer Zugriff über OIDC, lokaler Admin bei IdP-Ausfällen.

appsettings.Development.json:

{
"Bootstrap": {
"Administrators": [
{
"IdentityProvider": "RAMP",
"Username": "devadmin",
"Email": "devadmin@localhost",
"Password": "DevAdmin@123"
}
]
}
}

Kann ich nach der Ersteinrichtung Benutzer hinzufügen?

Abschnitt betitelt „Kann ich nach der Ersteinrichtung Benutzer hinzufügen?“

Ja, aber verwenden Sie die Weboberfläche (Admin -> Benutzer) statt der Bootstrap-Konfiguration. Bootstrap ist nur für die Ersteinrichtung gedacht.

Setzen Sie es in der Konfiguration zurück und starten Sie RAMP neu. Das bestehende Passwort wird NICHT automatisch aktualisiert – Sie müssen es über die Datenbank zurücksetzen.

Ja. Bootstrap-erstellte Benutzer sind reguläre Benutzer. Löschen Sie sie über Admin -> Benutzer in der Weboberfläche.

Ja. Bootstrap-Admins sind reguläre Benutzerkonten und zählen zu etwaigen Lizenz-Limits (sofern zutreffend).