> ## 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

> Comment protéger la connexion, l'inscription et la réinitialisation du mot de passe avec Google reCAPTCHA ?

> [!NOTE]
>
> Cette fonctionnalité est développée par [ayaka-notes/ayakaleaf-pro](https://github.com/ayaka-notes/ayakaleaf-pro) et est disponible à partir de la v6.4.0.

La connexion par e-mail et mot de passe, la connexion LDAP, l'inscription et la réinitialisation du mot de passe peuvent demander un Google reCAPTCHA v2 (invisible). Il est désactivé par défaut. La plupart des utilisateurs ne voient rien : la vérification s'exécute lorsqu'ils appuient sur le bouton, et Google n'affiche un défi en images que lorsqu'il juge la requête suspecte. Les connexions SAML et OIDC ainsi que les comptes créés par un administrateur ne sont pas concernés.

1. Dans la [console d'administration reCAPTCHA](https://www.google.com/recaptcha/admin), créez une clé de type **reCAPTCHA v2**, **Invisible reCAPTCHA badge**, et ajoutez le domaine de votre instance. Un domaine couvre également ses sous-domaines ; par exemple, `example.com` couvre `latex.example.com`.
2. Définissez les deux clés dans `config/variables.env` et exécutez `bin/up` :

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

| Variable | Valeur par défaut | Rôle |
| - | - | - |
| `RECAPTCHA_SITE_KEY` | Non définie | Active le captcha pour la connexion, la connexion LDAP, l'inscription et la réinitialisation du mot de passe. |
| `RECAPTCHA_SECRET_KEY` | Non définie | Clé secrète de la même clé reCAPTCHA, utilisée par le serveur pour vérifier les réponses. |
| `RECAPTCHA_ENDPOINT` | `https://www.google.com/recaptcha/api/siteverify` | Adresse à laquelle le serveur vérifie les réponses. Lorsque `www.google.com` n'est pas joignable, utilisez `https://www.recaptcha.net/recaptcha/api/siteverify`. |
| `CAPTCHA_TRUSTED_USERS` | Non définie | Adresses e-mail, séparées par des virgules, que le serveur laisse passer sans vérifier le captcha. |
| `CAPTCHA_TRUSTED_USERS_REGEX` | Non définie | Une expression régulière pour de telles adresses e-mail ; elle doit correspondre à l'adresse e-mail entière. |
| `DEVICE_HISTORY_SECRET` | Non définie | 64 caractères hexadécimaux, par exemple obtenus avec `openssl rand -hex 32`. Permet à un navigateur qui s'est connecté avec une adresse e-mail d'éviter le captcha pour cette adresse pendant 90 jours. Si elle n'est pas définie, chaque connexion passe par le captcha. |

* Les pages chargent le script reCAPTCHA depuis `www.recaptcha.net`, ce qui fonctionne également là où `www.google.com` est bloqué.
* L'inscription et la réinitialisation du mot de passe le demandent à chaque fois. La connexion LDAP le demande aussi à chaque fois, même avec `DEVICE_HISTORY_SECRET` : elle envoie un nom d'utilisateur, et non une adresse e-mail.
* Les connexions restent également limitées en débit : 20 tentatives par minute par adresse IP et 10 tentatives toutes les 2 minutes par adresse e-mail.
* Ayakaleaf Pro vérifie uniquement si Google accepte la réponse. Les scores et seuils de reCAPTCHA v3 ne sont pas pris en charge, et c'est Google qui décide quand afficher un défi.
* Pour l'essayer avant d'avoir une clé, utilisez les [clés de test](https://developers.google.com/recaptcha/docs/faq) de Google : toutes les vérifications réussissent et le widget affiche un avertissement ; ne les utilisez donc pas en production.


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