> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# reCAPTCHA

> Google reCAPTCHA でログイン、登録、パスワードリセットを保護するには？

> [!NOTE]
>
> この機能は [ayaka-notes/ayakaleaf-pro](https://github.com/ayaka-notes/ayakaleaf-pro) によって開発され、v6.4.0 から利用できます。

メールアドレスとパスワードによるログイン、LDAP ログイン、登録、パスワードリセットで、Google reCAPTCHA v2（invisible）を要求できます。デフォルトではオフです。ほとんどのユーザーには何も表示されません。チェックはボタンを押したときに実行され、Google がリクエストを不審と判断した場合にのみ画像チャレンジが表示されます。SAML と OIDC のログイン、および管理者が作成したアカウントには影響しません。

1. [reCAPTCHA 管理コンソール](https://www.google.com/recaptcha/admin)で、タイプが **reCAPTCHA v2**、**Invisible reCAPTCHA badge** のキーを作成し、インスタンスのドメインを追加します。ドメインにはそのサブドメインも含まれます。たとえば `example.com` には `latex.example.com` も含まれます。
2. `config/variables.env` に 2 つのキーを設定し、`bin/up` を実行します:

```text theme={null}
RECAPTCHA_SITE_KEY=<site key>
RECAPTCHA_SECRET_KEY=<secret key>
```

| 変数 | デフォルト | 用途 |
| - | - | - |
| `RECAPTCHA_SITE_KEY` | 未設定 | ログイン、LDAP ログイン、登録、パスワードリセットでキャプチャを有効にします。 |
| `RECAPTCHA_SECRET_KEY` | 未設定 | 同じ reCAPTCHA キーのシークレットキー。サーバーが回答を検証するために使用します。 |
| `RECAPTCHA_ENDPOINT` | `https://www.google.com/recaptcha/api/siteverify` | サーバーが回答を検証する場所。`www.google.com` に到達できない環境では、`https://www.recaptcha.net/recaptcha/api/siteverify` を使用してください。 |
| `CAPTCHA_TRUSTED_USERS` | 未設定 | サーバーがキャプチャを検証せずに通過させるメールアドレスのカンマ区切りリスト。 |
| `CAPTCHA_TRUSTED_USERS_REGEX` | 未設定 | そのようなメールアドレスを表す正規表現。メールアドレス全体に一致する必要があります。 |
| `DEVICE_HISTORY_SECRET` | 未設定 | 16 進数 64 文字（例: `openssl rand -hex 32` で生成）。あるメールアドレスでログインしたブラウザが、そのメールアドレスについて 90 日間キャプチャをスキップできるようにします。未設定の場合、すべてのログインでキャプチャが表示されます。 |

* ページは reCAPTCHA スクリプトを `www.recaptcha.net` から読み込むため、`www.google.com` がブロックされている環境でも動作します。
* 登録とパスワードリセットでは毎回キャプチャが求められます。LDAP ログインも、`DEVICE_HISTORY_SECRET` を設定していても毎回求められます。LDAP ログインではメールアドレスではなくユーザー名が送信されるためです。
* ログインには引き続きレート制限もかかります。IP アドレスごとに 1 分あたり 20 回、メールアドレスごとに 2 分あたり 10 回までです。
* Ayakaleaf Pro は、Google が回答を受け入れたかどうかのみを確認します。reCAPTCHA v3 のスコアやしきい値はサポートされておらず、チャレンジを表示するタイミングは Google が判断します。
* キーを取得する前に試すには、Google の[テストキー](https://developers.google.com/recaptcha/docs/faq)を使用してください。すべてのチェックが通過し、ウィジェットに警告が表示されるため、本番環境では使用しないでください。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.