SYAGA Audit
Diagnostic Microsoft 365 : au moindre privilège

On lit vos réglages.
Jamais vos données.

Aucun mot de passe partagé. On lit votre configuration avec votre propre accès, jamais un mail ni un fichier. Vous coupez l'accès quand vous voulez.

Lecture seule, puis tout est effacé

Aucune écriture n'est possible : notre application ne détient aucune permission d'écriture, Microsoft la refuserait. Le scan tourne dans votre navigateur ; notre serveur ne voit que des jetons, jamais vos données en clair. Vos résultats vivent en mémoire vive : ils partent quand vous cochez la décharge, après avoir récupéré vos fichiers, et au plus tard 2 heures après la fin du scan (24 heures pour ce que vous nous envoyez vous-même). Seule reste votre facturation, que la loi nous oblige à conserver 10 ans.

Comment on le prouve
Avec VOTRE accès. Vous vous connectez avec Microsoft (aucun mot de passe partagé). Le jeton est transitoire : le jeton de session est chiffré au repos et ne vit pas plus de 58 minutes, le jeton technique du scan expire au plus tard 3 heures après son émission. Et vous pouvez couper l'accès quand vous voulez, depuis Microsoft, sans nous le demander. Source Microsoft : OAuth ↗
Vous vérifiez, vous révoquez. Révoquer = 1 clic dans Entra. Tout est tracé dans vos propres journaux Microsoft : vous constatez qu'on n'a fait que lire. Source Microsoft : journaux d'audit ↗

Le détail exact : ce que Microsoft va vous demander

Votre parcours ouvre 5 écrans de consentement Microsoft successifs (vérification de votre journal d'audit, puis scan, puis approfondissements Exchange, Teams et Power Platform). Cette page détaille celui du scan. Microsoft va y lister 45 autorisations, une par une. C'est long, et c'est normal : Microsoft découpe ses lectures très finement. Voici la même liste, regroupée par domaine. Comparez ligne par ligne : si une autorisation apparaît sur l'écran Microsoft sans figurer ici, ne consentez pas. Les 45 sont en lecture (Read) : aucune n'autorise à écrire, modifier ou supprimer quoi que ce soit.

Connexion et annuaire3
  • User.Read : Lit votre propre profil, pour savoir qui lance l'audit. Rien d'autre.
  • Directory.Read.All : Lit l'annuaire (comptes, groupes, applications inscrites, domaines). C'est le socle du diagnostic : qui existe, qui est administrateur.
  • AdministrativeUnit.Read.All : Lit les unités administratives, c'est-à-dire le découpage de votre annuaire par site, service ou filiale.
Politiques et consentements5
  • Policy.Read.All : Lit vos politiques d'accès conditionnel, de mots de passe et de méthodes d'authentification.
  • Policy.Read.PermissionGrant : Lit la règle qui décide si un utilisateur peut, seul, autoriser une application tierce.
  • ConsentRequest.Read.All : Lit les demandes d'applications en attente de votre validation.
  • AuthenticationContext.Read.All : Lit vos contextes d'authentification, les paliers d'exigence rattachés aux actions sensibles.
  • Agreement.Read.All : Lit les conditions d'utilisation que vous présentez à vos utilisateurs à la connexion.
Journaux et rapports3
  • AuditLog.Read.All : Lit le journal d'audit et l'historique de connexions. C'est ce qui révèle les tentatives d'intrusion, et c'est aussi ce qui vous permet de vérifier après coup tout ce que nous avons lu.
  • Reports.Read.All : Lit les rapports d'usage (MFA réellement utilisée, licences dormantes).
  • ReportSettings.Read.All : Lit un seul réglage, celui qui dit si vos rapports sont anonymisés.
Rôles et accès à privilège5
  • RoleManagement.Read.Directory : Lit les attributions de rôles d'annuaire, donc qui est administrateur aujourd'hui.
  • RoleManagement.Read.All : Lit les rôles éligibles PIM, donc qui peut devenir administrateur à la demande.
  • RoleManagementAlert.Read.Directory : Lit les alertes PIM (trop d'administrateurs permanents, comptes à privilège sans MFA).
  • PrivilegedAccess.Read.AzureADGroup : Lit les élévations de privilège obtenues via l'appartenance à un groupe. Un angle mort classique.
  • DelegatedAdminRelationship.Read.All : Lit les relations d'administration déléguée, donc quels prestataires détiennent un accès à privilège sur votre tenant.
Gouvernance des accès3
  • AccessReview.Read.All : Lit vos revues d'accès, les campagnes de revérification périodique des droits.
  • EntitlementManagement.Read.All : Lit vos packages d'accès et leurs approbateurs.
  • LifecycleWorkflows-Workflow.ReadBasic.All : Lit les automatismes d'arrivée et de départ des collaborateurs.
Protection des identités3
  • IdentityRiskEvent.Read.All : Lit les détections de risque de Microsoft (connexion depuis une adresse anonyme, identifiants retrouvés dans une fuite).
  • IdentityRiskyUser.Read.All : Lit la liste des comptes que Microsoft signale à risque.
  • IdentityRiskyServicePrincipal.Read.All : La même chose pour les identités d'applications, pas de personnes.
Sécurité et Defender4
  • SecurityEvents.Read.All : Lit votre score de sécurité Microsoft et le détail de ses contrôles.
  • SecurityAlert.Read.All : Lit les alertes de sécurité.
  • SecurityIncident.Read.All : Lit les incidents, c'est-à-dire les alertes que Microsoft a regroupées.
  • AttackSimulation.Read.All : Lit vos campagnes de simulation d'hameçonnage, si vous en menez.
Appareils et Intune7
  • DeviceManagementManagedDevices.Read.All : Lit l'inventaire des appareils gérés (chiffrement, conformité, version du système).
  • DeviceManagementConfiguration.Read.All : Lit les profils de configuration et de conformité appliqués.
  • DeviceManagementServiceConfig.Read.All : Lit les réglages généraux d'Intune (inscription, Autopilot).
  • DeviceManagementApps.Read.All : Lit les applications distribuées et leurs politiques de protection.
  • DeviceManagementScripts.Read.All : Lit les scripts poussés sur vos postes. Rarement relus, souvent porteurs de secrets.
  • DeviceManagementRBAC.Read.All : Lit qui détient quels droits dans Intune.
  • DeviceLocalCredential.ReadBasic.All métadonnée seule : Concerne LAPS, la sauvegarde du mot de passe administrateur local. Nous appelons /directory/deviceLocalCredentials sans demander le champ credentials : nous voyons qu'une sauvegarde existe et de quand elle date, jamais le mot de passe.Ce que Microsoft écrit : To access the actual passwords on the device, done by including $select=credentials as part of the query parameters, the app must be assigned the DeviceLocalCredential.Read.All permission and DeviceLocalCredential.ReadBasic.All is insufficient. source Microsoft
SharePoint et OneDrive2
  • SharePointTenantSettings.Read.All : Lit les réglages de partage du tenant (partage externe, liens anonymes, expiration).
  • Sites.Read.All : Sert à inventorier vos sites (/sites/getAllSites). Soyons précis, car c'est la plus large de la liste : telle que Microsoft la définit, elle autoriserait aussi la lecture de documents. Notre code ne fait que l'inventaire, et votre journal d'audit le montre requête par requête. C'est exactement pourquoi nous demandons AuditLog.Read.All : pour que vous puissiez le vérifier vous-même, sans nous croire sur parole.
Teams2
  • TeamworkAppSettings.Read.All : Lit les réglages d'applications Teams à l'échelle du tenant.
  • AppCatalog.Read.All : Lit le catalogue des applications Teams autorisées chez vous.
Conformité et droits des personnes2
  • RecordsManagement.Read.All : Lit vos étiquettes et politiques de rétention.
  • SubjectRightsRequest.Read.All : Lit vos demandes de droits des personnes au sens du RGPD (accès, effacement) : leur existence et leur suivi, pas leur contenu.
Sauvegarde et chiffrement2
  • BackupRestore-Configuration.Read.All : Lit vos politiques de sauvegarde Microsoft 365, s'il en existe.
  • BitlockerKey.ReadBasic.All métadonnée seule : Indique si une clé de récupération BitLocker existe pour un appareil et quand elle a été sauvegardée. Nous appelons /informationProtection/bitlocker/recoveryKeys sans $select=key : la clé elle-même ne nous est jamais renvoyée.Ce que Microsoft écrit : By default, this operation doesn't return the key property that represents the actual recovery key. To include the key property in the response, use the $select OData query parameter. Including the $select query parameter triggers a Microsoft Entra audit of the operation and generates an audit log. source Microsoft
Réseau et état du service3
  • NetworkAccess.Read.All : Lit votre configuration d'accès réseau (Global Secure Access), si vous l'utilisez.
  • ServiceHealth.Read.All : Lit l'état de santé de vos services Microsoft.
  • ServiceMessage.Read.All : Lit les messages du centre de messages, les changements que Microsoft vous annonce.
Formulaires1
  • OrgSettings-Forms.Read.All : Concerne Microsoft Forms : les réglages d'organisation du service (qui peut créer des formulaires, partage externe, collecte de réponses hors de l'organisation). Nous lisons ces réglages, jamais le contenu d'un formulaire ni une réponse.
Deux lignes se ressemblent, ce n'est pas une erreur. RoleManagement.Read.Directory est un sous-ensemble de RoleManagement.Read.All : nous gardons les deux parce que Microsoft documente l'une pour certaines lectures de rôles et l'autre pour les rôles éligibles PIM.
Ce qui n'est PAS demandé. Aucune autorisation de courrier (Mail.*), de conversation (Chat.*), ni aucune autorisation d'écriture (ReadWrite). Et pas d'offline_access : nous ne conservons aucun accès après le diagnostic. Votre jeton vit environ une heure, en mémoire, puis disparaît.
Le nom et la définition officielle de chacune de ces autorisations sont publics, chez Microsoft, pas chez nous : référence des autorisations Microsoft Graph
Comment vérifier, chez Microsoft, que c'est bien tout
Sur l'écran Microsoft, avant de dire oui. La liste ci-dessus est celle que Microsoft va vous afficher sur l'écran du scan. Comparez. Une ligne de plus sur l'écran que dans cette page, et vous refusez : c'est tout le sens de cette page. Les 5 écrans du parcours se lisent de la même façon : ce que Microsoft affiche fait foi, pas ce que nous écrivons.
Après consentement, dans votre propre annuaire. Entra, puis Applications d'entreprise, puis SYAGA Audit, puis Autorisations. Vous y lisez la liste réelle de ce qui a été accordé, écrite par Microsoft et non par nous. Le même écran permet de révoquer. entra.microsoft.com
Côté utilisateur aussi. Vos applications autorisées et leur révocation en un clic : myapps.microsoft.com
Dans votre rapport. Les autorisations affichées dans votre rapport sont relues chez Microsoft (oauth2PermissionGrants), pas recopiées de nos déclarations. Si les deux divergeaient, cela se verrait.
1
Accès minimal d'abord. On vérifie seulement que votre journal d'audit est activé. Aucune permission de l'audit complet à cette étape.
2
Audit complet ensuite. Uniquement si le journal est actif, on vous propose alors la lecture pour l'audit complet (annuaire, Exchange, Teams, Purview).
Affiner mon profil (taille, secteur), facultatif

Faisons d'abord connaissance (facultatif, une minute)

Avant de lancer le diagnostic, dites-nous qui vous êtes. Selon votre taille et votre secteur, vous n'êtes pas soumis aux mêmes obligations (RGPD, NIS 2, DORA) : c'est ce qui rend vos conclusions justes. Nous qualifions, nous ne décrétons jamais. Données publiques INSEE, aucune information sensible ici.

Source : Recherche d'Entreprises, INSEE Sirene, données publiques officielles.

Accès en avant-première : à ce stade, seul un locataire Microsoft 365 invité peut lancer un diagnostic réel. Si le vôtre ne l'est pas encore, la démarche s'arrête avant toute collecte et vous rejoignez la liste d'attente.

Démarrer mon diagnostic gratuit Gratuit : votre score + vos écarts. Le rapport détaillé et la déclaration étayée : 499 € HT, seulement si vous le décidez.

Le rapport est un diagnostic : il dit ce qui est constaté, il ne corrige rien à votre place.

Comment on le prouve