Kontobezogene betrügerische Aktivitäten in mobilen Apps erkennen und verhindern

In diesem Dokument erfahren Sie, wie Sie mit reCAPTCHA Account Defender kontobezogene betrügerische Aktivitäten in mobilen Anwendungen erkennen und verhindern.

Mit reCAPTCHA können Sie wichtige Aktionen wie Anmeldung und Bezahlvorgang schützen. Es gibt jedoch viele subtile Formen von Kontomissbrauch, die erkannt werden können, wenn das Verhalten eines bestimmten Nutzers in einer mobilen Anwendung über einen bestimmten Zeitraum beobachtet wird. reCAPTCHA Account Defender hilft dabei, diese Art von subtilem Missbrauch zu erkennen, indem ein websitespezifisches Modell für Ihre mobile Anwendung erstellt wird, um einen Trend zu verdächtigem Verhalten oder eine Änderung der Aktivität zu erkennen. Mithilfe des websitespezifischen Modells hilft Ihnen reCAPTCHA Account Defender, Folgendes zu erkennen:

  • Verdächtige Aktivitäten
  • Konten mit ähnlichen Verhaltensmustern
  • Anfragen von Geräten, die für bestimmte Nutzer als vertrauenswürdig gekennzeichnet wurden

Basierend auf der Analyse von reCAPTCHA Account Defender und dem websitespezifischen Modell können Sie die folgenden Maßnahmen ergreifen:

  • Betrügerische Konten einschränken oder deaktivieren
  • Versuche zur Kontoübernahme verhindern
  • Die Auswirkungen von erfolgreichen Kontoübernahmen begrenzen.
  • Gewähren Sie nur Anfragen von legitimen Nutzerkonten Zugriff.
  • Die Anmeldung auf vertrauenswürdigen Geräten wird vereinfacht.

Hinweise

  1. reCAPTCHA Account Defender für mobile Anwendungen ist verfügbar, nachdem Sie eine automatische Sicherheitsüberprüfung ausgelöst haben, indem Sie Ihrem Projekt ein Rechnungskonto hinzugefügt haben. Fügen Sie Ihrem Projekt ein Rechnungskonto hinzu , um Ihre Website auf diese Funktion umzustellen.
  2. Umgebung für reCAPTCHA vorbereiten
  3. Erstellen Sie einen punktebasierten Schlüssel.

Ihre mobile Anwendung für reCAPTCHA Account Defender konfigurieren

Für reCAPTCHA Account Defender ist ein umfassendes Verständnis der Kontoaktivitäten erforderlich, um eine effektive Erkennung zu ermöglichen. So leiten Sie kontobezogene Aktivitäten an reCAPTCHA Account Defender weiter und erstellen und verbessern Ihr websitespezifisches Modell:

  1. reCAPTCHA in Ihre mobile Anwendung einbinden.

  2. Berichte zu wichtigen Nutzeraktionen
  3. Kritische Nutzerereignisse bewerten
  4. Nutzerereignisse annotieren, um Ihr websitespezifisches Modell zu optimieren

Berichte zu wichtigen Nutzeraktionen erstellen

Um verdächtige Aktivitätsmuster zu erkennen und typische Aktivitätsmuster auf Ihrer Website besser nachvollziehen zu können, benötigt reCAPTCHA Account Defender Informationen zu kritischen Nutzeraktionen. Rufen Sie für jede Aktion Ihrer App, die mit reCAPTCHA geschützt ist, die execute()-Methode mit RecaptchaAction auf. Weitere Informationen zu execute() und RecaptchaAction finden Sie hier:

reCAPTCHA bietet eine Reihe von vordefinierten Aktionen. Bei Bedarf können Sie auch benutzerdefinierte Aktionen erstellen.

In der folgenden Tabelle sind die Aktionsnamen aufgeführt, die Sie beim Melden wichtiger Nutzeraktionen verwenden können.

Aktionsname Vom Nutzer initiiertes Ereignis oder Nutzeraktion
LOGIN

Melden Sie sich in der mobilen App an.

SIGNUP

Registriere dich in der mobilen App.

Wichtige Nutzerereignisse bewerten

Wenn Sie execute() für eine Nutzeraktion aufrufen, wird ein Token generiert. Erstellen Sie für die wichtigen Nutzerereignisse wie erfolgreiche und fehlgeschlagene Anmeldungen, Registrierungen und Aktionen der angemeldeten Nutzer eine Bewertung, um die Ergebnisse des execute()-Aufrufs zu beurteilen. Die Bewertung liefert Ihnen ein Risikourteil, anhand dessen Sie entscheiden können, wie Sie mit potenziell betrügerischen Aktivitäten umgehen. Sie können beispielsweise verdächtige Anfragen blockieren, riskante Anmeldungen anfechten und Konten prüfen, die für Sie von Interesse sind.

Für reCAPTCHA Account Defender müssen Sie eine stabile Konto-ID angeben, um Nutzeraktivitäten wie Anmeldeanfragen, Anfragen von angemeldeten Nutzern und Registrierungsanfragen einem bestimmten Konto zuzuordnen. So kann reCAPTCHA Account Defender die Nutzeraktivitätsmuster besser nachvollziehen und ein Aktivitätsmodell für jedes Konto erstellen, um anormale und missbräuchliche Zugriffe besser zu erkennen.

Wählen Sie eine stabile Konto-ID accountId aus, die vom Nutzer nicht häufig geändert wird, und geben Sie sie in der Methode projects.assessments.create an. Diese stabile Konto-ID sollte für alle Ereignisse, die sich auf denselben Nutzer beziehen, denselben Wert haben. Sie können Folgendes als Konto-ID angeben:

Nutzerkennungen

Wenn jedes Konto eindeutig mit einem stabilen Nutzernamen, einer E-Mail-Adresse oder einer Telefonnummer verknüpft werden kann, können Sie diese als accountId verwenden. Wenn Sie solche websiteübergreifenden IDs angeben (IDs, die auf Websites wiederverwendet werden können), verwendet reCAPTCHA diese Informationen, um den Schutz Ihrer Nutzerkonten auf der Grundlage von websiteübergreifenden Modellen zu verbessern. Dazu werden missbräuchliche Konto-IDs gemeldet und Kenntnisse zu websiteübergreifenden Missbrauchsmustern in Bezug auf diese IDs genutzt.

Wenn Sie eine interne Nutzer-ID haben, die eindeutig mit jedem Konto verknüpft ist, können Sie diese als accountId angeben.

Gehasht oder verschlüsselt

Wenn Sie keine interne Nutzer-ID haben, die eindeutig mit jedem Konto verknüpft ist, können Sie jede stabile Kennung in eine undurchsichtige, websitespezifische Konto-ID umwandeln. Diese Kennung ist weiterhin erforderlich, damit reCAPTCHA Account Defender die Nutzeraktivitätsmuster nachvollziehen und anormales Verhalten erkennen kann. Sie wird jedoch nicht für andere Websites freigegeben.

Wählen Sie eine stabile Konto-ID aus und machen Sie sie undurchsichtig, bevor Sie sie an reCAPTCHA senden, indem Sie sie verschlüsseln oder hashen:

  • Verschlüsselung (empfohlen): Verschlüsseln Sie die Konto-ID mit einer deterministischen Verschlüsselungsmethode, die einen stabilen Geheimtext erzeugt. Eine ausführliche Anleitung finden Sie unter Daten deterministisch verschlüsseln. Wenn Sie die symmetrische Verschlüsselung anstelle des Hashwerts verwenden, müssen Sie keine Zuordnung zwischen Ihren Nutzer-IDs und den entsprechenden undurchsichtigen Nutzer-IDs beibehalten. Entschlüsseln Sie die intransparenten Kennungen, die von reCAPTCHA zurückgegeben werden, um sie in die Nutzer-ID umzuwandeln.

  • Hash-Technologie: Wir empfehlen, die Konto-ID mit der SHA256-HMAC-Methode mit einem benutzerdefinierten Salt Ihrer Wahl zu hashen. Da Hashes nur in eine Richtung funktionieren, müssen Sie eine Zuordnung zwischen den generierten Hashes und Ihren Nutzer-IDs beibehalten, damit Sie die gehashte Konto-ID, die zurückgegeben wird, den ursprünglichen Konten zuordnen können.

Sie können nicht nur eine stabile Konto-ID für alle kontobezogenen Anfragen angeben, sondern auch zusätzliche Konto-IDs, die möglicherweise nicht stabil sind, für bestimmte Anfragen. Kontextspezifische Konto-IDs, die zusätzlich zur accountId bereitgestellt werden, helfen reCAPTCHA Account Defender, Nutzeraktivitäten besser zu verstehen und Kontoübernahmeversuche zu erkennen, um Ihre Nutzerkonten zu schützen. Wenn Sie zusätzliche Kennungen angeben, verwendet reCAPTCHA diese Informationen, um den Schutz Ihrer Nutzerkonten auf der Grundlage von websiteübergreifenden Modellen zu verbessern. Dazu werden missbräuchliche Konto-IDs gemeldet und websiteübergreifende Missbrauchsmuster im Zusammenhang mit diesen IDs berücksichtigt. Sie können beispielsweise Folgendes angeben:

  • Der Nutzername, die E-Mail-Adresse oder die Telefonnummer, die als Anmelde-Alias für Anmeldeanfragen verwendet wurde

  • Die E-Mail-Adresse oder Telefonnummer, die für eine Multi-Faktor-Authentifizierung bestätigt wurde

  • Eine E-Mail-Adresse oder Telefonnummer (primär oder sekundär), die der Nutzer bei einer Anfrage zur Kontoaktualisierung angegeben hat

  • Die E-Mail-Adressen und Telefonnummern, die der Nutzer bei einer Registrierungsanfrage angibt

Fügen Sie die ausgewählte stabile Konto-ID dem Parameter accountId in der Methode projects.assessments.create für alle kontobezogenen Anfragen an. Optional können Sie zusätzliche Konto-IDs für die entsprechenden Anfragen angeben. Verwenden Sie dazu das Feld userIds in der Bewertung.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Google Cloud-Projekt-ID
  • TOKEN: vom Aufruf execute() zurückgegebenes Token
  • KEY_ID: reCAPTCHA-Schlüssel, der der App zugeordnet ist
  • ACCOUNT_ID: Die Kennung, die eindeutig mit dem Nutzerkonto für ein Nutzerkonto in Ihrer App verknüpft ist.
  • EMAIL_ADDRESS: Optional. Eine E-Mail-Adresse, die mit dieser Anfrage verknüpft ist, falls zutreffend
  • PHONE_NUMBER: Optional. Eine Telefonnummer, die mit dieser Anfrage verknüpft ist (falls vorhanden)
  • USERNAME: Optional. Ein Nutzername, der mit dieser Anfrage verknüpft ist (falls zutreffend)

HTTP-Methode und URL:

POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments

JSON-Text der Anfrage:

{
  "event": {
    "token": "TOKEN",
    "siteKey": "KEY_ID",
    "userInfo": {
      "accountId": "ACCOUNT_ID",
      "userIds": [
        {
          "email": "EMAIL_ADDRESS"
        },
        {
          "phoneNumber": "PHONE_NUMBER"
        },
        {
          "username": "USERNAME"
        }
      ]
    }
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments" | Select-Object -Expand Content

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "tokenProperties": {
    "valid": true,
    "androidPackageName": "com.example.app" or "iosBundleId": "com.example.app",
    "action": "login",
    "createTime": "2019-03-28T12:24:17.894Z"
   },
  "riskAnalysis": {
    "score": 0.6,
  },
 "event": {
    "token": "TOKEN",
    "siteKey": "KEY",
    "userInfo": {
      "accountId": "ACCOUNT_ID"
    }
  },
  "name": "projects/PROJECT_NUMBER/assessments/b6ac310000000000",
  "accountDefenderAssessment": {
    "labels": ["SUSPICIOUS_LOGIN_ACTIVITY"]
  }
}

Codebeispiel

Java

Richten Sie zur Authentifizierung bei reCAPTCHA die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.


import com.google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseServiceClient;
import com.google.protobuf.ByteString;
import com.google.recaptchaenterprise.v1.AccountDefenderAssessment.AccountDefenderLabel;
import com.google.recaptchaenterprise.v1.Assessment;
import com.google.recaptchaenterprise.v1.CreateAssessmentRequest;
import com.google.recaptchaenterprise.v1.Event;
import com.google.recaptchaenterprise.v1.ProjectName;
import com.google.recaptchaenterprise.v1.RiskAnalysis.ClassificationReason;
import com.google.recaptchaenterprise.v1.TokenProperties;
import com.google.recaptchaenterprise.v1.UserId;
import com.google.recaptchaenterprise.v1.UserInfo;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.List;
import java.util.UUID;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;

public class AccountDefenderAssessment {

  public static void main(String[] args)
      throws IOException, NoSuchAlgorithmException, InvalidKeyException {
    // TODO(developer): Replace these variables before running the sample.
    // projectId: Google Cloud Project ID
    String projectId = "project-id";

    // recaptchaSiteKey: Site key obtained by registering a domain/app to use recaptcha
    // services.
    String recaptchaSiteKey = "recaptcha-site-key";

    // token: The token obtained from the client on passing the recaptchaSiteKey.
    // To get the token, integrate the recaptchaSiteKey with frontend. See,
    // https://cloud.google.com/recaptcha-enterprise/docs/instrument-web-pages#frontend_integration_score
    String token = "recaptcha-token";

    // recaptchaAction: The action name corresponding to the token.
    String recaptchaAction = "recaptcha-action";

    // Unique ID of the user, such as email, customer ID, etc.
    String accountId = "default" + UUID.randomUUID().toString().split("-")[0];

    // User phone number
    String phoneNumber = "555-987-XXXX";

    // User email address
    String emailAddress = "john.doe@example.com";

    accountDefenderAssessment(projectId, recaptchaSiteKey, token, recaptchaAction, accountId, phoneNumber, emailAddress);
  }

  /**
   * This assessment detects account takeovers. See,
   * https://cloud.google.com/recaptcha-enterprise/docs/account-takeovers The input is the hashed
   * account id. Result tells if the action represents an account takeover. You can optionally
   * trigger a Multi-Factor Authentication based on the result.
   */
  public static void accountDefenderAssessment(
      String projectId,
      String recaptchaSiteKey,
      String token,
      String recaptchaAction,
      String accountId,
      String phoneNumber,
      String emailAddress)
      throws IOException {
    try (RecaptchaEnterpriseServiceClient client = RecaptchaEnterpriseServiceClient.create()) {

      // Set the properties of the event to be tracked.
      Event.Builder eventBuilder =
          Event.newBuilder()
              .setSiteKey(recaptchaSiteKey)
              .setToken(token);

      // Set the account id, email address and phone number (of the user).
      eventBuilder.setUserInfo(
        UserInfo.newBuilder()
          .setAccountId(accountId)
          .addUserIds(UserId.newBuilder().setEmail(emailAddress))
          .addUserIds(UserId.newBuilder().setPhoneNumber(phoneNumber)));

      Event event = eventBuilder.build();

      // Build the assessment request.
      CreateAssessmentRequest createAssessmentRequest =
          CreateAssessmentRequest.newBuilder()
              .setParent(ProjectName.of(projectId).toString())
              .setAssessment(Assessment.newBuilder().setEvent(event).build())
              .build();

      Assessment response = client.createAssessment(createAssessmentRequest);

      // Check integrity of the response token.
      if (!checkTokenIntegrity(response.getTokenProperties(), recaptchaAction)) {
        return;
      }

      // Get the reason(s) and the reCAPTCHA risk score.
      // For more information on interpreting the assessment,
      // see: https://cloud.google.com/recaptcha-enterprise/docs/interpret-assessment
      for (ClassificationReason reason : response.getRiskAnalysis().getReasonsList()) {
        System.out.println(reason);
      }
      float recaptchaScore = response.getRiskAnalysis().getScore();
      System.out.println("The reCAPTCHA score is: " + recaptchaScore);
      String assessmentName = response.getName();
      System.out.println(
          "Assessment name: " + assessmentName.substring(assessmentName.lastIndexOf("/") + 1));

      // Get the Account Defender result.
      com.google.recaptchaenterprise.v1.AccountDefenderAssessment accountDefenderAssessment =
          response.getAccountDefenderAssessment();
      System.out.println(accountDefenderAssessment);

      // Get Account Defender label.
      List<AccountDefenderLabel> defenderResult =
          response.getAccountDefenderAssessment().getLabelsList();
      // Based on the result, can you choose next steps.
      // If the 'defenderResult' field is empty, it indicates that Account Defender did not have
      // anything to add to the score.
      // Few result labels: ACCOUNT_DEFENDER_LABEL_UNSPECIFIED, PROFILE_MATCH,
      // SUSPICIOUS_LOGIN_ACTIVITY, SUSPICIOUS_ACCOUNT_CREATION, RELATED_ACCOUNTS_NUMBER_HIGH.
      // For more information on interpreting the assessment, see:
      // https://cloud.google.com/recaptcha-enterprise/docs/account-defender#interpret-assessment-details
      System.out.println("Account Defender Assessment Result: " + defenderResult);
    }
  }

  private static boolean checkTokenIntegrity(
      TokenProperties tokenProperties, String recaptchaAction) {
    // Check if the token is valid.
    if (!tokenProperties.getValid()) {
      System.out.println(
          "The Account Defender Assessment call failed because the token was: "
              + tokenProperties.getInvalidReason().name());
      return false;
    }

    // Check if the expected action was executed.
    if (!tokenProperties.getAction().equals(recaptchaAction)) {
      System.out.printf(
          "The action attribute in the reCAPTCHA tag '%s' does not match "
              + "the action '%s' you are expecting to score",
          tokenProperties.getAction(), recaptchaAction);
      return false;
    }
    return true;
  }
}

Risikobewertung der kritischen Nutzerereignisse auswerten

Wenn Sie eine Bewertung mit aktiviertem Account Defender erstellen, gibt Account Defender accountDefenderAssessment als Teil der Bewertungsantwort zurück. Anhand des Werts von accountDefenderAssessment können Sie beurteilen, ob die Nutzeraktivität legitim oder betrügerisch ist. Außerdem wird eine Bewertungs-ID zurückgegeben, die Sie beim Annotieren von Nutzerereignissen verwenden müssen.

Das folgende Beispiel ist eine Beispiel-JSON-Antwort:

{
  "tokenProperties": {
    "valid": true,
    "androidPackageName": "com.example.app" or "iosBundleId": "com.example.app",
    "action": "login",
    "createTime": "2019-03-28T12:24:17.894Z"
   },
  "riskAnalysis": {
    "score": 0.6,
  },
 "event": {
    "token": "TOKEN",
    "siteKey": "KEY_ID",
    "expectedAction": "USER_ACTION"
  },
  "name": "projects/PROJECT_ID/assessments/b6ac310000000000X",
  "accountDefenderAssessment": {
    labels: ["SUSPICIOUS_LOGIN_ACTIVITY"]
  }
}

Das Feld accountDefenderAssessment kann einen der folgenden Werte haben:

Wert Beschreibung
SUSPICIOUS_LOGIN_ACTIVITY Gibt an, dass die Anfrage ein hohes Risiko für einen Identitätsdiebstahl oder eine Kontoübernahme darstellt.
SUSPICIOUS_ACCOUNT_CREATION Gibt an, dass die Anfrage ein hohes Risiko für die Erstellung missbräuchlicher Konten darstellt.
PROFILE_MATCH

Gibt an, dass die Attribute des Nutzers mit den Attributen übereinstimmen, die zuvor für diesen Nutzer erfasst wurden. Dieser Wert ist ein Indikator dafür, dass sich dieser Nutzer auf einem vertrauenswürdigen Gerät befindet, das bereits zuvor für den Zugriff auf Ihre mobile App verwendet wurde.

PROFILE_MATCH wird nur in den folgenden Fällen zurückgegeben:

  • Sie verwenden die Multi-Faktor-Authentifizierung(MFA) oder die Bestätigung in zwei Schritten(2FA) und reCAPTCHA Account Defender kennzeichnet Nutzerprofile als vertrauenswürdig, nachdem sie die MFA- oder 2FA-Abfrage bestanden haben.
  • Sie kennzeichnen Bewertungen als LEGITIMATE oder PASSED_TWO_FACTOR und reCAPTCHA Account Defender kennzeichnet das entsprechende Nutzerprofil als vertrauenswürdig.

Ereignisse annotieren, um das websitespezifische Modell zu optimieren

Wenn Sie reCAPTCHA Account Defender weitere Informationen zur Verfügung stellen und Ihr websitespezifisches Erkennungsmodell verbessern möchten, müssen Sie die Ereignisse, die Sie bewertet haben, mithilfe von Bewertungen annotieren.

Sie können eine Bewertung mit der Methode projects.assessments.annotate annotieren. Senden Sie dazu eine Anfrage mit der Bewertungs-ID. Im Text dieser Anfrage geben Sie Labels an, die zusätzliche Informationen zu einem in der Bewertung beschriebenen Ereignis enthalten.

So fügen Sie Anmerkungen zu einer Bewertung hinzu:

  1. Legen Sie die Informationen und Labels fest, die Sie je nach Anwendungsfall in den JSON-Text der Anfrage einfügen möchten.

    In der folgenden Tabelle sind die Labels und Werte aufgeführt, mit denen Sie Ereignisse annotieren können:

    Label Beschreibung Beispielanfrage
    reasons Erforderlich. Ein Label, das Ihre Bewertungen unterstützt.

    Geben Sie Echtzeit-Ereignisdetails im reasons-Label innerhalb weniger Sekunden oder Minuten nach dem Ereignis an, da sie die Echtzeiterkennung beeinflussen.

    Eine Liste der möglichen Werte finden Sie unter Werte für „Grund“.

    Beispiel: Wenn Sie Kontoübernahmen erkennen möchten, können Sie angeben, ob das eingegebene Passwort korrekt war, indem Sie die Werte CORRECT_PASSWORD oder INCORRECT_PASSWORD verwenden. Wenn Sie Ihre eigene MFA bereitgestellt haben, können Sie die folgenden Werte hinzufügen: INITIATED_TWO_FACTOR, PASSED_TWO_FACTOR oder FAILED_TWO_FACTOR.

          {
          "reasons": ["INCORRECT_PASSWORD"]
          }
        
    annotation Optional. Ein Label, das die Legitimität von Bewertungen angibt.

    Geben Sie Fakten zu Anmelde- und Registrierungsereignissen an, um Ihre Risikobewertungen im Label annotation zu bestätigen oder zu korrigieren.

    Mögliche Werte: LEGITIMATE oder FRAUDULENT.

    Sie können diese Informationen jederzeit oder als Teil eines Batchjobs senden. Wir empfehlen jedoch, diese Informationen einige Sekunden oder Minuten nach dem Ereignis zu senden, da sie die Echtzeiterkennung beeinflussen.

          {
           "annotation": "LEGITIMATE"
          }
    
      
    accountId

    Optional. Ein Label, mit dem eine Konto-ID mit einem Ereignis verknüpft wird.

    Wenn Sie eine Bewertung ohne Konto-ID erstellt haben, verwenden Sie dieses Label, um die Konto-ID eines Ereignisses anzugeben, sofern verfügbar.

      {
       "accountId": "ACCOUNT_ID"
      }
  2. Erstellen Sie eine Anmerkungsanfrage mit den entsprechenden Labels.

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • ASSESSMENT_ID: Wert des name-Felds, der vom projects.assessments.create-Aufruf zurückgegeben wurde.
    • ANNOTATION: Optional. Ein Label, das angibt, ob die Bewertung legitim oder betrügerisch ist.
    • REASONS: Optional. Gründe, die Ihre Anmerkung unterstützen. Eine Liste der möglichen Werte finden Sie unter Werte für „Grund“.
    • ACCOUNT_ID: Optional. Die Kennung, die eindeutig mit dem Nutzerkonto in Ihrer App verknüpft ist.

    Weitere Informationen finden Sie unter Labels für Anmerkungen.

    HTTP-Methode und URL:

    POST https://recaptchaenterprise.googleapis.com/v1/ASSESSMENT_ID:annotate

    JSON-Text der Anfrage:

    {
      "annotation": ANNOTATION,
      "reasons": REASONS,
      "accountId": ACCOUNT_ID
    }
    

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://recaptchaenterprise.googleapis.com/v1/ASSESSMENT_ID:annotate"

    PowerShell

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://recaptchaenterprise.googleapis.com/v1/ASSESSMENT_ID:annotate" | Select-Object -Expand Content

    Sie sollten einen erfolgreichen Statuscode (2xx) und eine leere Antwort als Ausgabe erhalten.

Codebeispiel

Java

Richten Sie zur Authentifizierung bei reCAPTCHA die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.


import com.google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseServiceClient;
import com.google.protobuf.ByteString;
import com.google.recaptchaenterprise.v1.AnnotateAssessmentRequest;
import com.google.recaptchaenterprise.v1.AnnotateAssessmentRequest.Annotation;
import com.google.recaptchaenterprise.v1.AnnotateAssessmentRequest.Reason;
import com.google.recaptchaenterprise.v1.AnnotateAssessmentResponse;
import com.google.recaptchaenterprise.v1.AssessmentName;
import java.io.IOException;
import java.security.NoSuchAlgorithmException;
import java.util.UUID;

public class AnnotateAccountDefenderAssessment {

  public static void main(String[] args) throws IOException, NoSuchAlgorithmException {
    // TODO(developer): Replace these variables before running the sample.
    // projectID: GCloud Project id.
    String projectID = "project-id";

    // assessmentId: Value of the 'name' field returned from the CreateAssessment call.
    String assessmentId = "account-defender-assessment-id";

    // accountId: Set the accountId corresponding to the assessment id.
    String accountId = "default" + UUID.randomUUID().toString().split("-")[0];

    annotateAssessment(projectID, assessmentId, accountId);
  }

  /**
   * Pre-requisite: Create an assessment before annotating. Annotate an assessment to provide
   * feedback on the correctness of recaptcha prediction.
   */
  public static void annotateAssessment(
      String projectID, String assessmentId, String accountId) throws IOException {

    try (RecaptchaEnterpriseServiceClient client = RecaptchaEnterpriseServiceClient.create()) {
      // Build the annotation request.
      // For more info on when/how to annotate, see:
      // https://cloud.google.com/recaptcha-enterprise/docs/annotate-assessment#when_to_annotate
      AnnotateAssessmentRequest annotateAssessmentRequest =
          AnnotateAssessmentRequest.newBuilder()
              .setName(AssessmentName.of(projectID, assessmentId).toString())
              .setAnnotation(Annotation.LEGITIMATE)
              .addReasons(Reason.PASSED_TWO_FACTOR)
              .setAccountId(accountId)
              .build();

      // Empty response is sent back.
      AnnotateAssessmentResponse response = client.annotateAssessment(annotateAssessmentRequest);
      System.out.println("Annotated response sent successfully ! " + response);
    }
  }
}

reCAPTCHA Account Defender aktivieren

Nachdem Sie Ihre mobile Anwendung für reCAPTCHA Account Defender konfiguriert haben, können Sie reCAPTCHA Account Defender aktivieren.

  1. Rufen Sie in der Google Cloud Console die Seite reCAPTCHA auf.

    Zu reCAPTCHA

  2. Prüfen Sie, ob der Name Ihres Projekts in der Ressourcenauswahl oben auf der Seite angezeigt wird.

    Wenn Sie den Namen Ihres Projekts nicht sehen, klicken Sie auf die Ressourcenauswahl und wählen Sie Ihr Projekt aus.

  3. Klicke auf Einstellungen.
  4. Klicken Sie im Bereich Kontoschutz auf Konfigurieren.

  5. Klicken Sie im Dialogfeld Kontoschutz konfigurieren auf Aktivieren und dann auf Speichern.

Es kann einige Stunden dauern, bis die Aktivierung von reCAPTCHA Account Defender in unseren Systemen übernommen wird. Nachdem die Aktivierung der Funktion in unsere Systeme übernommen wurde, sollten Sie im Rahmen der Bewertungen Antworten zu Account Defender erhalten.

Nächste Schritte