Passwortrichtlinien aktivieren, deaktivieren und verwenden
In diesem Dokument erfahren Sie, wie Sie mithilfe von Passwortrichtlinien die Passwortstärke für neue und bestehende Nutzer verbessern.
Übersicht
Mit Passwortrichtlinien können Sie die Kontosicherheit verbessern, indem Sie Anforderungen an die Komplexität von Passwörtern erzwingen. Passwortrichtlinien unterstützen die folgenden Passwortanforderungen:
- Kleinbuchstaben erforderlich
- Großbuchstaben erforderlich
- Numerisches Zeichen erforderlich
- Nicht alphanumerisches Zeichen erforderlich
- Mindestlänge des Passworts (6 bis 30 Zeichen, standardmäßig 6)
- Maximale Passwortlänge (maximal 4.096 Zeichen)
Die folgenden Zeichen erfüllen die Anforderung an nicht alphanumerische Zeichen, wenn sie konfiguriert sind:
^ $ * . [ ] { } ( ) ? " ! @ # % & / \ , > < ' : ; | _ ~ `
Hinweise
Erzwingungsmodi
Sie können die Erzwingung von Passwortrichtlinien in zwei Modi aktivieren:
- Erforderlich: Anmeldeversuche schlagen fehl, bis der Nutzer ein Passwort verwendet, das Ihrer Richtlinie entspricht.
Benachrichtigen: Nutzer können sich mit einem nicht konformen Passwort registrieren. Sie werden über fehlende Kriterien informiert, die zum Erfüllen der Richtlinie eingehalten werden müssen. Zu den zurückgegebenen Kriterien gehören:
MISSING_LOWERCASE_CHARACTER
MISSING_UPPERCASE_CHARACTER
MISSING_NUMERIC_CHARACTER
MISSING_NON_ALPHANUMERIC_CHARACTER
MINIMUM_PASSWORD_LENGTH
MAXIMUM_PASSWORD_LENGTH
Sie können diese Informationen an den Nutzer senden, um ihn darüber zu informieren, dass er sein Passwort aktualisieren muss. Das folgende Beispiel zeigt eine Antwort mit fehlenden Passwortkriterien:
{ "kind": "identitytoolkit#VerifyPasswordResponse", "localId": "CJL1i2", "email": "cloudysanfrancisco@gmail.com", "displayName": "", "idToken": "ID_TOKEN", "registered": true, "userNotifications": [ { "notificationCode": "MISSING_NUMERIC_CHARACTER", "notificationMessage": "Password must contain a numeric character" }, { "notificationCode": "MISSING_NON_ALPHANUMERIC_CHARACTER", "notificationMessage": "Password must contain a non-alphanumeric character" } ] }
Neue Nutzer müssen ein Passwort wählen, das Ihren Richtlinien entspricht. Wenn Sie aktive Nutzer haben, empfehlen wir, die erzwungene Umstellung bei der Anmeldung nicht zu aktivieren, es sei denn, Sie möchten die Passwortrichtlinie sofort erzwingen. Verwenden Sie stattdessen den Benachrichtigungsmodus. Damit können sich Nutzer mit ihrem aktuellen Passwort anmelden und es werden Benachrichtigungen mit den Anforderungen gesendet, die ihr Passwort nicht erfüllt.
Wenn Sie die Erzwingung aktivieren, setzen Sie forceUpgradeOnSignin
auf true
, um die Erzwingung im Modus „Erforderlich“ zu aktivieren. Legen Sie den Wert auf false
fest, um die Erzwingung im Benachrichtigungsmodus zu aktivieren.
Erzwingung aktivieren
So erzwingen Sie eine Passwortrichtlinie:
- Falls noch nicht geschehen, konfigurieren Sie die Anmeldung per E-Mail-Adresse und Passwort.
Führen Sie den folgenden Befehl aus, um eine Passwortrichtlinie auf Projektebene zu erzwingen:
import { getAuth } from 'firebase-admin/auth'; // Update project config with password policy config getAuth().projectConfigManager().updateProjectConfig({ passwordPolicyConfig: { enforcementState: 'ENFORCE', forceUpgradeOnSignin: true, constraints: { requireUppercase: true, requireLowercase: true, requireNonAlphanumeric: true, requireNumeric: true, minLength: MIN_PASSWORD_LENGTH, maxLength: MAX_PASSWORD_LENGTH, }, }, })
Ersetzen Sie Folgendes:
MIN_PASSWORD_LENGTH
: die Mindestlänge des PasswortsMAX_PASSWORD_LENGTH
: die maximale Passwortlänge
Führen Sie folgenden Befehl aus, um eine Passwortrichtlinie auf Mieterebene zu erzwingen:
import { getAuth } from 'firebase-admin/auth'; // Update project config with password policy config getAuth().tenantManager().createTenant({ displayName: "admin-tenant", passwordPolicyConfig: { enforcementState: 'ENFORCE', forceUpgradeOnSignin: true, constraints: { requireUppercase: true, requireLowercase: true, requireNonAlphanumeric: true, requireNumeric: true, minLength: MIN_PASSWORD_LENGTH, maxLength: MAX_PASSWORD_LENGTH, }, }, })
Erzwingung deaktivieren
Führen Sie folgenden Befehl aus, um die Durchsetzung der Passwortrichtlinien auf Projektebene zu deaktivieren:
import { getAuth } from 'firebase-admin/auth'; // Update project config with password policy config getAuth().projectConfigManager().updateProjectConfig({ passwordPolicyConfig: { enforcementState: 'OFF', }, })
Führen Sie den folgenden Befehl aus, um die Durchsetzung der Passwortrichtlinie auf Tenantebene zu deaktivieren:
import { getAuth } from 'firebase-admin/auth'; // Update tenant config with password policy config getAuth().tenantManager().updateTenant(TENANT-ID, { passwordPolicyConfig: { enforcementState: 'OFF', }, })
Ersetzen Sie
TENANT-ID
durch die Mandanten-ID, für die Sie eine Passwortrichtlinie deaktivieren möchten.
Erzwingen auf der Clientseite
Passwörter können vor dem Senden auf der Clientseite anhand der Passwortrichtlinie für das Projekt oder einen Tenant überprüft werden.
import { getAuth, validatePassword } from 'firebase/auth';
const auth = getAuth();
auth.tenantId = TENANT-ID;
const status = await validatePassword(auth, 'password').catch((error) => {
// Password could not be validated.
});
const policy = status.passwordPolicy;
// Use the status and policy to show what requirements are met and which are missing.