> ## 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`에 두 키를 설정하고 `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일 동안 캡차를 건너뛸 수 있습니다. 설정하지 않으면 모든 로그인에서 캡차를 요구합니다. |

* 페이지는 `www.recaptcha.net`에서 reCAPTCHA 스크립트를 불러오므로 `www.google.com`이 차단된 환경에서도 동작합니다.
* 가입과 비밀번호 재설정은 매번 캡차를 요구합니다. LDAP 로그인도 `DEVICE_HISTORY_SECRET`이 설정되어 있더라도 매번 요구합니다. LDAP 로그인은 이메일이 아니라 사용자 이름을 보내기 때문입니다.
* 로그인 시도 횟수 제한도 그대로 적용됩니다: IP 주소당 분당 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.