reCAPTCHA Enterpriseとは?
reCAPTCHA Enterpriseとは
reCAPTCHA Enterpriseは、従来のreCAPTCHA v2とv3をベースに、企業向けにより高度なセキュリティ機能を提供する再設計されたサービスです。
サービスティア
reCAPTCHAには以下の3つのティアがあります:
- Essentials(基本プラン)
- Standard(標準プラン)
- Enterprise(企業向けプラン)
主な機能
Enterpriseプランでは、従来版にない以下の機能が追加されています
- 多要素認証(MFA)
- パスワード漏洩検出
- より詳細なスコアリング スコア判定の仕組みはv3と似てるけど、パワーアップしてる!
- モバイルSDKのサポート
- リアルタイム分析ダッシュボード
- 高度なログ監査機能
- 99.9%のSLA保証
従来より詳細なレスポンス内容、スコア情報だけじゃなくリスク詳細も表示
v2/v3のレスポンスは、スコア情報だけでしたが、エンタープライズ版ではリスク詳細も表示されます!
{
"name": "projects/your-project/assessments/assessment-id",
"event": {
"token": "XXXXXX",
"siteKey": "your-site-key",
"userAgent": "user-agent-string",
"userIpAddress": "203.0.113.1",
"expectedAction": "login"
},
"tokenProperties": {
"valid": true,
"invalidReason": "INVALID_REASON_UNSPECIFIED",
"hostname": "example.com",
"action": "login",
"createTime": "2023-04-30T12:34:56Z"
},
"riskAnalysis": {
"score": 0.3,
"reasons": [
"AUTOMATION",
"CARDING_ATTEMPT"
]
}
}
ところで、どーやってユーザーの行動を監視してるの?
<script src="https://www.google.com/recaptcha/enterprise.js?render=your-site-key"></script>
- この時点で、Googleのスクリプトがページ全体のイベント監視を開始(JavaScript SDK)
- 監視したデータがトークンにエンコードされて送信されます!
- サーバー側でトークンの検証を行いスコアを算出します。
スコアの判定基準
スコア範囲 | 判定 | 推奨対応例 |
---|---|---|
0.9〜1.0 | 非常に信頼できる | 即通過。フォーム送信をそのまま許可 |
0.7〜0.8 | 信頼できる | 通過。ただし必要ならログを取るなど軽い監視を追加 |
0.5〜0.6 | グレーゾーン | ログ記録 + メール遅延送信 or 二重確認ステップを検討 |
0.4以下 | 怪しい | CAPTCHA再表示、警告表示、またはフォーム送信ブロック |
0.3以下 | ほぼBOT | 即ブロック。IPブロックや通報対象としても考慮 |
料金体系(2024年4月以降)
各ティアの料金体系は以下の通りです:
プラン | 料金 |
---|---|
Essentials | 月間10,000件まで無料 |
Standard | 10,000件まで無料、月間100,000件まで$8 |
Enterprise | 10,000件まで無料、100,000件まで$8、以降1,000件ごとに$1 |
※ 以前は月間100万件まで無料でしたが、2024年4月以降は10,000件に縮小されています。
Google Cloudプロジェクトへの移行
重要なお知らせ
- 2025年末までにGoogle CloudプロジェクトへのreCAPTCHAの紐づけが必要です
- 手動での移行が推奨されますが、自動移行も予定されています
- おそらく自動移行は自分で選択せずにGoogle Cloud側でプロジェクトにひもづけられるため、 自分でプロジェクトを選択したい場合は、手動移行を選択する必要があります。
移行手順
- Google Cloudプロジェクトの作成
- reCAPTCHA Enterprise APIの有効化
- 新しいサイトキーの発行
- 実装コードの更新(必要な場合)
詳細な移行手順はこちら(https://cloud.google.com/recaptcha/docs/migrate-recaptcha?hl=ja#google-cloud-console)
クラシック版とエンタープライズ版で認証方法、キー、エンドポイントについての違い
クラシック版とエンタープライズ版の認証方法、キー、エンドポイントについての違いをまとめました。
認証方法
認証方法は2つあります。
- v2/v3のsiteverifyエンドポイントでの検証
- APIキーを使用したGoogle Cloud認証
認証方法 | reCAPTCHAクラシック版 | reCAPTCHAエンタープライズ版 |
---|---|---|
siteverify検証 | クラシック版からアップデートした場合○ | ○ |
Cloud認証 | × | ○ |
アップデートするとエンタープライズ版では、どちらの認証方法も使用できます。 こちら筆者はテスト済みです。
- クラシック版:siteverifyエンドポイントでの検証
- エンタープライズ版:APIキーを使用したGoogle Cloud認証
キー
クラシック版(v2/v3)のキー管理
-
サイトキー (Site key)
- HTMLやJavaScriptに埋め込んで使用
- 旧reCAPTCHA管理画面で発行
-
シークレットキー (Secret key)
- バックエンド用の秘密キー
- siteverifyエンドポイントでの検証に使用
- 公開してはいけない情報
エンタープライズ版のキー管理
-
サイトキー
- Google Cloud Console上で管理
- フロントエンド実装は従来と同様
-
認証方式(2つのオプション)
-
レガシーシークレットキーモード
- 既存システムとの互換性維持(**
- 従来のsiteverifyエンドポイントが使用可能
- 移行時に自動的に発行
-
Google Cloud認証
- APIキーまたはサービスアカウントを使用
- より高度な機能とセキュリティ
- 推奨される実装方式
-
鍵についてまとめると
- サイトキーはクラシック版、エンタープライズ版でも使用
- シークレットキーは①クラシック版のsiteverifyエンドポイントでの検証に使用、②エンタープライズ版のsiteverifyエンドポイントでの検証に使用
- APIキーはエンタープライズ版のGoogle Cloud認証での検証に使用
- siteverifyエンドポイントの検証よりも、APIキーの検証の方がセキュリティ性能が高い
よくある質問 | reCAPTCHA | Google for Developers
予算計画の立て方
reCAPTCHA Enterpriseは米ドル建ての料金体系ですが、日本企業向けに円建ての予算を立てる方法を解説します。
- サービス名:reCAPTCHA Enterprise
- サービス概要:reCAPTCHA Enterpriseは、Google Cloud Platform上で提供される不正アクセス防止サービスです。
- 導入理由:旧来のreCAPTCHA の サービスが変更になり、新しいサービスに移行するため
- 費用対効果:不正アクセス防止のためのサービスであるため、不正アクセスが発生しない場合は費用が発生しません。
- 支払い方法:クレジットカード
- 請求先:Google Cloud請求アカウントに紐づけられたクレジットカード
- 支払いサイト:Google Cloud Console
料金計算の基本(2024年現在)
月間評価件数 | プラン | 料金(USD) | 日本円換算(概算) |
---|---|---|---|
~10,000件 | Essentials | $0 | ¥0 |
10,001~100,000件 | Standard | $8/月 | ¥1,200~1,400 |
100,001件以降 | Enterprise | $1/1,000件 | ¥150/1,000件 |
※ 円換算は1ドル=150円で概算。為替レートにより変動します。
利用ケース別の予算設定
1. 月間1万件以内の場合
- 基本的に無料(Essentialsプラン)
- 予算計上:月額 ¥0~1,400
- Google Cloud請求アラートで超過監視推奨
2. 月間1~10万件の場合
- Standardプラン固定料金
- 予算計上:月額 ¥1,500 × 12ヶ月 = 年額 ¥18,000
- 10万件までは定額で利用可能
3. 月間10万件超の場合
例)月間15万件の場合:
- 基本料金:$8(約¥1,200)
- 超過分(5万件):$50(約¥7,500)
- 合計:約¥8,700/月
予算申請時の注意点
-
為替変動への対応
- ドル建て請求のため、為替レートの変動を考慮
- 余裕を持った予算設定を推奨
-
請求方法
- クレジットカード決済
- 法人契約の場合は請求書払い可能
- Google Cloud Billingでまとめて請求
-
予算申請用コメント例
Google reCAPTCHA Enterpriseは、Google Cloud Platform上で提供される 不正アクセス防止サービスです。当社Webサイトでの問い合わせフォーム保護のため、 月間評価件数約1万件を想定して、年間最大 ¥18,000 程度の予算を申請します (Google公式料金:$8/月 = 約¥1,200、為替リスクを見込み月額¥1,500計上)。
予算管理のベストプラクティス
- Google Cloud予算アラートの設定
- 月次での利用状況モニタリング
- 四半期ごとの予算見直し
- 為替変動の定期チェック
料金詳細 | reCAPTCHA Enterprise | Google Cloud
請求先の設定と管理
Google Cloud請求アカウントの設定
reCAPTCHA Enterpriseの利用料金は、Google Cloud請求アカウントを通じて請求されます。
請求先の種類
-
個人請求(クレジットカード)
- 即時利用開始可能
- クレジットカードによる自動決済
- 毎月の利用料が自動請求
-
法人請求
- 請求書払いが可能
- 法人向け支払い条件の設定
- 税務処理に必要な書類の発行
請求書払いとは
請求書払いは、Google Cloudの請求書を印刷して手動で支払う方法です。
請求先設定の手順
-
Google Cloudコンソールでの設定
- 請求アカウントの作成
- 支払い方法の登録
- 予算アラートの設定
-
法人請求の場合の追加手順
- 法人情報の登録
- 担当者情報の設定
- 請求書送付先の指定
注意すべきポイント
-
請求の単位
- 組織(ドメイン)単位での請求
- 複数プロジェクトの料金をまとめて請求可能
- サービス別の利用明細あり
-
予算管理
- プロジェクト単位での予算設定
- 利用量に応じたアラート設定
- 月次レポートの確認
-
支払い条件
- 支払期限:請求書発行から30日以内
- 最低請求額:なし(利用分のみ)
- 為替レート:請求時のレートを適用
reCAPTCHAの実装確認方法
サイトにreCAPTCHAが正しく実装されているか、またどのバージョンが使用されているかを確認する最も確実な方法はブラウザのコンソールを使用することです。
コンソールからの確認手順
1. grecaptchaオブジェクトの存在確認
まず、reCAPTCHAが読み込まれているかどうかを確認します:
typeof grecaptcha
結果の解釈:
"object"
→ reCAPTCHAが正常に読み込まれています"undefined"
→ reCAPTCHAが読み込まれていません(実装に問題がある可能性)
2. Enterpriseバージョンかクラシックバージョンかの判別
次に、どのバージョンが使用されているかを確認します:
grecaptcha.enterprise
結果の解釈:
undefined
→ クラシック版(v2/v3)が使用されています(grecaptcha.execute()
で実行)object
→ Enterprise版が使用されています(grecaptcha.enterprise.execute()
で実行)
3. より詳細な構造確認
さらに詳しく調べるには:
console.dir(grecaptcha);
または:
Object.keys(grecaptcha)
Enterprise版が正しく読み込まれている場合、返される配列にenterprise
というキーが含まれているはずです。
実装の違いによる動作確認
クラシック版(v2/v3)の実行例
// v3の場合
grecaptcha.execute('サイトキー', {action: 'submit'})
.then(function(token) {
console.log('クラシック版トークン:', token);
});
Enterprise版の実行例
// Enterprise版
grecaptcha.enterprise.execute('サイトキー', {action: 'submit'})
.then(function(token) {
console.log('Enterprise版トークン:', token);
});
注意点
- 同じページに両方のバージョンを読み込むことは避けてください(競合の原因になります)
- Enterprise版に移行する場合は、フロントエンドとバックエンドの両方を更新する必要があります
- 実装方法が異なるため、APIの呼び出し方法も変更が必要です
よくある実装トラブルと解決方法
reCAPTCHA Enterpriseへの移行や実装時によく発生する問題とその解決方法をまとめました。
1. スクリプト読み込みの問題
症状: grecaptcha is not defined
というエラーが発生する
解決策:
- スクリプトタグが正しく配置されているか確認
- 非同期読み込み(async属性)を使用している場合は、実行前に読み込み完了を確認
- 正しいAPIバージョンのスクリプトを読み込んでいるか確認
<!-- Enterprise版の正しいスクリプト読み込み -->
<script src="https://www.google.com/recaptcha/enterprise.js?render=YOUR_SITE_KEY" async defer></script>
2. Enterprise版とクラシック版の混在
症状: トークン生成はできるが、バックエンドでの検証に失敗する
解決策:
- フロントエンドとバックエンドで同じバージョンを使用しているか確認
- Enterprise版を使用している場合は、
grecaptcha.enterprise.execute()
を使用 - バックエンドの検証エンドポイントが正しいか確認
// Enterprise版の正しい実行方法
grecaptcha.enterprise.ready(function() {
grecaptcha.enterprise.execute('YOUR_SITE_KEY', {action: 'login'})
.then(function(token) {
// トークンをサーバーに送信
});
});
3. ドメイン制限の問題
症状: 特定の環境でのみreCAPTCHAが動作しない
解決策:
- Google Cloud Consoleでサイトキーの設定を確認
- 許可ドメインリストに開発環境や本番環境のドメインが含まれているか確認
- サブドメインやローカル環境(localhost)も必要に応じて追加
4. モバイル対応の問題
症状: モバイルデバイスでreCAPTCHAが正しく表示されない、または機能しない
解決策:
- モバイル向けのSDKを使用しているか確認
- レスポンシブデザインでreCAPTCHAが適切に表示されるか確認
- タッチイベントの処理が正しく行われているか確認
5. スコアリングの問題
症状: 正常なユーザーがブロックされる、または不正アクセスが検出されない
解決策:
- スコアのしきい値を調整(初期設定は0.5)
- アクション名を適切に設定して文脈を提供
- 複数の検証要素を組み合わせる(スコア + ユーザー行動分析)
// アクション名を明示的に設定
grecaptcha.enterprise.execute('YOUR_SITE_KEY', {action: 'login_form_submit'})
6. 請求と予算の問題
症状: 予想以上の請求が発生する
解決策:
- 利用量モニタリングを設定
- 予算アラートを適切なしきい値で設定
- 不要なAPI呼び出しを最小限に抑える実装パターンを採用
7. 移行期間中の互換性問題
症状: 移行中に一部機能が動作しなくなる
解決策:
- 段階的な移行計画を立てる
- A/Bテストで一部トラフィックのみに新実装を適用
- フォールバックメカニズムを実装
プラットフォームのロギング
Google Cloud Console 上で reCAPTCHA Enterprise のログを Cloud Logging に出力する設定
reCAPTCHA Enterprise API の呼び出しに関する詳細なログ(成功・失敗、スコア、判定理由など)を Cloud Logging に記録できるようにする機能。
Google Cloud Console の ログビューア(Logging > ログ エクスプローラ) から確認できる。
Cloud Logging の料金
項目 | 料金 | 無料枠 |
---|---|---|
ログの取り込み量 | 0.50 ドル/GB | 毎月 50GB まで無料 |
ログの保存期間 | 最長 30 日(無料) | 無料枠内でOK(拡張すると課金) |