Vous avez hérité d’une liste de GUID dans Azure AD (désormais Microsoft Entra) et devez révéler, pour chacun, le nom réel de l’application ? Ce guide exhaustif explore toutes les approches – interface graphique, PowerShell, Microsoft Graph et bonnes pratiques de gouvernance – pour mapper rapidement chaque App ID à son application.
Vue d’ensemble de la question
Dans Azure AD, un App ID (ou Application ID) identifie de façon unique une application enregistrée. Le même GUID est ensuite cloné en autant de service principals qu’il existe de tenants où l’application est utilisée. Lorsqu’un administrateur tombe sur un App ID isolé – dans un journal d’audit, un script, une alerte de sécurité ou une requête d’utilisateur – il doit avant tout savoir : « Quel est le vrai nom de l’application ? ». Les sections suivantes détaillent les solutions possibles, classées du plus simple au plus automatisable.
Méthodes manuelles et semi‑automatiques
Méthode | Détails | Quand l’utiliser |
---|---|---|
Catalogue public Microsoft Learn | Le référentiel intitulé Azure App IDs Security & Compliance – All Apps regroupe des milliers d’App ID publics : applications Microsoft 365, ISV certifiés, solutions SaaS tierces, etc. Une recherche ou un filtre sur le GUID retourne immédiatement : Nom commercial de l’application ; Éditeur ; Engagements de conformité (RGPD, SOC 2, ISO 27001…) ; Lien direct vers la documentation de sécurité Microsoft Learn. | Vérification instantanée des applications grand public ou certifiées, sans toucher au tenant. |
Centre d’administration Entra → Applications d’entreprise | Rôle minimal : Cloud Application Administrator. Ouvrir Identité → Applications d’entreprise. Activer, si besoin, Inclure les applications Microsoft et Afficher les applications masquées. Coller le GUID dans la barre de recherche. Le volet latéral affiche : nom d’affichage, éditeur, type (single‑tenant / multi‑tenant), statut d’octroi des consentements, etc. Avantage : on obtient en un clic les autorisations accordées (API Graph, Exchange Online, SharePoint, etc.) et les utilisateurs qui s’y connectent. | Inspection ponctuelle d’une application déjà déployée ou soupçonnée de poser problème. |
Centre d’administration Entra → Inscriptions d’applications | Menu Applications → Inscriptions d’applications (Toutes). Coller le GUID dans la zone de recherche App ID / Nom. Le volet affiche Nom, ID d’objet, plateformes de redirection, certificats et secrets, journal d’activité, etc. S’applique aux applications dont l’organisation est propriétaire ; c’est ici que l’on gère les certificats expirants. | Gestion complète du cycle de vie des applications internes. |
PowerShell Azure AD ou Microsoft Graph | # Module AzureAD : Connect-AzureAD Get-AzureADApplication -Filter "AppId eq 'GUID'" Get-AzureADServicePrincipal -Filter "AppId eq 'GUID'" # Module Microsoft Graph PowerShell : Connect-MgGraph -Scopes "Application.Read.All","Directory.Read.All" Get-MgApplication -Filter "appId eq 'GUID'" Get-MgServicePrincipal -Filter "appId eq 'GUID'" # Exporter la liste complète : Get-AzureADServicePrincipal | Select DisplayName, AppId | Export-Csv Apps.csv -NoTypeInformation Le résultat inclut : DisplayName, AppId, ObjectId, propriétaires et date de création. | Automatisation, reporting massif, intégration CI/CD (GitHub Actions, Azure DevOps…). |
API REST Microsoft Graph | GET https://graph.microsoft.com/v1.0/applications?$filter=appId eq 'GUID' GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=appId eq 'GUID' Idéal dans une stack non‑PowerShell : Python (requests), JavaScript (fetch/Axios), Go (msgraph-sdk-go), etc. | Intégration dans des portails maison, scanners de sécurité ou outils d’inventaire multi‑cloud. |
Recherche web directe | Certains GUID très connus (Teams, Exchange Online, SharePoint, Intune) sont référencés dans des blogs, GitHub Gists ou forums communautaires. Copier‑coller le GUID dans votre moteur de recherche préféré permet parfois une identification immédiate. | Dépannage express lorsqu’une alerte XDR révèle un GUID inconnu et que l’accès au portail n’est pas possible. |
Comprendre la dualité Application ↔ Service Principal
Dans Azure AD, un enregistrement d’application (Application Object) est le modèle global ; il porte l’App ID. Chaque fois que l’application est autorisée dans un tenant, Azure génère un Service Principal (SP) : c’est cet objet local qui reçoit les rôles, permissions et affectations d’utilisateurs. Dès lors :
- Le même App ID peut apparaître plusieurs fois dans un tenant si l’on compte à la fois l’objet Application et les SP délégués.
- Un SP peut être renommé localement sans impacter le nom global : pensez à comparer également l’ID d’objet (
ObjectId
) pour éviter les confusions. - La suppression d’un SP ne supprime pas l’Application d’origine ; la ré‑autorisation de l’appli la recréera.
Scripts PowerShell avancés : audit massif en moins de 5 minutes
# Exemple : inventorier tous les SP, grouper par AppId, compter les occcurences :
$report = Get-MgServicePrincipal -All |
Group-Object AppId |
Sort-Object Count -Descending |
Select-Object @{N='AppId';E={$_.Name}},
@{N='DisplayName(s)';E={[string]::Join(' / ',
($_.Group | Select -Expand DisplayName | Sort -Unique))}},
Count
\$report | Export-Csv "SP-Inventory.csv" -NoTypeInformation
Pourquoi c’est utile ?
- Détection des clones : si
Count > 1
, l’application est peut‑être en double (ex. environnement de test vs. prod). - Nettoyage : repérez les SP orphelins (créés par un développeur parti) avant d’activer Enforce MFA.
- Préparation de la migration vers Entra ID Governance : classez les applications par criticité avant d’assigner des packages d’accès.
Au‑delà de l’identification : bonnes pratiques de gouvernance
1. Étiquetez vos applications
Utilisez les champs Notes et Tags personnalisés (preview) pour indiquer le propriétaire, le SLA et la classification des données. Vous éviterez les “applications orphelines” qui freinent la revue de sécurité annuelle.
2. Mettez en place un processus « Joiner‑Mover‑Leaver »
Lorsqu’un employé change de rôle ou quitte l’entreprise, assurez‑vous que les affectations d’applications (User Assignments) sont révoquées. Les API Graph permettent d’automatiser la vérification hebdomadaire.
3. Activez les Consent Policies
Restreignez les consentements utilisateurs aux applications vérifiées ; le catalogue public Microsoft Learn mentionné plus haut facilite la liste blanche initiale.
4. Surveillez les secrets et certificats
Un simple App ID peut cacher un secret expiré, déclenchant une panne nocturne. Programmez un runbook Logic Apps ou Azure Automation qui alerte 30 jours avant la date d’expiration (KeyCredentials.expiresOn
).
5. Évaluez la conformité et la localisation des données
Le même App ID peut pointer vers des clusters de données géographiquement distincts. Vérifiez les engagements de résidence des données (France, UE, US, etc.) avant d’approuver l’application pour tous les pays.
Dépannage & questions fréquentes (FAQ)
- « Aucune correspondance trouvée » dans le portail : le SP a peut‑être été supprimé. Activez Afficher les applications masquées et élargissez la recherche à Toutes les applications.
- « L’App ID existe, mais les commandes PowerShell retournent null » : la session PowerShell est connectée sur le mauvais tenant. Exécutez
Connect-MgGraph -TenantId <ID>
. - « Je vois plusieurs App ID identiques » : comparez ObjectId et ResourceId pour savoir s’il s’agit de SP clonés ou de copies d’environnement (DEV/TEST/PRD).
- « Erreur 401/403 en appelant l’API Graph » : l’application qui appelle l’API n’a pas le rôle Application.Read.All ou Directory.Read.All. Consentement administrateur obligatoire.
- « GUID malformé » : un App ID est toujours un UUID v4 de 36 caractères ; vérifiez les tirets et la casse.
Glossaire express
- App ID : identifiant public de l’application (
appId
dans Graph). - Application Object : modèle global, unique dans Azure AD.
- Service Principal : instance locale de l’application, unique par tenant.
- Object ID : identifiant interne de l’objet (application ou SP).
- Consentement : autorisation utilisateur ou admin pour qu’une application accède à une API.
- Scope : permission OAuth2 octroyée à l’application (ex.
User.Read
). - Role : permission applicative niveau API (ex.
Mail.ReadBasic
).
Conclusion
Identifier le nom d’une application à partir de son App ID n’est plus un casse‑tête : entre le portail Entra, PowerShell, Microsoft Graph et le catalogue public, vous disposez de leviers pour chaque scénario — audit ponctuel, automatisation DevSecOps ou gouvernance à grande échelle. En adoptant les bonnes pratiques détaillées ici (étiquetage, suivi des certificats, politiques de consentement), vous transformez une simple recherche de GUID en un pilier de votre posture de sécurité Azure.