84 lines
4.9 KiB
Markdown
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.
|