Passwortrichtlinien aktivieren, deaktivieren und verwenden
In diesem Dokument erfahren Sie, wie Sie Passwortrichtlinien verwenden können, um die Passwortstärke für neue und bestehende Nutzer zu verbessern.
Überblick
Mit Passwortrichtlinien können Sie die Kontosicherheit verbessern, indem Sie Anforderungen an die Passwortkomplexität erzwingen. Passwortrichtlinien unterstützen die folgenden Passwortanforderungen:
- Kleinbuchstaben erforderlich
- Großbuchstaben erforderlich
- Numerisches Zeichen erforderlich
- Nicht alphanumerisches Zeichen erforderlich
- Mindestlänge des Passworts (zwischen 6 und 30 Zeichen; Standardlänge: 6)
- Maximale Passwortlänge (maximale Länge: 4.096 Zeichen)
Die folgenden Zeichen erfüllen die Anforderung nicht alphanumerischer Zeichen, wenn sie konfiguriert sind:
^ $ * . [ ] { } ( ) ? " ! @ # % & / \ , > < ' : ; | _ ~ `
Hinweise
- Installieren Sie das Admin SDK.
Erzwingungsmodi
Sie können die Erzwingung von Passwortrichtlinien in zwei Modi aktivieren:
- Anforderung: Anmeldeversuche schlagen fehl, bis der Nutzer ein Passwort verwendet, das Ihrer Richtlinie entspricht.
Benachrichtigen: Nutzer dürfen sich mit einem nicht konformen Passwort anmelden. Alle fehlenden Kriterien, die zum Erfüllen der Richtlinie erforderlich sind, werden zurückgegeben. Folgende Kriterien werden zurückgegeben:
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 zu bitten, sein Passwort zu aktualisieren. 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 auswählen, das Ihren Richtlinien entspricht. Wenn Sie aktive Nutzer haben, sollten Sie den Anforderungsmodus nur dann aktivieren, wenn Sie die Passwortrichtlinie sofort erzwingen möchten. Verwenden Sie stattdessen den Benachrichtigungsmodus. Nutzer können sich mit ihren aktuellen Passwörtern anmelden und Benachrichtigungen senden, in denen genau beschrieben wird, welche Anforderungen ihr Passwort erfüllen muss.
Wenn Sie die Erzwingung aktivieren, legen Sie forceUpgradeOnSignin
auf true
fest, um die Erzwingung im Modus "Erforderlich" zu aktivieren. Legen Sie die Einstellung auf false
fest, um Berechtigungen im Benachrichtigungsmodus zu aktivieren.
Erzwingung aktivieren
So erzwingen Sie eine Passwortrichtlinie:
- Konfigurieren Sie die Anmeldung mit E-Mail-Adresse und Passwort, falls Sie dies noch nicht getan haben.
Führen Sie 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 erforderliche MindestpasswortlängeMAX_PASSWORD_LENGTH
: die maximal erforderliche Passwortlänge
Führen Sie folgenden Befehl aus, um eine Passwortrichtlinie auf Mandantenebene 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 Erzwingung von 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 folgenden Befehl aus, um die Erzwingung von Passwortrichtlinien auf Mandantenebene 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.
Clientseitig erzwingen
Passwörter können vor dem Senden anhand der Passwortrichtlinie für das Projekt oder einen Mandanten auf Clientseite validiert 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.