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 lassen sich kritische Aktionen wie Anmeldungen besser schützen und den Bezahlvorgang. 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äten zu erkennen. Mit dem websitespezifischen Modell von reCAPTCHA Account Defender können Sie Folgendes erkennen:

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

Basierend auf der Analyse von reCAPTCHA Account Defender und dem Website-spezifisches Modell verwenden, können Sie die folgenden Aktionen ausführen:

  • Betrügerische Konten einschränken oder deaktivieren
  • Verhindern Sie versuchte Kontoübernahmen.
  • Die Auswirkungen von erfolgreichen Kontoübernahmen begrenzen.
  • Gewähren Sie nur Anfragen von legitimen Nutzerkonten Zugriff.
  • Nutzer können sich problemlos von einem ihrer vertrauenswürdigen Geräte aus anmelden.

Hinweis

  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. Rechnungskonto hinzufügen um diese Funktion für Ihre Website einzurichten.
  2. Umgebung für reCAPTCHA vorbereiten
  3. Erstellen Sie einen punktebasierten Schlüssel.

Mobile App für reCAPTCHA Account Defender konfigurieren

reCAPTCHA Account Defender erfordert ein umfassendes Verständnis der Kontoaktivitäten, um eine effektive Erkennung zu ermöglichen. Um mit dem Füttern zu beginnen kontobezogene Aktivitäten an reCAPTCHA Account Defender und an um Ihr websitespezifisches Modell zu erstellen und zu verbessern, gehen Sie so vor:

  1. reCAPTCHA in Ihre mobile Anwendung einbinden.

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

Berichte zu wichtigen Nutzeraktionen

Um verdächtige Aktivitätsmuster zu erkennen und ein besseres Verständnis für Typische Aktivitätsmuster auf Ihrer Website, reCAPTCHA-Konto der Sicherheitsteams die Informationen über kritische Benutzeraktionen benötigt. Rufen Sie für jede Aktion Ihrer Anwendung, die durch reCAPTCHA geschützt ist, die Methode execute() 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 verwenden können, wenn Sie wichtige Nutzeraktionen melden.

Aktionsname Vom Nutzer initiiertes Ereignis oder Nutzeraktion
LOGIN

Melden Sie sich in der mobilen App an.

SIGNUP

Registriere dich in der mobilen App.

Kritische 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. Einige der Maßnahmen, die Sie ergreifen können, verhindern verdächtige Aktivitäten Anfragen, riskante Anmeldungen herausfordern und relevante Konten untersuchen.

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ähle eine stabile Konto-ID (accountId) aus, die vom Nutzer nicht oft geändert wird und stellen sie für die Bewertung im projects.assessments.create-Methode. Diese stabile Konto-ID sollte für alle Ereignisse, die sich auf denselben Nutzer beziehen, denselben Wert haben. Sie können Folgendes als Konto angeben: Kennung:

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 (Kennungen, die websiteübergreifend wiederverwendet werden können), verwendet reCAPTCHA diese um den Schutz Ihrer Nutzerkonten auf der Grundlage von websiteübergreifenden Modellen zu verbessern, indem Missbrauch von Konto-IDs melden und Kenntnis von websiteübergreifenden Missbrauchsmustern im Zusammenhang mit zu diesen IDs.

Alternativ können Sie, wenn Sie über eine interne Nutzer-ID verfügen, die jedem Konto eindeutig zugeordnet ist, stellen Sie sie als accountId bereit.

Gehasht oder verschlüsselt

Wenn Sie keine interne Nutzer-ID haben, die jedem Konto eindeutig zugeordnet ist, können Sie in eine intransparente, 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 beliebige stabile Konto-ID aus und machen Sie sie vor dem Senden an reCAPTCHA undurchsichtig, indem Sie durch Verschlüsselung oder Hash-Technologie:

  • 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 von reCAPTCHA zurückgegebenen opaken Kennungen, um sie in den User-ID.

  • Hashing: Wir empfehlen, die Kontokennung mithilfe der SHA256-HMAC-Methode mit ein Salz Ihrer Wahl. Da Hashes nur in eine Richtung gelten, müssen Sie eine Zuordnung zwischen den generierten Hashes und Ihren Nutzerkennungen, damit Sie die gehashten Konto-ID, die an die ursprünglichen Konten zurückgegeben wird.

Neben der Bereitstellung einer stabilen Konto-ID für alle kontobezogenen Anfragen kann zusätzliche, möglicherweise instabile Konto-IDs für bestimmte Anfragen angeben. 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 Kennzeichnungen angeben, reCAPTCHA verwendet diese Informationen, um den Schutz Ihrer Nutzerkonten basierend auf durch die Meldung missbräuchlicher Konto-IDs und die Kenntnis über den websiteübergreifenden Missbrauch Mustern im Zusammenhang mit diesen Kennungen. Sie können beispielsweise Folgendes angeben:

  • Der Nutzername, die E-Mail-Adresse oder die Telefonnummer, die als Anmelde-Handle für die Anmeldung verwendet wurden Anfragen

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

  • Eine vom Nutzer angegebene E-Mail-Adresse oder Telefonnummer (primär oder sekundär), bei einer Anfrage zur Kontoaktualisierung

  • Die E-Mail-Adressen und Telefonnummern, die vom Nutzer bei der Registrierung angegeben werden Anfrage

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 relevanten Anfragen angeben. Verwenden Sie dazu das Feld userIds in der Prüfung.

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 Anwendung 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 mit dieser Anfrage verknüpfte Telefonnummer, sofern Beliebige(r,s)
  • 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;
  }
}

Das Risikoergebnis der kritischen Nutzerereignisse interpretieren

Wenn Sie eine Bewertung mit aktiviertem Kontoschutz erstellen, gibt Kontoschutz accountDefenderAssessment als Teil der Bewertungsantwort zurück. Der Wert accountDefenderAssessment hilft, beurteilen Sie, 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 darstellt von Credential Stuffing oder Kontoübernahme.
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 zum Zugriff auf Ihre mobile App verwendet wurde.

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

Ereignisse annotieren, um Ihr websitespezifisches 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 von Ihnen bewerteten Ereignisse durch Erstellen 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 annotieren Sie eine Bewertung:

  1. Legen Sie die Informationen und Labels fest, die dem JSON-Anfragetext hinzugefügt werden sollen je nach Anwendungsfall.

    In der folgenden Tabelle sind die Labels und Werte aufgeführt, die Sie für Anmerkungen verwenden können. Events:

    Label Beschreibung Anfragebeispiel
    reasons Erforderlich. Ein Label zur Unterstützung Ihrer Prüfungen.

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

    Für die Liste der mögliche Werte, siehe Werte für Gründe.

    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 implementiert 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 zur Anmeldung und zur Validierung oder Korrektur Ihrer Risikobewertungen Label „annotation“.

    Mögliche Werte: LEGITIMATE oder FRAUDULENT.

    Sie können diese Informationen jederzeit oder im Rahmen eines Batchjobs senden. Wir empfehlen jedoch, diese Informationen in wenigen Sekunden oder Minuten zu senden nach dem Ereignis, 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 zur Angabe, 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 ID, die dem Nutzerkonto in Ihrer App eindeutig zugeordnet 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 Account Defender auf Konfigurieren.

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

Der reCAPTCHA Account Defender kann einige Stunden dauern Daten an unsere Systeme weiterzugeben. Nach der Funktionsaktivierung an unsere Systeme weitergegeben haben, sollten Sie nun Antworten in Bezug auf Ihr Konto erhalten. Defender in die Bewertungen einfließen lassen.

Nächste Schritte