Passwortrichtlinien aktivieren, deaktivieren und verwenden

In diesem Dokument erfahren Sie, wie Sie die Passwortrichtlinien mithilfe von Passwortrichtlinien verbessern können. für neue und bestehende Nutzende.

Übersicht

Mit Passwortrichtlinien können Sie die Kontosicherheit verbessern, indem Sie Passwörter erzwingen und Komplexitätsanforderungen. Passwortrichtlinien unterstützen das folgende Passwort Anforderungen:

  • 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 konfiguriert:

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

Hinweise

Erzwingungsmodi

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

  • Erforderlich: Anmeldeversuche schlagen fehl, bis der Nutzer ein Passwort verwendet, das Ihren Richtlinien entspricht.
  • Benachrichtigen: Nutzer dürfen sich mit einem nicht konformen Passwort anmelden. Beliebig fehlende Kriterien, die zum Erfüllen der Richtlinie erforderlich sind, zurückgegeben. Zurückgegebene Kriterien umfassen:

    • 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 informieren, dass er seine . 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 Modus nur zu aktivieren, wenn Sie die Passwortrichtlinie sofort erzwingen. Verwenden Sie stattdessen den Benachrichtigungsmodus, Damit können sich Nutzer mit ihrem aktuellen Passwort anmelden und sendet Benachrichtigungen mit Details zu den Anforderungen, die das Passwort nicht erfüllt.

Wenn Sie die Erzwingung aktivieren, legen Sie forceUpgradeOnSignin auf true fest, um die Erzwingung zu aktivieren. erforderlich sind. Legen Sie die Einstellung auf false fest, um Berechtigungen im Benachrichtigungsmodus zu aktivieren.

Erzwingung aktivieren

So erzwingen Sie eine Passwortrichtlinie:

  1. Konfigurieren Sie die Anmeldung mit 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 Mindestpasswortlänge
    • 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().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 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',
      },
    })
    
  2. 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 einen Passwortrichtlinie.

Clientseitig erzwingen

Passwörter können anhand der Passwortrichtlinie für das Projekt oder einen Mandanten validiert werden auf der Client-Seite vor der Übermittlung.

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.