Sie können die Funktionen von Google Cloud Fraud Defense mit Cloud Armor in mobile Anwendungen einbinden.
Um die Integration abzuschließen, müssen Sie mindestens ein Feature von reCAPTCHA implementieren und Cloud Armor-Sicherheitsrichtlinien konfigurieren. Sie können jedoch nur reCAPTCHA-Aktionstokens für die Einbindung in Cloud Armor in mobilen Apps implementieren.
Hinweis
Aktivieren Sie die reCAPTCHA Enterprise API.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Inhaberrolle (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von RollenIdentifizieren Sie die Aktionen, die Sie schützen möchten.
reCAPTCHA-Aktionstokens implementieren
reCAPTCHA muss in Ihrer mobilen Anwendung ausgeführt werden, um Aktionstokens zu generieren.
Nachdem reCAPTCHA ein Aktionstoken generiert hat, hängen Sie das Aktionstoken an einen vordefinierten Anfrageheader an, wenn Sie eine Nutzeraktion wie checkout schützen möchten. Standardmäßig sind Aktions-Tokens 30 Minuten lang gültig. Dies kann jedoch je nach Traffic variieren.
Sie müssen das Aktions-Token an einen vordefinierten Anfrageheader anhängen, bevor das Token abläuft, damit Cloud Armor die Tokenattribute auswerten kann.
So implementieren Sie ein reCAPTCHA-Aktionstoken:
Erstellen Sie einen Aktions-Token-Schlüssel für Ihre mobile Anwendung.
Console
Rufen Sie in der Google Cloud Console die Seite Google Cloud Fraud Defense auf.
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.
- Wählen Sie den Tab Keys aus.
- Klicken Sie auf Schlüssel erstellen.
- Geben Sie im Feld Anzeigename einen Anzeigenamen für den Schlüssel ein.
- Führen Sie je nach Art der Anwendung, für die Sie die reCAPTCHA-Schlüssel für die WAF erstellen möchten, die entsprechende Aktion aus:
- Wählen Sie als Anwendungstyp die Option iOS aus.
- Klicken Sie im Abschnitt iOS-Bundle-ID-Liste auf iOS-Bundle-ID hinzufügen.
Geben Sie im Feld Paket-ID den Namen Ihrer iOS-Paket-ID ein.
- Optional: Wenn Sie eine weitere Paket-ID hinzufügen möchten, klicken Sie auf iOS-Paket-ID hinzufügen und geben Sie den Namen der iOS-Paket-ID in das Feld Paket-ID ein.
- Zum Schutz des reCAPTCHA-Schlüssels für Ihre Paket-IDs müssen Sie den Ein/Aus-Button Bestätigung der Paket-ID deaktivieren deaktivieren. Wenn Sie die Bestätigung der Paket-ID deaktivieren, müssen Sie das Feld
tokenProperties.iosBundleIdin den von Ihnen erstellten Bewertungen prüfen. Optional: Geben Sie die Apple Developer-Einstellungen an.
Wir empfehlen, diese Daten bereitzustellen, da Fraud Defense so genauere Risikobewertungen für Ihren Traffic liefern kann.
Geben Sie die folgenden Informationen ein:
- Privater Schlüssel (.p8): Dieser wird im Apple Developer Center unter „Certificates, Identifiers & Profiles“ (Zertifikate, Kennungen und Profile) generiert.
- Schlüsselkennung: Die Apple-Entwicklerschlüsselkennung (String mit 10 Zeichen).
- Team-ID: Die Apple-Team-ID (10-stelliger String) des Inhabers des Bereitstellungsprofils, das zum Erstellen Ihrer Anwendung verwendet wird.
- Optional: Klicken Sie auf Nächster Schritt (optional).
- So erstellen Sie einen reCAPTCHA-Schlüssel für WAF:
- Aktivieren Sie unter Zusätzliche Einstellungen die Option
- Aktivieren Sie unter Zusätzliche Einstellungen die Option Wird dieser Schlüssel in einer Web Application Firewall (WAF) bereitgestellt?.
- Wählen Sie unter Dienst die Option Cloud Armor aus.
- Wählen Sie unter Feature die Option Aktion aus.
-
Wenn Sie für Ihre Nicht-Produktionsumgebung einen Wert angeben möchten, den der Schlüssel zurückgeben soll, wenn dafür Bewertungen erstellt werden, gehen Sie so vor:
- Klicken Sie unter Weitere Einstellungen auf die Ein/Aus-Schaltfläche Erstellen Sie diesen Schlüssel nur zu Testzwecken?.
- Verwenden Sie den Schieberegler Wert festlegen, um einen Wert zwischen 0 und 1,0 anzugeben.
- Klicken Sie auf Schlüssel erstellen.
- Wählen Sie als Anwendungstyp die Option Android aus.
- Klicken Sie im Abschnitt Android-Paketliste auf Android-Paket hinzufügen.
- Geben Sie im Feld Android-Paket den Namen Ihres Android-Pakets ein.
- Optional: Klicken Sie auf Android-Paket hinzufügen, um ein zusätzliches Paket hinzuzufügen, und geben Sie im Feld Android-Paket den Namen eines anderen Android-Pakets ein.
- Wenn Sie erzwingen möchten, dass der reCAPTCHA-Schlüssel nur in Ihrer App verwendet wird, deaktivieren Sie die Option Bestätigung des Paketnamens deaktivieren. Wenn Sie die Bestätigung des Paketnamens deaktivieren, müssen Sie das Feld
tokenProperties.androidPackageNamein den von Ihnen erstellten Bewertungen prüfen. - Wenn Sie einen Schlüssel für eine Anwendung erstellen möchten, die neben dem Google Play Store auch in anderen App-Stores verfügbar ist, aktivieren Sie Anwendungen unterstützen, die außerhalb des Google Play Store vertrieben werden.
- Optional: Klicken Sie auf Nächster Schritt (optional).
- So erstellen Sie einen reCAPTCHA-Schlüssel für WAF:
- Aktivieren Sie unter Zusätzliche Einstellungen die Option
- Aktivieren Sie unter Zusätzliche Einstellungen die Option Wird dieser Schlüssel in einer Web Application Firewall (WAF) bereitgestellt?.
- Wählen Sie unter Dienst die Option Cloud Armor aus.
- Wählen Sie unter Feature die Option Aktion aus.
-
Wenn Sie für Ihre Nicht-Produktionsumgebung einen Wert angeben möchten, den der Schlüssel zurückgeben soll, wenn dafür Bewertungen erstellt werden, gehen Sie so vor:
- Klicken Sie unter Weitere Einstellungen auf die Ein/Aus-Schaltfläche Erstellen Sie diesen Schlüssel nur zu Testzwecken?.
- Verwenden Sie den Schieberegler Wert festlegen, um einen Wert zwischen 0 und 1,0 anzugeben.
- Klicken Sie auf Schlüssel erstellen.
reCAPTCHA-Schlüssel für WAF für iOS-Anwendungen erstellen
Wir empfehlen, einen reCAPTCHA-Schlüssel pro iOS-Anwendung zu erstellen.
Der neu erstellte Schlüssel wird auf der Seite reCAPTCHA-Schlüssel aufgeführt.
reCAPTCHA-Schlüssel für WAF für Android-Apps erstellen
Der neu erstellte Schlüssel wird auf der Seite reCAPTCHA-Schlüssel aufgeführt.
gcloud (iOS)
Verwenden Sie zum Erstellen von reCAPTCHA-Schlüsseln den Befehl gcloud recaptcha keys create.
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- DISPLAY_NAME: Name für den Schlüssel. In der Regel der Name einer Website.
- BUNDLE_IDs: iOS-Bundle-IDs von Apps, die den Schlüssel verwenden dürfen. Geben Sie mehrere Bundle-IDs als durch Kommas getrennte Liste an.
- WAF_FEATURE: Name des WAF-Features.
Geben Sie
action-tokenan. - WAF_SERVICE: Name des WAF-Dienstanbieters.
Geben Sie
CAfür Cloud Armor an.
Führen Sie den Befehl gcloud recaptcha keys create aus:
Linux, macOS oder Cloud Shell
gcloud recaptcha keys create \ --display-name=DISPLAY_NAME \ --ios --bundle-ids=BUNDLE_IDs \ --waf-feature=WAF_FEATURE \ --waf-service=WAF_SERVICE
Windows (PowerShell)
gcloud recaptcha keys create ` --display-name=DISPLAY_NAME ` --ios --bundle-ids=BUNDLE_IDs ` --waf-feature=WAF_FEATURE ` --waf-service=WAF_SERVICE
Windows (cmd.exe)
gcloud recaptcha keys create ^ --display-name=DISPLAY_NAME ^ --ios --bundle-ids=BUNDLE_IDs ^ --waf-feature=WAF_FEATURE ^ --waf-service=WAF_SERVICE
Die Antwort enthält den neu erstellten reCAPTCHA-Schlüssel.
gcloud (Android)
Verwenden Sie zum Erstellen von reCAPTCHA-Schlüsseln den Befehl gcloud recaptcha keys create.
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- DISPLAY_NAME: Name für den Schlüssel. In der Regel der Name einer Website.
- PACKAGE_NAMES: Android-Paketnamen von Apps, die den Schlüssel verwenden dürfen. Geben Sie mehrere Paketnamen als durch Kommas getrennte Liste an.
- WAF_FEATURE: Name des WAF-Features.
Geben Sie
action-tokenan. - WAF_SERVICE: Name des WAF-Dienstanbieters.
Geben Sie
CAfür Cloud Armor an.
Führen Sie den Befehl gcloud recaptcha keys create aus:
Linux, macOS oder Cloud Shell
gcloud recaptcha keys create \ --display-name=DISPLAY_NAME \ --android --package-names=PACKAGE_NAMES \ --waf-feature=WAF_FEATURE \ --waf-service=WAF_SERVICE
Windows (PowerShell)
gcloud recaptcha keys create ` --display-name=DISPLAY_NAME ` --android --package-names=PACKAGE_NAMES ` --waf-feature=WAF_FEATURE ` --waf-service=WAF_SERVICE
Windows (cmd.exe)
gcloud recaptcha keys create ^ --display-name=DISPLAY_NAME ^ --android --package-names=PACKAGE_NAMES ^ --waf-feature=WAF_FEATURE ^ --waf-service=WAF_SERVICE
Die Antwort enthält den neu erstellten reCAPTCHA-Schlüssel.
REST (iOS)
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Anwendungsname.
- BUNDLE_IDs: iOS-Bundle-IDs von Apps, die den Schlüssel verwenden dürfen. Geben Sie mehrere Bundle-IDs als durch Kommas getrennte Liste an.
- WAF_FEATURE: Name des WAF-Features.
Geben Sie
action-tokenan. - WAF_SERVICE: Name des WAF-Dienstanbieters.
Geben Sie
CAfür Cloud Armor an.
HTTP-Methode und URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
JSON-Text der Anfrage:
{ "displayName": "DISPLAY_NAME", "iosSettings": { "allowedBundleIds": "BUNDLE_IDS" }, 'wafSettings': " { "wafService": "CA", "wafFeature": "ACTION_TOKEN" } }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.jsonund 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/keys"PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.jsonund 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/keys" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/project-id/keys/6LfhtywnAAAAABY3sCS2duZ6A55kmDXz-PNEgKgT", "displayName": "DISPLAY_NAME", "iosSettings": { "allowAllBundleIds": false, "allowedBundleIds": [ BUNDLE_IDS ] }, "labels": {}, "wafSettings": { "wafService": "CA", "wafFeature": "ACTION_TOKEN" } }REST (Android)
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- DISPLAY_NAME: Name für den Schlüssel. In der Regel ein Anwendungsname.
- PACKAGE_NAMES: Android-Paketnamen von Apps, die den Schlüssel verwenden dürfen. Geben Sie mehrere Paketnamen als durch Kommas getrennte Liste an.
- WAF_FEATURE: Name des WAF-Features.
Geben Sie
action-tokenan. - WAF_SERVICE: Name des WAF-Dienstanbieters.
Geben Sie
CAfür Cloud Armor an.
HTTP-Methode und URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
JSON-Text der Anfrage:
{ "displayName": "DISPLAY_NAME", "androidSettings": { "allowedPackageNames":"PACKAGE_NAMES" }, 'wafSettings': " { "wafService": "CA", "wafFeature": "ACTION_TOKEN" } }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.jsonund 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/keys"PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.jsonund 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/keys" | Select-Object -Expand ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/project-id/keys/6LcioSknAAAAABrjlMuZv2fjIGYMqwaAFC9izhoy", "displayName": "DISPLAY_NAME", "androidSettings": { "allowAllPackageNames": false, "allowedPackageNames": [ PACKAGE_NAMES ], "supportNonGoogleAppStoreDistribution": false }, "labels": {}, "wafSettings": { "wafService": "CA", "wafFeature": "ACTION_TOKEN" } }Integrieren Sie das mobile reCAPTCHA SDK mit dem von Ihnen erstellten Aktions-Tokens-Schlüssel in Ihre mobilen Anwendungen. Eine Anleitung finden Sie im Dokument, das dem Typ Ihrer mobilen Anwendung entspricht.
- Informationen zu Android finden Sie unter Google Cloud Fraud Defense in Android-Apps einbinden.
- Informationen zu iOS finden Sie unter Google Cloud Fraud Defense in iOS-Apps einbinden.
Nachdem Sie das Token erhalten haben, hängen Sie es an einen vordefinierten Anfrageheader im folgenden Format an:
X-Recaptcha-Token: value-of-your-action-token
Im folgenden Beispielcode wird gezeigt, wie das Token angehängt wird:
Android
Beispielcode in Java
// This example shows how to send an HTTP request to the backend server // attached with the reCAPTCHA token in the header. // // @param serverUrl: the URL of the backend server. // @param rceToken: reCAPTCHA token that is attached to the header of the // HTTP request. public static void sendRequestToServerWithRceToken( String serverUrl, String rceToken) throws JSONException, IOException { URL url = new URL(String.format("http://%s/decryptcaptchacookie/accesswafserver", serverUrl)); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestProperty("X-Recaptcha-Token", rceToken); try { String requestBody = "['']"; sendRequest(connection, requestBody, "AccessWithRceToken", "GET"); } finally { connection.disconnect(); } } private static void sendRequest( HttpURLConnection connection, String requestString, String requestName, String action) throws IOException { connection.setConnectTimeout(HTTP_CONNECT_TIMEOUT_MS); connection.setReadTimeout(HTTP_READ_TIMEOUT_MS); connection.setRequestProperty("Content-type", CONTENT_TYPE); connection.setRequestProperty( "Content-Length", Integer.toString(Utf8.encodedLength(requestString))); connection.setRequestMethod(action); connection.setDoOutput(true); connection.connect(); try (OutputStream postStream = connection.getOutputStream()) { postStream.write(requestString.getBytes(UTF_8)); } int responseCode = connection.getResponseCode(); String response = connection.getResponseMessage(); if (responseCode != HttpURLConnection.HTTP_OK) { throw new IOException( String.format( "Failed to complete request.\nResponse code:%s\nError Detail:\n%s", responseCode, response)); } }
iOS
Beispielcode in Swift
// This example shows how to send an HTTP request to the backend server // attached with the reCAPTCHA token in the header. // @param serverUrl: the URL of the backend server. // @param rceToken: reCAPTCHA token that is attached to the header of // the HTTP request. public static func accessWafServer(rceToken: String, serverUrl: String) async throws -> String { let requestURL = try HttpHelper.createRequestURL(endpoint: serverUrl) var request = try HttpHelper.createRequest(requestURL: requestURL, action: "GET") request.setValue(rceToken, forHTTPHeaderField: "X-Recaptcha-Token") let data = try await HttpHelper.getDataFromServer(request) return String(decoding: data, as: UTF8.self) }
Cloud Armor-Sicherheitsrichtlinien konfigurieren
Nachdem Sie die Funktionen von Fraud Defense for WAF implementiert haben, müssen Sie Cloud Armor-Sicherheitsrichtlinien konfigurieren, die reCAPTCHA-Tokens für die Bot-Verwaltung auswerten.
Informationen zum Konfigurieren von Cloud Armor-Sicherheitsrichtlinien und zum Verwenden der Aktions-Tokens mit Ihren Sicherheitsrichtlinien finden Sie unter Regeln für die Bot-Verwaltung konfigurieren.
reCAPTCHA-Werte abrufen
Für reCAPTCHA-Aktionstokens können Sie reCAPTCHA-Scores aus dem Header X-Recaptcha-Wafdata abrufen.
Anhand dieser Werte können Sie benutzerdefinierte Aktionen konfigurieren, die für Nutzeranfragen ausgeführt werden sollen.
Das folgende Beispiel zeigt einen X-Recaptcha-Wafdata-Header:
X-Recaptcha-Wafdata: waf_service="Google Cloud Armor", action_token;score=0.9\r\n
Sie können reCAPTCHA-Bewertungen auch in den Google Cloud Armor-Logs aufrufen.