Files
AggloSign/docs/01-entra-app-registrations.md
2026-09-30 17:06:16 +02:00

84 lines
4.9 KiB
Markdown

# 01 — Inscriptions d'application Entra et groupes AD
Deux inscriptions d'application (App Registrations), toutes deux **mono-tenant** (CABM) :
| Inscription | Rôle | Variables alimentées |
| --- | --- | --- |
| CABM Signatures - Add-in | Jeton NAA de l'add-in, audience de l'API | `ADDIN_CLIENT_ID`, `API_SCOPE` (add-in), `ADDIN_API_AUDIENCES` (backend) |
| CABM Signatures - Back-office | SSO du back-office et du portail, synchro Graph | `GRAPH_CLIENT_ID`, `GRAPH_CLIENT_SECRET` |
L'ID du tenant (`ENTRA_TENANT_ID`) se lit dans Entra > Vue d'ensemble.
---
## 1. Inscription « CABM Signatures - Add-in »
Entra admin center > Applications > Inscriptions d'applications > Nouvelle inscription.
1. **Nom** : `CABM Signatures - Add-in` — **Types de comptes** : comptes de cet annuaire uniquement.
2. **Authentification** > Ajouter une plateforme > **Application monopage (SPA)**, URI de redirection :
- `brk-multihub://signature.beziers-mediterranee.fr` (obligatoire pour NAA)
- `https://signature.beziers-mediterranee.fr/addin/taskpane.html`
3. **Exposer une API** :
- URI d'ID d'application : `api://signature.beziers-mediterranee.fr/<ID client de l'add-in>`
(le domaine doit être un domaine vérifié du tenant : c'est le cas de beziers-mediterranee.fr).
- Ajouter une étendue : nom `access_as_user`, consentement « Administrateurs et utilisateurs »,
libellé « Obtenir sa signature email ».
4. **Manifeste** (éditeur JSON de l'inscription) : `"requestedAccessTokenVersion": 2`
(propriété `api.requestedAccessTokenVersion`, ou `accessTokenAcceptedVersion` selon l'affichage).
5. **Autorisations de l'API** > Ajouter > Mes API > CABM Signatures - Add-in > déléguée `access_as_user`.
Conserver Microsoft Graph `User.Read` (déléguée).
Puis **Accorder le consentement administrateur pour CABM** : c'est ce qui permet au jeton d'être
obtenu silencieusement dans l'événement, sans fenêtre.
Reporter :
- `addin/.env` : `ENTRA_TENANT_ID`, `ADDIN_CLIENT_ID`, `API_SCOPE=api://signature.beziers-mediterranee.fr/<ID client>/access_as_user`
- `backend/.env` : `ADDIN_CLIENT_ID`, `ADDIN_API_AUDIENCES=<ID client>,api://signature.beziers-mediterranee.fr/<ID client>`
## 2. Inscription « CABM Signatures - Back-office »
1. **Nom** : `CABM Signatures - Back-office` — mono-tenant.
2. **Authentification** > plateforme **Web** (surtout pas « Application monopage » : sinon erreur
AADSTS9002325, car Laravel échange le code côté serveur), URI de redirection :
- `https://signature.beziers-mediterranee.fr/auth/callback`
- (dev) `http://localhost:8000/auth/callback`
3. **Certificats et secrets** > Nouveau secret client, durée 24 mois → `GRAPH_CLIENT_SECRET`.
Créer un rappel GLPI deux mois avant l'expiration.
4. **Autorisations de l'API** (Microsoft Graph) :
- **Application** : `User.Read.All`, `GroupMember.Read.All`
- **Déléguées** : `openid`, `profile`, `email`, `User.Read`
- **Accorder le consentement administrateur**.
5. Entra > Applications d'entreprise > CABM Signatures - Back-office :
- « Affectation requise » : **Non** (tous les agents accèdent au portail `/me`) ;
- Accès conditionnel : inclure cette application dans une stratégie **MFA**.
Reporter dans `backend/.env` : `GRAPH_CLIENT_ID`, `GRAPH_CLIENT_SECRET`, `ENTRA_TENANT_ID`.
## 3. Groupes AD (synchronisés par Entra Connect)
Seuls les groupes dont le nom commence par `signature_` sont lus par l'application.
Vérifier qu'ils sont dans une OU incluse dans le périmètre Entra Connect.
| Groupe | Usage |
| --- | --- |
| `signature_mail_agents`, `signature_mail_directeurs`, … | Affectation des templates (priorité réglée dans le back-office) |
| `signature_role_superadmin` | Rôle super-admin (paramètres, rôles, champs modifiables) |
| `signature_role_admin` | Rôle administrateur (templates, affectations, publication) |
| `signature_role_editeur` | Rôle éditeur (service communication : templates et campagnes sans publication) |
| `signature_pilote` (optionnel) | Ciblage du déploiement de l'add-in pendant les vagues |
Les groupes imbriqués sont pris en compte (appartenance transitive).
Le rôle est recalculé à chaque connexion au back-office.
## 4. Déploiement de l'add-in (Integrated Apps)
Un add-in à activation automatique **ne se déclenche que s'il est déployé par un administrateur**.
1. Centre d'administration Microsoft 365 > Paramètres > **Applications intégrées** > Charger des applications personnalisées.
2. Type : **Complément Office**, fichier `manifest.xml` produit par `npm run build` (dossier `addin/dist`).
3. Affecter : groupe `signature_pilote` pour le lot 1, puis élargir vague par vague.
4. Propagation : jusqu'à 24 h, parfois plus. Pour la vague concernée, retirer SignITC dans la même opération.
Pour un test individuel avant déploiement : Outlook web > Paramètres > Compléments > Mes compléments >
Ajouter un complément personnalisé > À partir d'un fichier.