
# Contrôle de l'inscription

Déclarer une stratégie dit _comment_ quelqu'un s'authentifie. Cela ne dit pas _si_ un inconnu peut créer un compte en premier lieu. `auth.allowSignUp` est cette seconde décision, indépendante des stratégies activées.

```yaml
auth:
  allowSignUp: false
  strategies:
    - type: emailAndPassword
```

| Valeur              | Comportement                                                                                                                                    |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| `true` (par défaut) | Quiconque peut s'auto-inscrire via les stratégies activées.                                                                                     |
| `false`             | L'auto-inscription est désactivée. Seuls les administrateurs créent des utilisateurs via `POST /api/auth/admin/create-user` ou des invitations. |

La valeur par défaut est `true` parce que c'est la bonne réponse pour un produit public. C'est la mauvaise réponse pour la plupart des outils internes et pour tout portail client : là, un compte est quelque chose qu'on vous _donne_, et laisser l'auto-inscription ouverte signifie que quiconque trouve l'URL n'est qu'à un formulaire d'une session.

:::callout
**`allowSignUp: false` ferme la porte publique, pas celle de l'administrateur.** La création d'utilisateur pilotée par un administrateur reste disponible dès que l'authentification est configurée, et n'est pas affectée par cet indicateur. Les invitations non plus — voir ci-dessous.
:::

## Filtrer par invitation

Avec l'auto-inscription fermée, il vous faut malgré tout accueillir de vraies personnes sans qu'un administrateur invente et transmette un mot de passe. Les invitations sont cette voie : un administrateur émet un jeton à usage unique, Sovrium envoie un lien par e-mail, et l'invité définit son propre mot de passe.

```yaml
auth:
  allowSignUp: false
  strategies:
    - type: emailAndPassword
  invitationTokenExpiry: 7d
```

| Propriété               | Description                                                                                                                            |
| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `invitationTokenExpiry` | Durée de vie des jetons issus de `POST /api/auth/admin/invite-user`. Chaîne de durée (`72h`, `7d`) ou millisecondes. Par défaut `72h`. |

Une chaîne de durée s'écrit `<entier positif><unité>`, l'unité étant `s`, `m`, `h` ou `d` — `30s`, `15m`, `72h`, `7d`. Un nombre nu est lu comme des millisecondes. Toute autre forme échoue à la validation.

Des expirations plus courtes conviennent aux portails clients à haute sécurité ; la valeur `72h` par défaut convient à l'intégration B2B, où un invité ne consulte pas forcément ses e-mails le jour même. Les jetons sont à usage unique dans les deux cas, consommés à la première acceptation réussie.

## Quel chemin utiliser

| Vous voulez                                                | Définissez                                                                  |
| ---------------------------------------------------------- | --------------------------------------------------------------------------- |
| Un produit public que chacun peut rejoindre                | `allowSignUp: true` (ou omettez-le).                                        |
| Une application fermée, utilisateurs accueillis par e-mail | `allowSignUp: false` + [invitations](/fr/docs/auth-invitations).            |
| Une application fermée, comptes provisionnés par script    | `allowSignUp: false` + `POST /api/auth/admin/create-user`.                  |
| Un accès uniquement fédéré, sans comptes locaux            | `allowSignUp: false` + une stratégie [`oauth`](/fr/docs/auth-social-oauth). |

## Pages connexes

- [Invitations](/fr/docs/auth-invitations) — le flux que `invitationTokenExpiry` configure.
- [Gestion des utilisateurs](/fr/docs/user-management) — amorçage administrateur et API create-user.
- [Présentation des stratégies](/fr/docs/auth-strategies) — le tableau `strategies` qui l'accompagne.
- [Modèles d'e-mail](/fr/docs/auth-email-templates) — le corps de l'e-mail `invitation`.
- [Rôles & RBAC](/fr/docs/auth-roles-rbac) — le rôle que reçoit un utilisateur nouvellement créé.
