6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

railsアプリで利用されているreCAPTCHA v2からreCAPTCHA Enterpriseに最小工数で切り替える

Last updated at Posted at 2024-03-29

2024年4月1日からreCAPTCHAの無料制限が100万回から1万回に制限が変更されるというニュースがありました。

小さいサイトだと、1万回は問題なさそうですが、ある程度の規模のサイトだと用途によっては簡単に超えてしまいそうです。
v2を継続する場合、1万回を超えると課金ではなく使えなくなるため、今回は既にreCAPTCHA v2を導入しているRailsアプリケーションをreCAPTCHA Enterpriseに切り替える手順を説明します。

今回利用した元々の動作環境

  • ruby3.1.4
  • rails 7.0.8.1
  • reCAPTCHA関連の実装は ambethia/recaptcha の5.12.3 を利用

Site keyを作成する

Google Cloudでプロジェクトを作成後、reCAPTCHA Enterprise API をまず有効にします。
有効にした後、reCAPTCHA Enterpriseのページでキーを作成というリンクがあるのでそこを押しします。

作成画面に入った後、利用するドメインなど適切に埋めていけばよいですが、チェックボックスによる本人確認を使用するをv2から移行する場合オンにしましょう。

スクリーンショット 2024-03-29 17.15.20.png

これによってv2で行われていた画像認証が行われるようになります。
こちらは作成時しか設定できないため、設定を忘れた場合は削除して作り直しましょう。
こちらで作成したキー IDをSite keyとして後ほど利用します。

API Keyを作成する

続いて、認証情報のページで認証情報を作成→APIキーをクリックします。
スクリーンショット 2024-03-29 17.18.01.png
APIキーを作成されたら編集画面に飛び、クライアントでAPIをたたくわけではないため、Webサイトの指定はせず、reCAPTCHA Enterprise APIのみに使えるように制限を与えます。

スクリーンショット 2024-03-29 17.19.30.png

これでGoogle Cloudの設定はOKです。

Railsアプリケーションの対応

先ほど作成したSite keyとAPI keyを使ってRails側の設定をします。
reCAPTCHAの設定をしているファイルを開き、以下のように書き換えます。

# 普通直書きしてないと思うので、そこは各アプリケーションの環境変数のお作法に従ってください
Recaptcha.configure do |config|
-   config.site_key = # 過去設定していたSite key  
+   config.site_key = # 先ほど作成したSite key
-   config.secret_key = # 過去設定していたSecret key   
+   config.enterprise = true
+   config.enterprise_api_key = # 先ほど作成したAPI Key
+   config.enterprise_project_id = # Site Keyなどを作成したプロジェクトのID
end

ここまで設定すれば、他の面倒な部分はgrecaptcha gemがよしなにやってくれるため必要な対応は完了となります。
フロントエンドをReactなどで記述している場合は別途そちらの対応も必要ですが、公式のドキュメントを参考にすれば問題なく行えると思います。

まとめ

ambethia/recaptchaがかなりよしなにやってくれるので、対応は最小限に済みました。
別サービスへの移行も良いですが、直前や4月以降に知ってこの記事を読んでいる方は、ひとまず少ない工数で行えるreCAPTCHA Enterpriseへの移管をするのが良さそうです。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?