Passwortrichtlinien aktivieren, deaktivieren und verwenden

In diesem Dokument wird beschrieben, wie Sie Passwortrichtlinien festlegen, um die Passwortstärke für neue und bestehende Nutzer zu verbessern.

Wenn Sie eine Passwortrichtlinie über die Firebase Console festlegen möchten, lesen Sie den Abschnitt Passwortrichtlinie festlegen.

Ü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 Anforderungen an Passwörter:

  • Kleinbuchstaben erforderlich
  • Großbuchstaben erforderlich
  • Numerisches Zeichen 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, sofern sie konfiguriert sind:

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

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. Zurückgegebene Kriterien:

    • 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 des Upgrades 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 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. Legen Sie den Wert auf false fest, um die Erzwingung im Benachrichtigungsmodus zu aktivieren.

Erzwingung aktivieren

So erzwingen Sie eine Passwortrichtlinie:

  1. Falls noch nicht geschehen, konfigurieren Sie die Anmeldung mit E-Mail-Adresse und Passwort.
  2. So erzwingen Sie eine Passwortrichtlinie auf Projektebene:

    Firebase Console

    1. Rufen Sie in der Firebase Console die Seite Authentifizierungseinstellungen auf.

      Zu den Authentifizierungseinstellungen

    2. Wählen Sie den Tab Passwortrichtlinie aus.

    3. Konfigurieren Sie die ausgewählten Anforderungen an die Passwortstärke.

    4. Wählen Sie den Erzwingungsmodus (Erforderlich oder Benachrichtigen) aus und legen Sie fest, ob bei der Anmeldung ein Passwort-Upgrade erzwungen werden soll.

    5. Klicken Sie auf Speichern.

    REST

    1. Geben Sie in der Google Cloud Console mit dem gcloud auth print-access-token-Befehl ein Zugriffstoken für Ihre Projekt-ID aus:

      gcloud auth print-access-token --project=PROJECT_ID
      
    2. So aktivieren Sie eine Passwortrichtlinie mit der Identity Toolkit API:

      curl -X PATCH -d "{'passwordPolicyConfig':{'enforcementState':'ENFORCE','forceUpgradeOnSignin':true,'constraints':{'requireUppercase':true,'requireLowercase':true,'requireNonAlphanumeric':true,'requireNumeric':true,'minLength':MIN_PASSWORD_LENGTH,'maxLength':MAX_PASSWORD_LENGTH}}}" \
          -H 'Authorization: Bearer ACCESS_TOKEN' \
          -H 'Content-Type: application/json' \
          -H 'X-Goog-User-Project: PROJECT_ID' \
          "https://identitytoolkit.googleapis.com/admin/v2/projects/PROJECT_ID/config?updateMask=passwordPolicyConfig"
      

      Ersetzen Sie Folgendes:

      • ACCESS_TOKEN: das Zugriffstoken, das Sie zuvor generiert haben
      • PROJECT_ID: Ihre Projekt-ID.
      • MIN_PASSWORD_LENGTH: die erforderliche Mindestlänge des Passworts
      • MAX_PASSWORD_LENGTH: die maximal erforderliche Passwortlänge
  3. So erzwingen Sie eine Passwortrichtlinie auf Mandantenebene:

    REST

    1. Geben Sie in der Google Cloud Console mit dem gcloud auth print-access-token-Befehl ein Zugriffstoken für Ihre Projekt-ID aus:

      gcloud auth print-access-token --project=PROJECT_ID
      
    2. So aktivieren Sie eine Passwortrichtlinie für einen Mandanten mit der Identity Toolkit API:

      curl -X PATCH -d "{'passwordPolicyConfig':{'enforcementState':'ENFORCE','forceUpgradeOnSignin':true,'constraints':{'requireUppercase':true,'requireLowercase':true,'requireNonAlphanumeric':true,'requireNumeric':true,'minLength':MIN_PASSWORD_LENGTH,'maxLength':MAX_PASSWORD_LENGTH}}}" \
          -H 'Authorization: Bearer ACCESS_TOKEN' \
          -H 'Content-Type: application/json' \
          -H 'X-Goog-User-Project: PROJECT_ID' \
          "https://identitytoolkit.googleapis.com/admin/v2/projects/PROJECT_ID/tenants/TENANT_ID?updateMask=passwordPolicyConfig"
      

      Ersetzen Sie Folgendes:

      • ACCESS_TOKEN: das Zugriffstoken, das Sie zuvor generiert haben
      • PROJECT_ID: Ihre Projekt-ID.
      • TENANT_ID: die ID des Mandanten, für den Sie die Passwortrichtlinie erzwingen möchten
      • MIN_PASSWORD_LENGTH: die erforderliche Mindestlänge des Passworts
      • MAX_PASSWORD_LENGTH: die maximal erforderliche Passwortlänge

Erzwingung deaktivieren

  1. So deaktivieren Sie die Durchsetzung von Passwortrichtlinien auf Projektebene:

    Firebase Console

    1. Rufen Sie in der Firebase Console die Seite Authentifizierungseinstellungen auf.

      Zu den Authentifizierungseinstellungen

    2. Wählen Sie den Tab Passwortrichtlinie aus.

    3. Deaktivieren Sie die Erzwingung von Passwortrichtlinien.

    4. Klicken Sie auf Speichern.

    REST

    1. Geben Sie in der Google Cloud Console mit dem gcloud auth print-access-token-Befehl ein Zugriffstoken für Ihre Projekt-ID aus:

      gcloud auth print-access-token --project=PROJECT_ID
      
    2. Erzwingung von Passwortrichtlinien mit der Identity Toolkit API deaktivieren:

      curl -X PATCH -d "{'passwordPolicyConfig':{'enforcementState':'OFF'}}" \
          -H 'Authorization: Bearer ACCESS_TOKEN' \
          -H 'Content-Type: application/json' \
          -H 'X-Goog-User-Project: PROJECT_ID' \
          "https://identitytoolkit.googleapis.com/admin/v2/projects/PROJECT_ID/config?updateMask=passwordPolicyConfig"
      

      Ersetzen Sie Folgendes:

      • ACCESS_TOKEN: das Zugriffstoken, das Sie zuvor generiert haben
      • PROJECT_ID: Ihre Projekt-ID.
  2. So deaktivieren Sie die Durchsetzung von Passwortrichtlinien auf Mandantenebene:

    REST

    1. Geben Sie in der Google Cloud Console mit dem gcloud auth print-access-token-Befehl ein Zugriffstoken für Ihre Projekt-ID aus:

      gcloud auth print-access-token --project=PROJECT_ID
      
    2. So deaktivieren Sie die Erzwingung der Passwortrichtlinie für einen Mandanten mit der Identity Toolkit API:

      curl -X PATCH -d "{'passwordPolicyConfig':{'enforcementState':'OFF'}}" \
          -H 'Authorization: Bearer ACCESS_TOKEN' \
          -H 'Content-Type: application/json' \
          -H 'X-Goog-User-Project: PROJECT_ID' \
          "https://identitytoolkit.googleapis.com/admin/v2/projects/PROJECT_ID/tenants/TENANT_ID?updateMask=passwordPolicyConfig"
      

      Ersetzen Sie Folgendes:

      • ACCESS_TOKEN: das Zugriffstoken, das Sie zuvor generiert haben
      • PROJECT_ID: Ihre Projekt-ID.
      • TENANT_ID: die ID des Mandanten, für den Sie die Passwortrichtlinie deaktivieren möchten

Clientseitige Erzwingung

Passwörter können clientseitig vor dem Senden 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 couldn't be validated.
});
const policy = status.passwordPolicy;

// Use the status and policy to show what requirements are met and which are
// missing.