このページでは、reCAPTCHA キー(キーとも呼ばれる)を作成して、モバイル アプリケーションでのユーザーの操作を検証する方法について説明します。
reCAPTCHA キーは、モバイルアプリ(アプリ)に対する reCAPTCHA の構成方法を表します。
始める前に
- reCAPTCHA 用に環境を準備します。
- reCAPTCHA Enterprise 管理者(
roles/recaptchaenterprise.admin
)の Identity and Access Management ロールがあることを確認します。
reCAPTCHA キーを作成する
モバイルアプリ用のスコアベース キーのみを作成できます。
モバイルアプリ用の reCAPTCHA キーを作成する場合は、次のことをおすすめします。
- モバイルアプリごとに 1 つの reCAPTCHA キーを作成する。
Android の場合は、以下のシナリオ用に個別のキーを作成する。
- Google Play ストアでのみ Android パッケージを利用可能。
- Google Play ストア以外のアプリストアでのみ Android パッケージを利用可能。
ステージング環境と本番環境用に別々の reCAPTCHA キーを作成してください。そうしないと、テスト環境からのデータが reCAPTCHA リスク分析に悪影響を及ぼすリスクがあります。
reCAPTCHA キーを作成する最も簡単な方法は、Google Cloud コンソールを使用することです。別の方法としては、reCAPTCHA Enterprise API や Google Cloud CLI を使用することもできます。
Console
Google Cloud コンソールで、[reCAPTCHA] ページに移動します。
ページの上部にあるプロジェクト セレクタにリソース名が表示されていることを確認します。
プロジェクトの名前が表示されない場合は、リソース セレクタをクリックしてプロジェクトを選択します。
- [鍵を作成] をクリックします。
- [表示名] フィールドに、キーの表示名を入力します。
- モバイルアプリ用に作成する reCAPTCHA キーの種類に応じて、適切なアクションを実行します。
- [プラットフォームの種類を選択] メニューで、[iOS アプリ] を選択します。
- [iOS bundle ID list] セクションで、[iOS バンドル ID を追加] をクリックします。
[バンドル ID] フィールドに、iOS バンドル ID の名前を入力します。
- 省略可: 別のバンドル ID を追加するには、[iOS バンドル ID を追加] をクリックし、[バンドル ID] フィールドに iOS バンドル ID の名前を入力します。
省略可: Apple Developer の設定を指定します。
reCAPTCHA がトラフィックに対してより正確なリスクスコアを提供できるため、このデータを提供することをおすすめします。
次の情報を入力します。
- 秘密鍵(.p8): これは、Apple Developer Center の [Certificates, Identifiers & Profiles] で生成されます。
- キー ID: Apple デベロッパー キー ID(10 文字の文字列)。
- チーム ID: アプリの構築に使用されるプロビジョニング プロファイルを所有している Apple チーム ID(10 文字の文字列)。
- [バンドル ID の確認とキーのタイプ] を開きます。
- バンドル ID の reCAPTCHA キーを保護するには、[バンドル ID の確認を無効にする] トグルがオフになっていることを確認します。
-
本番環境以外の環境で、評価の作成時にキーが返すスコアを指定する場合は、次の操作を行います。
- [This is a testing key] 切り替えボタンをクリックします。
- [スコア] ボックスで、0~1.0 のスコアを指定します。
- [鍵を作成] をクリックします。
- [プラットフォーム タイプを選択] メニューから、[Android アプリ] を選択してください。
- [Android パッケージ リスト] セクションで、[Android パッケージを追加] をクリックします。
- [Android パッケージ] フィールドに、Android パッケージの名前を入力します。
- 省略可: パッケージを追加するには、[Android パッケージを追加] をクリックして、[Android パッケージ] に別の Android パッケージの名前を入力します。
- [パッケージ名の検証、アプリの配布、テストキー] を開きます。
- reCAPTCHA キーがアプリでのみ使用されるようにするには、[パッケージ名の確認を無効にする] をオフに切り替えます。
- Google Play ストアに加えて他のアプリストアで利用できるアプリケーションのキーを作成する場合は、[Google Play ストアの外部で配布されるアプリケーションをサポートする] をオンにします。
-
本番環境以外の環境で、評価の作成時にキーが返すスコアを指定する場合は、次の操作を行います。
- [This is a testing key] 切り替えボタンをクリックします。
- [スコア] ボックスで、0~1.0 のスコアを指定します。
- [鍵を作成] をクリックします。
iOS アプリ用の reCAPTCHA キーを作成する
iOS アプリごとに reCAPTCHA キーを 1 つ作成することをおすすめします。
新しく作成された鍵は、[reCAPTCHA のキー] ページにリストされています。
Android アプリ用の reCAPTCHA キーを作成する
新しく作成された鍵は、[reCAPTCHA のキー] ページにリストされています。
gcloud(iOS)
reCAPTCHA キーを作成するには、gcloud recaptcha keys create コマンドを使用します。
後述のコマンドデータを使用する前に、次のように置き換えます。
- DISPLAY_NAME: キーの名前。通常はサイトの名前です。
- BUNDLE_IDs: キーの使用を許可されているアプリの iOS バンドル ID。 複数のバンドル ID をカンマ区切りのリストとして指定します。
gcloud recaptcha keys create コマンドを実行します。
Linux、macOS、Cloud Shell
gcloud recaptcha keys create \ --display-name=DISPLAY_NAME \ --ios --bundle-ids=BUNDLE_IDs
Windows(PowerShell)
gcloud recaptcha keys create ` --display-name=DISPLAY_NAME ` --ios --bundle-ids=BUNDLE_IDs
Windows(cmd.exe)
gcloud recaptcha keys create ^ --display-name=DISPLAY_NAME ^ --ios --bundle-ids=BUNDLE_IDs
レスポンスには、新しく作成された reCAPTCHA キーが含まれます。
gcloud(Android)
reCAPTCHA キーを作成するには、gcloud recaptcha keys create コマンドを使用します。
後述のコマンドデータを使用する前に、次のように置き換えます。
- DISPLAY_NAME: キーの名前。通常はサイトの名前です。
- PACKAGE_NAMES: キーの使用が許可されているアプリの Android パッケージ名。複数のパッケージをカンマ区切りのリストとして指定します。
gcloud recaptcha keys create コマンドを実行します。
Linux、macOS、Cloud Shell
gcloud recaptcha keys create \ --display-name=DISPLAY_NAME \ --android --package-names=PACKAGE_NAMES
Windows(PowerShell)
gcloud recaptcha keys create ` --display-name=DISPLAY_NAME ` --android --package-names=PACKAGE_NAMES
Windows(cmd.exe)
gcloud recaptcha keys create ^ --display-name=DISPLAY_NAME ^ --android --package-names=PACKAGE_NAMES
レスポンスには、新しく作成された reCAPTCHA キーが含まれます。
REST(iOS)
リクエストのデータを使用する前に、次のように置き換えます。
- DISPLAY_NAME: キーの名前。通常、アプリ名です。
- BUNDLE_IDs: キーの使用を許可されているアプリの iOS バンドル ID。 複数のバンドル ID をカンマ区切りのリストとして指定します。
HTTP メソッドと URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
リクエストの本文(JSON):
{ "displayName": "DISPLAY_NAME", "iosSettings": { "allowedBundleIds":"BUNDLE_IDs" } }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
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
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$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 Content
次のような JSON レスポンスが返されます。
{ "name": "projects/project-id/keys/6LfhtywnAAAAABY3sCS2duZ6A55kmDXz-PNEgKgT", "displayName": "DISPLAY_NAME", "iosSettings": { "allowAllBundleIds": false, "allowedBundleIds": [ BUNDLE_IDS ] }, "labels": {}, }
REST(Android)
リクエストのデータを使用する前に、次のように置き換えます。
- DISPLAY_NAME: キーの名前。通常、アプリ名です。
- PACKAGE_NAMES: キーの使用が許可されているアプリの Android パッケージ名。複数のパッケージをカンマ区切りのリストとして指定します。
HTTP メソッドと URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
リクエストの本文(JSON):
{ "displayName": "DISPLAY_NAME", "androidSettings": { "allowedPackageNames":"PACKAGE_NAMES" } }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
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
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$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 Content
次のような JSON レスポンスが返されます。
{ "name": "projects/project-id/keys/6LcioSknAAAAABrjlMuZv2fjIGYMqwaAFC9izhoy", "displayName": "DISPLAY_NAME", "androidSettings": { "allowAllPackageNames": false, "allowedPackageNames": [ PACKAGE_NAMES ], "supportNonGoogleAppStoreDistribution": false }, "labels": {}, }