Identity Platform in die reCAPTCHA Enterprise API einbinden

In diesem Dokument erfahren Sie, wie Sie die Identity Platform-Integration mit der reCAPTCHA Enterprise API nutzen können, um die Sicherheit für Ihre Nutzer zu verbessern. Diese Funktion macht Ihre App widerstandsfähiger gegen Spam, Missbrauch und andere betrügerische Aktivitäten.

Bei der Integration wird in Ihrem Namen eine reCAPTCHA Enterprise-Bewertung erstellt, um Nutzeranfragen zu validieren. Informationen zu den Preisen finden Sie unter reCAPTCHA-Preise.

Übersicht

Wenn Sie die Identity Platform-Integration mit der reCAPTCHA Enterprise API einrichten, aktivieren Sie die Standardschutzfunktion von reCAPTCHA: den reCAPTCHA-Botschutz. Mit dem Botschutz stellt Identity Platform in Ihrem Namen auf Punktzahlen basierende reCAPTCHA-Schlüssel in Ihrem Projekt bereit. Wenn ein Nutzer über einen der folgenden Vorgänge auf Ihre App oder Website zugreift, lädt das Client SDK reCAPTCHA, sofern der entsprechende Anbieter aktiviert ist.

Anbieter Vorgang Methode
passwordProvider Anmeldung per E‑Mail-Adresse und Passwort signInWithPassword
Registrierung mit E-Mail-Adresse und Passwort signUpPassword
Anmeldung mit E-Mail-Link getOobCode
Passwortzurücksetzung getOobCode
phoneProvider Registrierung oder Anmeldung über Telefonnummer sendVerificationCode
Registrierung der Telefonnummer für die MFA mfaSmsEnrollment
Anmeldung mit Telefonnummer für die 2‑Faktor-Authentifizierung mfaSmsSignIn

reCAPTCHA stellt Identity Platform dann Werte zur Verfügung, mit denen das Risiko der Anfrage basierend auf Ihrer Konfiguration und Risikotoleranz bewertet wird.

Weitere Informationen finden Sie unter Übersicht zu reCAPTCHA.

Hinweis

Je nachdem, welchen Authentifizierungsablauf Sie mit reCAPTCHA schützen möchten, müssen Sie Folgendes einrichten:

Dienstkonto erstellen

Für die Identity Platform-Integration mit der reCAPTCHA Enterprise API ist ein Identity Platform-Dienstkonto für jedes Projekt erforderlich, in dem reCAPTCHA verwendet wird. Dadurch kann Identity Platform reCAPTCHA-Schlüssel in Ihrem Namen verwalten. Wenn Sie bereits ein Dienstkonto erstellt haben, gewähren Sie ihm Zugriff auf reCAPTCHA.

Wenn Sie noch kein Dienstkonto erstellt haben oder zusätzliche Projekte mit reCAPTCHA schützen möchten, gehen Sie so vor:

  1. So erstellen Sie ein Dienstkonto mit der Google Cloud CLI:

    gcloud beta services identity create \
        --service=identitytoolkit.googleapis.com \
        --project=PROJECT_ID
    

    Ersetzen Sie PROJECT_ID durch die ID des Projekts.

  2. Gewähren Sie dem Dienstkonto Zugriff auf reCAPTCHA:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-identitytoolkit.iam.gserviceaccount.com \
        --role=roles/identitytoolkit.serviceAgent
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die Projekt-ID
    • PROJECT_NUMBER: die Projektkontonummer

reCAPTCHA-Modi für den Schutz vor Bots

Der reCAPTCHA-Bot-Schutz bietet zwei Modi, mit denen Sie Nutzer schützen können: Prüfen und Erzwingen. Das Verhalten dieser Modi hängt vom Identitätsanbieter ab.

E‑Mail-Passwortanbieter

Die Modi „Prüfen“ und „Erzwingen“ verhalten sich bei Authentifizierungsabläufen mit E‑Mail-Adresse und Passwort so:

Audit-Modus

Wenn Sie die Erzwingung von E-Mail-Passwörtern auf den Prüfmodus festlegen, erstellt Identity Platform ein oder mehrere reCAPTCHA-Schlüssel in Ihrem Projekt, mit denen der Traffic zu Identity Platform-APIs bewertet wird, ohne Anfragen zu blockieren. Anhand der Messwerte, die im Prüfmodus ausgegeben werden, können Sie feststellen, ob Sie die reCAPTCHA-Erzwingung aktivieren sollten.

Modus „Erzwingen“

Wenn Sie die Erzwingung von E-Mail-Passwörtern auf „Erzwingen“ festlegen, erstellt Identity Platform ein oder mehrere reCAPTCHA-Schlüssel in Ihrem Projekt, mit denen der Traffic zu Identity Platform-APIs bewertet wird. API-Anfragen ohne reCAPTCHA-Token werden abgelehnt. Aktivieren Sie die Erzwingung erst, wenn Sie alle Ihre Clients zu einem SDK mit reCAPTCHA-Unterstützung migriert haben.

Bereitstellung der Smartphones

So verhalten sich die Modi „Prüfen“ und „Erzwingen“ bei Abläufen zur Telefonauthentifizierung.

Audit-Modus

Wenn Sie die Erzwingung der Telefonauthentifizierung auf den Prüfmodus festlegen, verwendet Identity Platform reCAPTCHA-Botschutz für die App-Überprüfung. Wenn die Anfrage eines Nutzers die Gebührenbetrugsprüfung besteht, wird ein SMS-Bestätigungscode gesendet. Wenn die Anfrage eines Nutzers die Gebührenbetrugsprüfung nicht besteht und Sie das Client SDK verwenden, löst Identity Platform alternative Bestätigungsmethoden aus, um den Telefonauthentifizierungsablauf abzuschließen. Die akzeptierten Fallback-Methoden hängen von der Plattform Ihrer App ab.

Das Client SDK löst die alternativen Bestätigungsmethoden in den folgenden Szenarien aus:

  • Das reCAPTCHA-Token fehlt.
  • Das reCAPTCHA-Token ist ungültig oder abgelaufen.
  • Das reCAPTCHA-Token überschreitet den Schwellenwert für den Score nicht.
  • reCAPTCHA ist nicht richtig konfiguriert.

Achten Sie darauf, dass die alternativen Bestätigungsmethoden für die Plattform Ihrer App eingerichtet sind und bei Bedarf vom Client SDK ausgelöst werden können.

Web

Wenn die erste Bewertung des Bot-Schutzes fehlschlägt, wird im Prüfmodus reCAPTCHA v2 zur Bestätigung verwendet. Daher müssen Sie die reCAPTCHA-Verifizierung (RecaptchaVerifier) einrichten und an die folgenden Vorgänge zur Telefonauthentifizierung übergeben:

  • verifyPhoneNumber
  • signInWithPhoneNumber
  • linkWithPhoneNumber
  • reauthenticateWithPhoneNumber
Ohne die reCAPTCHA-Verifizierung kann Identity Platform reCAPTCHA v2 nicht initiieren und gibt auth/argument-error zurück. Weitere Informationen zum Einrichten der reCAPTCHA-Verifizierung finden Sie in der Firebase-Dokumentation unter reCAPTCHA-Verifizierung einrichten.

Android

Wenn die erste Bewertung zum Schutz vor Bots fehlschlägt, wird Ihre App im Prüfmodus anhand der Play Integrity API geprüft. Wenn diese Überprüfung fehlschlägt, wird reCAPTCHA v2 ausgelöst. reCAPTCHA v2 kann in den folgenden Fällen ausgelöst werden:

  • Wenn auf dem Gerät des Nutzers die Google Play-Dienste nicht installiert sind.
  • Wenn die App nicht über den Google Play Store vertrieben wird (im Authentication SDK v21.2.0 und höher).
  • Wenn das abgerufene SafetyNet-Token nicht gültig war (bei Authentication SDK-Versionen vor v21.2.0).
Weitere Informationen zum Einrichten der Android-App-Überprüfung finden Sie in der Firebase-Dokumentation unter App-Überprüfung aktivieren.

iOS

Wenn die erste Bewertung des Bot-Schutzes fehlschlägt, wird im Audit-Modus zur Bestätigung auf lautlose Push-Benachrichtigungen zurückgegriffen. Bei dieser Bestätigungsmethode wird ein Token mit einer lautlosen Push-Benachrichtigung an Ihre App auf dem anfragenden Gerät gesendet. Wenn Ihre App die Benachrichtigung erfolgreich empfängt, wird die Smartphone-Authentifizierung fortgesetzt. Wenn Ihre App die Push-Benachrichtigung nicht empfängt, wird reCAPTCHA v2 ausgelöst. reCAPTCHA v2 wird möglicherweise ausgelöst, wenn stumme Push-Benachrichtigungen nicht richtig konfiguriert sind.

Weitere Informationen zum Einrichten der iOS-App-Überprüfung finden Sie in der Firebase-Dokumentation unter App-Überprüfung aktivieren.

Modus „Erzwingen“

Wenn Sie die Erzwingung der Telefonauthentifizierung auf „Erzwingen“ setzen, verwendet Identity Platform reCAPTCHA-Botschutz für die App-Überprüfung. Wenn die Anfrage eines Nutzers die Gebührenbetrugsprüfung besteht, wird ein SMS-Bestätigungscode gesendet. Wenn die Anfrage eines Nutzers die Gebührenbetrugsprüfung nicht besteht, blockiert Identity Platform die Anfrage und sendet keine SMS mit einem Bestätigungscode.

Im erzwungenen Modus ist keine Fallback-Bestätigung erforderlich. Sie müssen keine zusätzlichen Bestätigungsmethoden für Ihre App einrichten. Wir empfehlen jedoch, reCAPTCHA-Verifizierung für Web-Apps einzurichten, damit reCAPTCHA v2 aktiviert ist, wenn Sie den reCAPTCHA-Modus Ihrer App in AUDIT oder OFF ändern.

Identity Platform-Integration mit der reCAPTCHA Enterprise API einrichten

So richten Sie die Identity Platform-Integration in die reCAPTCHA Enterprise API ein:

  • Verwenden Sie das Admin SDK, um den reCAPTCHA-Erzwingungsstatus festzulegen und den Botschutz zu aktivieren.
  • Konfigurieren Sie das Client-SDK für die Plattform Ihrer App.

Wir empfehlen, die reCAPTCHA-Erzwingung zuerst im Prüfmodus zu aktivieren und die reCAPTCHA-Messwerte zu beobachten, die von Ihrem Projekt ausgegeben werden, um sicherzustellen, dass die Authentifizierungsabläufe angemessen geschützt sind. So unterbrechen Sie den Nutzer-Traffic nicht, während Sie die Verwendung von reCAPTCHA prüfen. Nachdem Sie überprüft haben, dass Ihre Authentifizierungsabläufe geschützt sind, stellen Sie den Botschutz auf ENFORCE ein.

reCAPTCHA-Bot-Schutz aktivieren

E‑Mail-Passwortanbieter

So aktivieren Sie den reCAPTCHA-Botschutz für E‑Mail-/Passwort-Authentifizierungsabläufe:

  1. Falls noch nicht geschehen, aktivieren Sie die reCAPTCHA Enterprise API für Ihr Projekt.

  2. Wenn Sie den Botschutz für ein Projekt aktivieren möchten, verwenden Sie das Admin SDK. Die reCAPTCHA-Unterstützung ist im Node.js Admin SDK ab Version 11.7.0 verfügbar.

    Beispiel:

    // Update project config with reCAPTCHA config
    const updateConfigRequest = {
      recaptchaConfig: {
        emailPasswordEnforcementState:  'ENFORCE_MODE',
        managedRules: [{
          endScore: END_SCORE,
          action: 'BLOCK'
        }]
      }
    };
    const updateProjectConfigWithRecaptcha = () => {
      getAuth().projectConfigManager().updateProjectConfig(updateConfigRequest).then((response) => {
        console.log('Updated reCAPTCHA config for project: ', response.recaptchaConfig);
      }).catch((error) => {
        console.log('Error updating project config:', error);
      });
    }
    

    Ersetzen Sie Folgendes:

    • ENFORCE_MODE: Der Modus, den Sie für die Erzwingung der reCAPTCHA-E-Mail-Passwort-Authentifizierung festlegen möchten. Gültige Werte sind OFF, AUDIT und ENFORCE. Wenn Sie den Botschutz aktivieren möchten, muss dieser Parameter auf AUDIT oder ENFORCE festgelegt sein. Wenn Sie den Botschutz zum ersten Mal aktivieren, empfehlen wir, diesen Parameter auf AUDIT festzulegen und dafür zu sorgen, dass Ihre Authentifizierungsabläufe geschützt sind, bevor Sie ihn auf ENFORCE festlegen. Weitere Informationen zur Funktionsweise der Modi finden Sie unter reCAPTCHA-Modi für den Bot-Schutz.
    • END_SCORE: Der niedrigste Wert für die Bot-Schutzbewertung, den eine Anfrage haben kann, bevor sie fehlschlägt. Sie können diesen Wert zwischen 0.0 und 1.0 festlegen. Wenn Sie beispielsweise einen Schwellenwert von 0.6 festlegen, schlägt reCAPTCHA jede Anfrage mit einem Wert von 0.5 oder niedriger fehl. Je höher Sie den Wert festlegen, desto strenger sind die Regeln.

    Sie können den Botschutz auch mit derselben Konfigurationsmethode für einen Mandanten über das Admin SDK aktivieren. Weitere Informationen zum Aktualisieren eines Mandanten finden Sie unter Mandanten aktualisieren.

  3. Wenn Sie Identity Platform unter iOS oder Android verwenden, müssen Sie Ihre App in der Firebase Console registrieren: