# Accès aux e-mails pour toute l’organisation

Pour lire les e-mails et rédiger des brouillons, l’assistant a besoin d’un
accès à la boîte mail. Pour une organisation qui a plusieurs boîtes mail, la
solution la plus simple est une **inscription d’application** : un seul accès
pour toute l’organisation, sans connexion boîte par boîte. Les inscriptions se
trouvent dans Organisation → **Intégrations**, carte **Accès aux e-mails pour
toute l’organisation**. Elles sont gérées par les propriétaires et les
gestionnaires de l’organisation.

Pour une seule boîte mail, un **compte connecté** (bouton Connecter Outlook /
Connecter Gmail) ou des **identifiants IMAP** conviennent aussi – voir le guide
[Ajouter et connecter une boîte mail](/fr/admin/adding-a-mailbox).

## Microsoft 365 (Entra)

Pour la configuration, il vous faut des droits d’administrateur dans Entra ID.

1. https://entra.microsoft.com → Identity → Applications → **App registrations**
   → **New registration**.
2. Nommez-la par exemple `draften`, **Accounts in this organizational directory
   only**, sans Redirect URI → **Register**.
3. Sur **Overview**, notez l’**Application (client) ID** et le **Directory
   (tenant) ID**.
4. **Certificates & secrets → New client secret** (24 mois au maximum). La
   valeur n’est affichée qu’une seule fois ; notez aussi la date d’expiration.
5. **API permissions → Add a permission → Microsoft Graph → Application
   permissions** : `Mail.ReadWrite` et `MailboxSettings.ReadWrite` (la seconde
   uniquement pour la couleur de la catégorie Outlook).
6. **Grant admin consent** – coches vertes sur les deux lignes.

**N’ajoutez pas `Mail.Send`.** draften n’envoie rien, et sans cette
autorisation il ne le peut pas – c’est tout l’intérêt.

Ensuite, dans draften, choisissez **Microsoft 365 (Entra)** dans la carte des
inscriptions, saisissez un nom, le Directory (tenant) ID, l’Application
(client) ID, la valeur du secret (pas son ID) et son expiration, puis cliquez
sur **Ajouter une inscription**.

## Google Workspace

1. Activez la **Gmail API** dans le projet Google Cloud de votre Workspace.
2. Créez un **compte de service** et téléchargez sa **clé JSON** (IAM →
   Service accounts → Keys).
3. Dans Google Admin → Security → Access and data control → API controls →
   **Domain-wide delegation**, autorisez l’ID client numérique du compte de
   service pour le champ d’application
   `https://www.googleapis.com/auth/gmail.modify`.

Dans draften, choisissez **Google Workspace**, importez le fichier de clé et
ajoutez l’inscription. Elle est stockée chiffrée ; seuls l’e-mail du compte et
l’ID client sont affichés.

## L’attribuer aux boîtes mail

Une inscription ne connecte rien à elle seule. Le **propriétaire de
l’organisation** l’attribue à chaque boîte mail sur la page de celle-ci :
Accès aux e-mails → **Utiliser** → **Appliquer**, puis lance **Tester la
connexion**. L’inscription indique quelles boîtes mail l’utilisent. Avec
[Boîte mail automatique](/fr/admin/member-sign-in) activé, une nouvelle boîte
mail y est liée d’elle-même lorsqu’une seule inscription est active pour son
système de messagerie.

## Expiration du secret

Le secret d’une inscription Entra a une validité limitée. Avant qu’il
n’expire, créez-en un nouveau dans Entra et cliquez sur **Nouveau secret** au
niveau de l’inscription dans draften. Quand un secret expire, les boîtes mail
se déconnectent (`invalid_client`) et les assistants les ignorent ; après le
remplacement, lancez le test de connexion.

## Restreindre techniquement l’accès (facultatif)

Une inscription Microsoft 365 atteint toutes les boîtes mail de
l’organisation ; c’est draften qui fait office de garde (un membre ne peut pas
ajouter de boîte mail ; l’assistant n’envoie ni ne supprime jamais rien). Si
vous voulez en plus une barrière technique, restreignez l’application à un
groupe de sécurité avec une `ApplicationAccessPolicy` dans Exchange Online :

```
Connect-ExchangeOnline -UserPrincipalName admin@<tenant>.onmicrosoft.com
New-DistributionGroup -Name "draften - allowed mailboxes" -Alias draften-mailboxes -Type Security -Members mailbox@company.com
New-ApplicationAccessPolicy -AppId <Application (client) ID> -PolicyScopeGroupId draften-mailboxes@company.com -AccessRight RestrictAccess -Description "draften: allowed mailboxes only"
Test-ApplicationAccessPolicy -Identity mailbox@company.com -AppId <Application (client) ID>
```

Chaque boîte mail supplémentaire doit alors être ajoutée elle aussi au groupe,
sinon son test de connexion échoue avec une erreur 403 (`AppOnly
AccessPolicy`). La stratégie peut mettre plusieurs heures à prendre effet.
