Zum Hauptinhalt springen

Lokale Konten

Ein lokales Konto speichert sein Passwort in der Semaphore-Datenbank. Jede Installation beginnt mit einem solchen Konto, angelegt durch semaphore setup oder durch die SEMAPHORE_ADMIN_*-Variablen, und über dieses Konto erreichen Sie den Server, bevor es einen Identitätsanbieter gibt.

Behalten Sie mindestens einen lokalen Administrator, auch wenn Single Sign-on funktioniert. Es ist der einzige Weg zurück, wenn der Identitätsanbieter nicht erreichbar ist.

Wie Passwörter gespeichert werden

Passwörter werden mit Argon2id und den OWASP-Mindestparametern gehasht, und die Parameter werden zusammen mit jedem Hash im PHC-String-Format festgehalten. Versionen vor 2.20 verwendeten bcrypt; diese Hashes funktionieren weiterhin und werden bei der nächsten erfolgreichen Anmeldung des Besitzers jeweils durch einen Argon2id-Hash ersetzt. Konten, die sich nie wieder anmelden, behalten ihren bcrypt-Hash – setzen Sie deren Passwörter zurück, um sie zu aktualisieren.

Die vollständige Parametertabelle finden Sie unter Sicherheit.

Semaphore erzwingt keine Passwortrichtlinie – keine Mindestlänge, keine Komplexität, kein Ablauf. Wenn Sie eine benötigen, verwenden Sie ein Verzeichnis oder einen Identitätsanbieter, denn dorthin gehören solche Richtlinien.

Konten verwalten

Administratoren verwalten Benutzer in der Weboberfläche, und dieselben Operationen gibt es auf der Kommandozeile – für Skripte und für die Wiederherstellung, wenn sich niemand mehr anmelden kann:

semaphore users add --admin --login jane --name "Jane Doe" \
--email [email protected] --password 's3cret'
semaphore users change-by-login --login jane --password 'new-s3cret'
semaphore users list

Alle Flags finden Sie unter semaphore users, und unter Teams steht, was eine Rolle einem Benutzer erlaubt, sobald er angemeldet ist.

warnung

Ein Passwort auf der Kommandozeile landet in Ihrer Shell-History und in der Prozessliste der Maschine. Verwenden Sie es für den ersten Administrator und für die Wiederherstellung und ändern Sie das Passwort danach über die Weboberfläche.

Zwei-Faktor-Authentifizierung

Semaphore unterstützt TOTP: die sechsstelligen Codes, die von Google Authenticator, Aegis, 1Password und ähnlichen Apps erzeugt werden. Es ist standardmäßig deaktiviert und gilt nur für die Konten, die es aktivieren – es wird niemandem aufgezwungen.

{
"mfa": {
"totp": {
"enabled": true,
"allow_recovery": true,
"app_name": "Semaphore"
}
}
}
OptionWirkung
mfa.totp.enabledErlaubt Benutzern, TOTP für ihr Konto einzurichten. Ohne diese Option kann sich niemand registrieren.
mfa.totp.allow_recoveryGibt bei der Einrichtung einen Wiederherstellungscode aus, damit ein verlorenes Telefon kein verlorenes Konto bedeutet. Seine Eingabe entfernt die TOTP-Einrichtung und meldet den Benutzer an; er richtet TOTP anschließend erneut ein. Der Code wird als bcrypt-Hash gespeichert.
mfa.totp.app_nameDie Aussteller-Bezeichnung, die die Authenticator-App anzeigt. Setzen Sie sie, wenn Sie mehr als ein Semaphore betreiben.

Benutzer richten TOTP auf ihrer eigenen Kontoseite ein. Ein Administrator kann den zweiten Faktor einer Person, die ihr Gerät verloren hat, einsehen oder entfernen:

semaphore users totp show --login jane
semaphore users totp disable --login jane

mfa.totp.enabled wieder auszuschalten löscht keine bestehenden Einrichtungen; es sorgt nur dafür, dass der zweite Faktor nicht mehr abgefragt wird. Schalten Sie es wieder ein, gelten die alten Einrichtungen erneut.

Sitzungsdauer

Eine Sitzung läuft nach sieben Tagen ohne Aktivität ab. Dieses Inaktivitäts-Zeitlimit ist fest eingebaut und nicht konfigurierbar.

Ein absolutes Limit ist es dagegen schon, und es wird ab dem Zeitpunkt der Anmeldung gemessen und nicht ab der letzten Anfrage, sodass auch eine aktiv genutzte Sitzung endet:

{
"auth": {
"max_session_life_hours": 12
}
}

Der Standardwert 0 bedeutet kein absolutes Limit. Setzen Sie ihn dort, wo ein gemeinsam genutzter Arbeitsplatz oder eine Compliance-Vorgabe verlangt, dass sich Personen regelmäßig erneut authentifizieren.

Passwortanmeldung abschalten

Sobald ein Identitätsanbieter konfiguriert ist und Sie überprüft haben, dass sich ein echter Benutzer darüber anmelden kann, weist password_login_disable die Passwortmethode vollständig zurück:

{
"password_login_disable": true
}

LDAP und OpenID Connect sind davon nicht betroffen. Bestehende lokale Konten behalten ihre Rollen und ihre Historie; sie haben lediglich keine Möglichkeit mehr, sich zu authentifizieren.

gefahr

Diese Option wirkt sofort und gilt für jedes lokale Konto, auch für Ihres. Stellen Sie sicher, dass Single Sign-on funktioniert – indem Sie sich damit anmelden, nicht indem Sie das Log lesen –, bevor Sie sie setzen. Ein Fehler lässt sich nur beheben, indem Sie die Konfigurationsdatei auf dem Server bearbeiten und neu starten.

Wie geht es weiter