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 können.

Überblick

Mit Passwortrichtlinien können Sie die Kontosicherheit verbessern, indem Sie Anforderungen an die Passwortkomplexität erzwingen. Passwortrichtlinien unterstützen die folgenden Passwortanforderungen:

  • Kleinbuchstabe erforderlich
  • Großbuchstaben erforderlich
  • Numerisches Zeichen erforderlich
  • Nicht alphanumerisches Zeichen erforderlich
  • Mindestlänge des Passworts (zwischen 6 und 30 Zeichen; standardmäßig 6 Zeichen)
  • Maximale Passwortlänge (maximal 4.096 Zeichen)

Die folgenden Zeichen erfüllen die Anforderung an nicht alphanumerische Zeichen, sofern konfiguriert:

^ $ * . [ ] { } ( ) ? " ! @ # % & / \ , > < ' : ; | _ ~ `

Hinweise

Erzwingungsmodi

Sie können die Erzwingung von Passwortrichtlinien in zwei Modi aktivieren:

  • Erforderlich: Anmeldeversuche schlagen fehl, bis der Nutzer zu einem Passwort wechselt, das Ihrer Richtlinie entspricht.
  • Benachrichtigen: Nutzer dürfen sich mit einem nicht konformen Passwort anmelden. Alle fehlenden Kriterien, die zur Erfüllung 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, empfehlen wir, den erforderlichen Modus nur zu aktivieren, wenn Sie die Passwortrichtlinie sofort erzwingen möchten. Verwenden Sie stattdessen den Benachrichtigungsmodus, in dem sich Nutzer mit ihren aktuellen Passwörtern anmelden können und Benachrichtigungen mit ausführlichen Informationen zu den Anforderungen sendet, die für ihr Passwort fehlen.

Wenn Sie die Erzwingung aktivieren, setzen Sie forceUpgradeOnSignin auf true, um die Erzwingung im erforderlichen Modus zu aktivieren. Legen Sie false fest, um die Erzwingung im Benachrichtigungsmodus zu aktivieren.

Erzwingung aktivieren

So erzwingen Sie eine Passwortrichtlinie:

  1. Konfigurieren Sie die Anmeldung per E-Mail-Adresse und Passwort, falls Sie dies noch nicht getan haben.
  2. 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 Mindestlänge des Passworts
    • MAX_PASSWORD_LENGTH: die maximal erforderliche Passwortlänge
  3. 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().tenantConfigManager().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

  1. Führen Sie folgenden Befehl aus, um die Erzwingung der Passwortrichtlinie auf Projektebene zu deaktivieren:

    import { getAuth } from 'firebase-admin/auth';
    
    // Update project config with password policy config
    getAuth().projectConfigManager().updateProjectConfig({
      passwordPolicyConfig: {
        enforcementState: 'OFF',
      },
    })
    
  2. Führen Sie folgenden Befehl aus, um die Erzwingung der Passwortrichtlinie auf Mandantenebene zu deaktivieren:

    import { getAuth } from 'firebase-admin/auth';
    
    // Update tenant config with password policy config
    getAuth().tenantConfigManager().updateTenant(TENANT-ID, {
      passwordPolicyConfig: {
        enforcementState: 'OFF',
      },
    })
    

    Ersetzen Sie TENANT-ID durch die Mandanten-ID, für die Sie eine Passwortrichtlinie deaktivieren möchten.

Erzwingung auf Clientseite

Passwörter können vor der Übermittlung 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.