Passwortrichtlinien aktivieren, deaktivieren und verwenden

In diesem Dokument wird beschrieben, wie Sie Passwortrichtlinien festlegen, um die Passwortsicherheit für neue und bestehende Nutzer zu 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
  • Ziffer erforderlich
  • Nicht alphanumerisches Zeichen erforderlich
  • Mindestlänge des Passworts (6 bis 30 Zeichen; Standardwert: 6)
  • Maximale Länge des Passworts (maximal 4.096 Zeichen)

Die folgenden Zeichen erfüllen die Anforderung für nicht alphanumerische Zeichen, wenn sie konfiguriert sind:

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

Hinweis

Erzwingungsmodi

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

  • Erforderlich: Anmeldeversuche schlagen fehl, wenn Nutzer ein Passwort verwenden, das nicht Ihrer Richtlinie entspricht.
  • Benachrichtigen: Nutzer können sich mit einem nicht konformen Passwort anmelden. 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 aufzufordern, 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 Ihrer Richtlinie entspricht. Wenn Sie aktive Nutzer haben, empfehlen wir, die Erzwingung der Aktualisierung bei der Anmeldung nicht zu aktivieren, es sei denn, Sie möchten die Passwortrichtlinie sofort erzwingen. Verwenden Sie stattdessen den Benachrichtigungsmodus. So können sich Nutzer mit ihren aktuellen Passwörtern anmelden und erhalten Benachrichtigungen mit Details zu den Anforderungen, die ihr Passwort nicht erfüllt.

Wenn Sie die Erzwingung aktivieren, setzen Sie forceUpgradeOnSignin auf true, um die Erzwingung im Modus „Erforderlich“ zu aktivieren. Setzen Sie den Wert auf false, um die Erzwingung im Benachrichtigungsmodus zu aktivieren.

Erzwingung aktivieren

So erzwingen Sie eine Passwortrichtlinie:

  1. Konfigurieren Sie die Anmeldung per E-Mail und Passwort, falls noch nicht geschehen.
  2. Führen Sie Folgendes 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 erforderliche maximale Länge des Passworts
  3. Führen Sie Folgendes 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

  1. Führen Sie Folgendes 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',
      },
    })
    
  2. Führen Sie Folgendes 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.

Erzwingung auf der Clientseite

Passwörter können vor dem Senden auf der Clientseite anhand der Passwortrichtlinie für das Projekt oder einen Mandanten 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.