Microsoft Entra ID
Objectif : lire un tenant Microsoft Entra ID (API Microsoft Graph, lecture seule) pour en tirer les appareils, les comptes privilégiés et les chemins d'administration du cloud.
Le connecteur se règle sur Connecteurs → Microsoft Entra ID :
- identité du tenant ;
- application enregistrée ;
- secret client ou certificat ;
- périmètre des appareils ;
- balayage des comptes et groupes.
Le résultat se consulte sur la page Entra ID du menu Sécurité (/entra/).
Méthode d'authentification : on en choisit une seule. Avec « Secret client », seul le champ Secret client est à remplir ; avec « Certificat », ce sont Certificat (PEM public) et Clé privée (PEM). La page n'affiche que les champs de la méthode choisie ; ceux de l'autre méthode peuvent rester vides.
Ce qu'Entra alimente dans InfraRiver
| Où | Quoi |
|---|---|
| Inventaire des serveurs | Les appareils Entra du périmètre choisi (serveurs seulement par défaut), rapprochés des serveurs déjà connus |
Inventaire des comptes (/vue-accounts/) |
Les utilisateurs (type « cloud ») et les service principals (type « service »), source « Microsoft Entra ID » |
| Chemins d'administration | Rôles annuaire, permissions Graph dangereuses, propriétaires, pivot Active Directory → Entra, administrateurs locaux d'appareils, exécution via Intune |
| Fiche d'un serveur | Un encart « Intune » (conformité, chiffrement, dernière synchronisation) quand le serveur est aussi un appareil Intune |
| Page Entra ID | Tout ce qui précède, plus les groupes et les constats (MFA, invités) |
Quels appareils deviennent des serveurs
Le réglage Périmètre des devices de la page du connecteur décide quels appareils Entra entrent dans l'inventaire :
| Périmètre | Appareils retenus |
|---|---|
servers_only (par défaut) |
Les Linux serveur (Ubuntu, Debian, Red Hat, Rocky, SUSE…) et les Windows Server reconnus par leur numéro de build |
managed |
Tout appareil joint à l'annuaire (AzureAd ou ServerAd), quel que soit son système |
all |
Tous les appareils, postes personnels compris |
Graph indique seulement « Windows » pour un Windows Server comme pour un poste : InfraRiver lit donc la version du système (par exemple 10.0.20348.2655) et la compare à la table des builds. Les builds 14393, 17763 et 20348 sont les Windows Server 2016, 2019 et 2022 ; les builds 19041 à 19045, 22000, 22621 et 22631 sont des postes Windows 10 ou 11. La build 26100 est à la fois Windows Server 2025 et Windows 11 24H2 : elle est retenue comme Windows Server 2025 seulement si Intune (famille d'édition « Server ») ou l'ordinateur Active Directory de même identifiant le confirme. Sans confirmation, l'appareil reste hors de l'inventaire, avec la raison indiquée.
Le système et sa version sont enregistrés sur la fiche du serveur et alimentent la fin de support (EOLRIVER).
Rien n'est exclu sans trace. Chaque synchronisation écrit dans le journal : appareils lus · retenus · exclus comme postes · sans OS reconnu. Les mêmes chiffres s'affichent sous le réglage du périmètre, avec le lien voir les appareils exclus : nom, système lu dans Graph, version et raison (« poste de travail », « build 26100 ambiguë »…). « Sans OS reconnu » regroupe les appareils dont le système ne permet pas de dire s'ils sont des serveurs (aucun système renseigné, build Windows inconnue, distribution Linux inconnue).
Complément Intune. Quand le profil Intune est accordé, InfraRiver lit aussi la version du système, l'édition, le modèle, le constructeur, le numéro de série, la mémoire et le disque de l'appareil. Pour un serveur venu d'Entra, ces valeurs complètent la fiche : version du système si Graph ne la donne pas, mémoire vive si elle est vide, le reste (modèle, constructeur, numéro de série) étant conservé avec la source « Microsoft Entra ID ». Si Graph refuse l'un de ces champs, InfraRiver relit la liste de base et Intune reste utilisable. Si Graph refuse cette lecture étendue, InfraRiver retombe sur la liste de base et l'indique : un avertissement s'affiche sur la page du connecteur et dans les angles morts de la page Entra ID (« Intune enrichi à moitié »). L'édition de Windows (skuFamily) n'existe que dans l'API bêta de Graph : elle est lue à part, et son absence ne laisse que le numéro de build pour distinguer un Windows Server 2025 d'un poste.
Groupes et appartenances
Les groupes ne figurent pas dans l'inventaire des comptes : ils se consultent sur l'onglet « Identités » de la page Entra ID.
Le connecteur lit les appartenances directes aux groupes et la dernière connexion de chaque utilisateur. La lecture des appartenances demande un appel par groupe : sur un tenant de plusieurs milliers de groupes, la synchronisation est plus longue.
Les groupes imbriqués (un groupe qui en contient un autre) sont suivis niveau par niveau :
- la fiche d'un groupe donne ses membres directs et le total en suivant les groupes imbriqués, avec le chemin (« via … ») ;
- la fiche d'un utilisateur donne tous les groupes dont il fait partie, directement ou non ;
- un groupe de plus de 5 000 membres est conservé tronqué.
Rapprochement avec Active Directory, Keycloak et Zabbix
Un compte synchronisé depuis Active Directory est relié à son compte AD par le SID on-premises : sur la fiche de l'un, l'autre apparaît en « identité confirmée (SID) ».
Un compte cloud seul n'a pas de SID. Il est relié à un compte AD par un UPN identique (badge « même UPN »), à défaut seulement « par nom ».
Un compte Entra est aussi retrouvé dans Keycloak et Zabbix quand l'adresse e-mail (ou le nom de connexion) est identique à son UPN ou à son adresse principale — jamais sur une ressemblance. La fiche d'un utilisateur Entra montre ces correspondances.
Pour permettre ce rapprochement, Keycloak conserve maintenant l'adresse e-mail de ses utilisateurs, et Zabbix celle de leur premier moyen d'envoi e-mail actif (si le compte d'API peut le lire).
Objets supprimés ou disparus
Un objet supprimé du tenant disparaît de ces listes à la synchronisation suivante.
Un chemin d'administration ou un constat de compte (MFA, invité) que le connecteur ne revoit plus depuis plus de deux intervalles de synchronisation est retiré lui aussi : rôle retiré, permission révoquée, application supprimée. Les cartes et le bandeau de synchronisation comptent donc les mêmes chemins.
Décocher le balayage des utilisateurs, des groupes ou des service principals retire de même ce type d'objets.
Ce que le connecteur ouvre : Entra ID et Microsoft 365
Le connecteur Entra ID porte toute la partie Microsoft d'InfraRiver, avec la même application enregistrée, la même synchronisation et le même journal :
| Page | Question à laquelle elle répond | Droit |
|---|---|---|
Entra ID (/entra/) |
Qui peut administrer quoi, et quels comptes, groupes, appareils ou applications sont à risque ? | Connecteurs — lecture ; accepter un risque : Connecteurs — gestion |
Microsoft 365 (/m365/) |
Le tenant est-il configuré selon un référentiel (Secure Score, EIDSCA, SCuBA) ? Voir le guide. | Microsoft 365 — voir la conformité (administrateur, auditeur) ; accepter un risque : administrateur |
Il faut que le connecteur soit activé pour voir ces pages : désactivé (Administration → Connecteurs), elles se ferment (erreur 404) et leurs liens disparaissent du menu et de la recherche ; les données déjà collectées restent en base et reviennent à la réactivation.
La page de configuration du connecteur reprend ce récapitulatif en bas de page :
- pages disponibles et droits ;
- différence entre Entra ID et Microsoft 365 ;
- permissions Graph à accorder par profil du script (
securite,intune,m365) et effet de leur absence ; - licences qui changent ce qui est lisible ;
- ce que le connecteur ne fait pas.
Créer l'application et accorder les permissions
La page de configuration propose la carte Créer l'application et accorder les permissions (Azure Cloud Shell). Elle évite de sélectionner les permissions Graph une par une dans le portail : le script crée l'App Registration (ou complète l'existante), déclare toutes les permissions en lecture seule des profils cochés et accorde le consentement administrateur.
- Cochez les profils : Sécurité (obligatoire), Intune, Microsoft 365 / Secure Score (cochés par défaut) et Licences (facultatif). Oublier Intune laisse vides les onglets Intune.
- Dans le portail Azure, ouvrez Cloud Shell, choisissez Bash, avec un compte Global Administrator ou Privileged Role Administrator.
- Cliquez Copier la commande et collez-la dans Cloud Shell (elle contient le script en entier), ou Télécharger le script puis lancez
bash new-infrariver-entra-app.sh --profiles securite,intune,m365. - Reportez le
tenant_idet leclient_idaffichés en fin de script dans les paramètres de connexion, puis ajoutez un secret ou un certificat à l'application dans le portail.
Le script se relance sans risque : s'il a été lancé sans Intune, relancez-le avec Intune pour compléter les permissions. --dry-run affiche la liste sans rien modifier, et le script refuse toute permission qui ne serait pas en lecture seule.
La page Entra ID
En tête : l'état du connecteur, la dernière synchronisation et dix cartes. Les cartes cliquables ouvrent le tableau déjà filtré.
| Carte | Ce qu'elle compte |
|---|---|
| Identités du tenant | Utilisateurs, groupes et service principals lus (ouvre l'onglet « Identités ») |
| Constats à traiter | Constats de l'onglet Analyses non acceptés (seuil de dormance de 90 jours) |
| Appareils Intune | Appareils enrôlés dans Intune (ouvre l'onglet « Appareils Intune ») |
| Appareils Entra | Appareils rapprochés dans l'inventaire des serveurs (ouvre l'inventaire filtré sur la source Entra) |
| Comptes privilégiés (ouvre les identités privilégiées) | Comptes, groupes ou applications porteurs d'un rôle annuaire sensible, d'une permission applicative dangereuse ou propriétaires d'un objet privilégié |
| Chemins d'administration | Lignes « qui peut faire quoi sur quoi » déduites de ces droits |
| Global Administrators | Comptes ayant le rôle Global Administrator |
| Permissions Graph dangereuses | Permissions applicatives de lecture-écriture sensibles accordées à une application |
| Sans MFA enregistré | Comptes sans aucune méthode d'authentification multifacteur |
| Politiques d'accès conditionnel | Politiques lues dans le tenant |
La page compte six onglets, au format des autres inventaires (filtre par colonne, tri, pagination). Un clic sur un onglet ne change que le tableau : la page garde sa position, et l'adresse (?view=…) peut être partagée ou rechargée. Le nombre affiché sur l'onglet est celui des lignes qu'il contient :
- Chemins d'administration ;
- Identités ;
- Analyses ;
- Appareils Intune ;
- Déploiements Intune (déploiements et politiques) ;
- Comptes et signaux.
Onglet Chemins d'administration
Chaque ligne donne : qui, cible, capacité, type, mécanisme, confiance, signaux (par exemple secret récent) et date de dernière observation.
Les types possibles :
- rôle annuaire ;
- permission Graph ;
- propriétaire d'objet ;
- pivot Active Directory → Entra ;
- domaine fédéré ;
- administrateur local d'appareil ;
- exécution via Intune.
Note
Toutes les lignes sont « déclarées » : le connecteur lit des droits, il n'observe pas leur usage.
Onglet Identités
Tous les objets lus, avec filtres par colonne. Colonnes :
- nom ;
- type (utilisateur, invité, groupe, service principal) ;
- actif ou non ;
- détail (groupe de sécurité, attribuable à un rôle, synchronisé depuis l'AD, nombre de membres) ;
- date de création ;
- dernier changement de mot de passe ;
- dernière connexion ;
- privilège et sa raison.
Un clic sur le nom ouvre la fiche de l'identité : ses informations, ses groupes, les groupes dont il est propriétaire, ses chemins d'administration et ses constats. Pour un groupe, la fiche ajoute ses propriétaires, sa règle d'appartenance s'il est dynamique et ses membres.
Onglet Analyses
Les constats de sécurité calculés sur le tenant, avec filtres par gravité, catégorie, constat et compte. Ils sont recalculés à chaque synchronisation : un constat disparaît quand la situation est corrigée.
Le seuil « Dormant après N jours » se règle dans l'en-tête de la colonne Détail (90 par défaut).
Accepter un risque. Le bouton Accepter le risque (droit de gérer les connecteurs) ouvre un formulaire qui demande :
- une justification (5 caractères au moins) ;
- une durée : 30 jours, 90 jours par défaut, 6 mois ou 1 an — une date de fin est obligatoire ;
- un motif : « Risque accepté » ou « Objet de test ».
L'acceptation est inscrite au journal d'audit. Le constat quitte la liste « À traiter » et se retrouve sous « Acceptés » avec qui l'a accepté, quand, jusqu'à quand et pourquoi. À l'échéance il revient dans « À traiter » ; on peut aussi le rouvrir à tout moment.
Constats calculés :
| Catégorie | Constat | Gravité |
|---|---|---|
| Authentification | Compte privilégié sans MFA enregistré | Critique pour Global Administrator, Privileged Role Administrator ou Privileged Authentication Administrator, élevée sinon |
| Authentification | Compte privilégié exclu d'une politique qui impose le MFA | Élevée |
| Authentification | Compte privilégié avec MFA faible seulement (SMS, appel vocal) | Moyenne |
| Privilèges | Peut devenir Global Administrator sans l'être : Privileged Role Administrator, Privileged Authentication Administrator, ou une application avec RoleManagement.ReadWrite.Directory, AppRoleAssignment.ReadWrite.All ou Application.ReadWrite.All |
Critique ou élevée selon le cas |
| Privilèges | Invité porteur d'un rôle privilégié | Élevée |
| Privilèges | Compte désactivé mais toujours privilégié | Moyenne |
| Comptes dormants | Compte privilégié dormant | Élevée |
| Comptes dormants | Invité dormant | Moyenne |
| Comptes dormants | Compte actif dormant | Faible |
| Applications | Service principal privilégié avec un secret expiré | Moyenne |
| Applications | Service principal privilégié avec un secret de très longue durée | Faible |
| Groupes | Groupes imbriqués en boucle | Moyenne |
| Groupes | Groupe privilégié sans aucun membre (attribution sans effet) | Faible |
| Groupes | Groupe privilégié à plus de trois niveaux d'imbrication | Faible |
| Accès conditionnel | Aucune politique d'accès conditionnel | Élevée |
| Accès conditionnel | Aucune politique appliquée n'impose le MFA à tous les utilisateurs | Élevée |
| Accès conditionnel | Aucune politique appliquée ne bloque l'authentification héritée | Moyenne |
| Accès conditionnel | Des politiques existent mais aucune n'est appliquée (désactivées ou en simple rapport) | Moyenne |
| Intune | Script, remédiation ou application poussé à tout le parc (élevée pour un script qui s'exécute en SYSTEM, moyenne sinon) | Élevée ou moyenne |
| Intune | Appareil d'un administrateur non conforme, non chiffré, débridé ou sans synchronisation récente | Élevée |
| Intune | Aucune politique d'approbation multi-administrateur (élevée si des déploiements ou des droits d'exécution Intune existent) | Moyenne ou élevée |
| Intune | Aucune politique de conformité | Élevée |
| Intune | Plateforme (Windows, iOS, macOS, Android) dont des appareils sont enrôlés mais sans politique de conformité ayant un destinataire | Élevée |
| Intune | Politique de conformité sans destinataire | Moyenne |
| Intune | Réglage « marquer non conformes les appareils sans politique » désactivé (un poste sans politique passe pour sain) | Moyenne |
| Intune | Délai de non-connexion à 0 jour (un appareil qui ne se connecte plus reste conforme) | Faible |
| Intune | Appareils débridés | Élevée |
| Intune | Appareils non conformes (élevée à partir de 20 % du parc) | Moyenne ou élevée |
| Intune | Appareils non chiffrés | Moyenne |
| Intune | Appareils dont l'utilisateur principal a été supprimé ou désactivé | Moyenne |
| Intune | Appareils sans synchronisation depuis 30 jours | Faible |
| Groupes | Groupe sensible (privilégié, attribuable à un rôle ou cible d'un déploiement Intune) sans propriétaire | Moyenne |
| Groupes | Groupe sensible dont un propriétaire est invité, désactivé ou inconnu | Moyenne |
| Groupes | Groupe sensible à appartenance dynamique (quiconque peut modifier les attributs visés par la règle y entre) | Moyenne |
| Autres sources | Compte désactivé dans Entra mais toujours actif dans Keycloak (élevée si privilégié) ou présent dans Zabbix | Moyenne ou élevée |
| Autres sources | Compte Keycloak ou Zabbix actif, avec une adresse du domaine de l'entreprise, sans compte Entra | Moyenne |
| Synchronisation AD | Compte privilégié synchronisé depuis l'AD (qui contrôle le compte dans l'AD contrôle le rôle dans le cloud) | Moyenne |
| Synchronisation AD | Compte désactivé dans l'AD mais actif dans Entra (privilégié : élevée) | Moyenne |
| Synchronisation AD | Compte synchronisé dont le SID est introuvable dans l'AD collecté | Faible |
Conditions d'évaluation
- Les constats Intune regroupent les appareils par constat (« 12 appareils sur 340 », avec un lien vers la liste filtrée) ; seuls les appareils d'administrateurs et les déploiements sont listés un par un.
- Les constats Intune ne sont évalués que si Intune a pu être lu (permissions
DeviceManagement*.Read.All). - Les constats d'accès conditionnel ne sont évalués que si la lecture des politiques a réussi (permission
Policy.Read.All) : une liste vide n'est un constat que si elle a bien été lue. - Les croisements avec l'AD n'existent que si le connecteur Active Directory a collecté des comptes.
Onglet Appareils Intune
Les appareils enrôlés. Le nom est un lien vers la fiche du serveur quand l'appareil est aussi un serveur de l'inventaire : même appareil Entra, sinon même nom unique.
Colonnes :
- nom ;
- système ;
- propriété (entreprise / personnel) ;
- utilisateur principal, avec la mention « privilégié » quand c'est un administrateur ;
- conformité ;
- chiffrement ;
- dernière synchronisation.
Le filtre « À risque » isole les appareils :
- non conformes ;
- non chiffrés ;
- débridés (jailbreak / root) ;
- sans synchronisation depuis 30 jours ;
- dont l'utilisateur principal a été supprimé ou désactivé.
Onglet Déploiements Intune
Les scripts PowerShell, scripts shell macOS, remédiations proactives et applications poussés par Intune. Pour chacun : type, compte d'exécution (SYSTEM ou utilisateur) et destinataires (tout le parc, des groupes, aucune affectation). Jamais le contenu d'un script.
Le filtre « Tout le parc » montre ce qui touche toutes les machines.
La liste contient aussi les politiques de conformité (plateforme, destinataires) et les politiques d'approbation multi-administrateur (plateforme ou type, groupes d'approbateurs).
Onglet Comptes et signaux
Un constat par ligne :
- rôle annuaire actif ou éligible ;
- permission applicative ;
- propriétaire d'objet ;
- aucune méthode MFA enregistrée ;
- MFA faible ;
- exclusion des politiques MFA.
Angles morts affichés
Quand la licence du tenant ne permet pas de tout lire, un bandeau le dit au lieu de laisser croire que tout est couvert :
- PIM (Entra ID P2 ou Governance) : sans lui, un administrateur seulement éligible n'apparaît pas.
- Dernières connexions (Entra ID P1 ou P2 et permission
AuditLog.Read.All) : sans elles, les règles de comptes dormants ne sont pas évaluées. - Politiques d'accès conditionnel (permission
Policy.Read.All) : sans elle, les constats d'accès conditionnel ne sont pas évalués. - Méthodes d'authentification (Entra ID P1 ou P2) : sans elles, « Sans MFA enregistré » et « MFA faible » ne sont pas calculables.
Droits
La page est visible avec le droit de lecture sur les connecteurs ; le bouton « Configuration du connecteur » demande le droit de les gérer.