# Vault Warden

# Ajouter un utilisateur

# Vaultwarden : ajouter un utilisateur

<table id="bkmrk-%C2%A0-%C2%A0-service-vaultwar"><thead><tr><th> </th><th> </th></tr></thead><tbody><tr><td>**Service**</td><td>Vaultwarden (Docker)</td></tr><tr><td>**Objet**</td><td>Création d'un compte utilisateur sur une instance aux inscriptions fermées</td></tr><tr><td>**Prérequis**</td><td>Accès SSH au serveur, accès au fichier <code>docker&#45;compose&#46;yml</code></td></tr><tr><td>**Durée estimée**</td><td>5 à 10 minutes</td></tr></tbody></table>

---

## 1. Principe

Les inscriptions publiques sont fermées (`SIGNUPS_ALLOWED=false`). Un nouvel utilisateur ne peut donc créer son compte qu'après avoir été **invité**.

Trois méthodes sont possibles :

<table id="bkmrk-m%C3%A9thode-usage-recomm"><thead><tr><th>Méthode</th><th>Usage</th><th>Recommandée</th></tr></thead><tbody><tr><td>Panneau d'administration</td><td>Cas général</td><td>✅</td></tr><tr><td>Ouverture temporaire des inscriptions</td><td>Dépannage, panneau admin indisponible</td><td>⚠️</td></tr><tr><td>Invitation dans une organisation</td><td>Partage de coffre (famille, équipe)</td><td>✅</td></tr></tbody></table>

---

## 2. Méthode A : via le panneau d'administration

### 2.1 Activer le panneau admin (si nécessaire)

Le panneau n'est accessible que si `ADMIN_TOKEN` est défini.

1. Générer un hash Argon2 du mot de passe admin :
    
    ```bash
    docker exec -it vaultwarden /vaultwarden hash
    
    ```
2. Ajouter le hash dans `docker-compose.yml`. **Doubler chaque `$`**, car ce caractère est interprété par Docker Compose :
    
    ```yaml
    services:
      vaultwarden:
        environment:
          ADMIN_TOKEN: '$$argon2id$$v=19$$m=65540,t=3,p=4$$...'
    
    ```
3. Appliquer la configuration :
    
    ```bash
    docker compose up -d
    
    ```

### 2.2 Inviter l'utilisateur

1. Ouvrir `https://<domaine>/admin` et s'authentifier avec le mot de passe admin (en clair, pas le hash).
2. Aller dans l'onglet **Users**.
3. Dans **Invite User**, saisir l'adresse e-mail de l'utilisateur, puis valider.

### 2.3 Création du compte par l'utilisateur

Le parcours dépend de la configuration SMTP :

- **SMTP configuré** : l'utilisateur reçoit un e-mail d'invitation et suit le lien.
- **SMTP non configuré** : l'invitation est acceptée automatiquement. Communiquer à l'utilisateur :
    
    
    - l'URL de l'instance : `https://<domaine>`
    - l'**adresse e-mail exacte** utilisée pour l'invitation
    
    L'utilisateur clique sur **Créer un compte** et s'inscrit avec cette adresse.

### 2.4 Vérification

Dans **Users** du panneau admin, l'utilisateur apparaît avec son compte créé (et non plus en statut *Invited*).

---

## 3. Méthode B : ouverture temporaire des inscriptions

> ⚠️ Pendant la fenêtre d'ouverture, **n'importe qui** pouvant joindre l'instance peut créer un compte. À réserver au dépannage, et à refermer immédiatement.

1. Dans `docker-compose.yml` :
    
    ```yaml
    SIGNUPS_ALLOWED: 'true'
    
    ```
2. Appliquer : `docker compose up -d`
3. Laisser l'utilisateur créer son compte.
4. Remettre `SIGNUPS_ALLOWED: 'false'` et réappliquer : `docker compose up -d`
5. Vérifier dans le panneau admin qu'aucun compte inattendu n'a été créé.

**Variante plus restrictive :** limiter les inscriptions à un domaine e-mail :

```yaml
SIGNUPS_DOMAINS_WHITELIST: 'mondomaine.fr'

```

---

## 4. Méthode C : invitation dans une organisation

Pour un utilisateur qui doit accéder à un coffre partagé.

Prérequis : `INVITATIONS_ALLOWED` à `true` (valeur par défaut).

1. Se connecter au coffre web avec un compte propriétaire ou administrateur de l'organisation.
2. Aller dans **Organisation**, puis **Membres**, puis **Inviter un membre**.
3. Saisir l'e-mail, choisir le rôle et les collections accessibles.
4. Une fois que l'utilisateur a créé son compte et accepté l'invitation, **confirmer** le membre dans la liste des membres. Sans cette confirmation, il n'a pas accès aux éléments partagés.

---

## 5. Points d'attention

### `config.json` prioritaire sur les variables d'environnement

Dès qu'un réglage est enregistré depuis le panneau admin, Vaultwarden écrit un fichier `config.json` dans le volume `/data`. **Ce fichier prend le dessus sur les variables du `docker-compose.yml`.**

Symptôme : une variable modifiée dans le compose semble ignorée. Solution : modifier le réglage depuis le panneau admin, ou supprimer la clé concernée dans `config.json` puis redémarrer le conteneur.

### Sécurisation du panneau admin

Après l'opération, au choix :

- **Désactiver le panneau** : retirer `ADMIN_TOKEN` du compose et supprimer la clé `admin_token` dans `config.json` si elle y figure, puis `docker compose up -d`.
- **Restreindre l'accès** au chemin `/admin` au niveau du reverse proxy (accès via VPN ou réseau local uniquement).

---

## 6. Récapitulatif rapide

```text
1. https://<domaine>/admin → Users → Invite User → e-mail
2. Transmettre URL + e-mail exact à l'utilisateur
3. L'utilisateur crée son compte avec cet e-mail
4. Vérifier dans Users
5. Re-sécuriser /admin si besoin

```