DIDOES ITEndpoint Engineering
← Tous les articles

Recommandation / Endpoint & Automation

Microsoft Graph : choisir entre certificat et Managed Identity pour l’automatisation

Une automatisation ne devrait pas dépendre du mot de passe d’un administrateur. Lorsque le runtime le permet, je privilégie une Managed Identity ; sinon j’utilise un certificat protégé, avec une rotation testée et des permissions Graph limitées au besoin réel.

01

Position recommandée

L’accès app-only utilise l’identité propre de l’application et des application permissions consenties par un administrateur. Il convient aux traitements sans utilisateur, mais son rayon d’action peut couvrir le tenant.

Une Managed Identity supprime le stockage et la rotation d’un secret dans le code. L’identité system-assigned suit le cycle de vie de la ressource; une user-assigned peut être partagée ou déplacée, au prix d’une gouvernance séparée.

Un certificat reste adapté aux runtimes non compatibles avec Managed Identity. Sa clé privée doit être protégée, sa date d’expiration surveillée et sa rotation réalisée avec une période de chevauchement contrôlée.

L’accès app-only utilise l’identité propre de l’application et des application permissions consenties par un administrateur. Il convient aux traitements sans utilisateur, mais son rayon d’action peut couvrir le tenant.
02

Besoin, cas d’usage et périmètre de la recommandation

Le flux client credentials obtient un token pour le scope https://graph.microsoft.com/.default. Le token contient les rôles applicatifs déjà consentis; demander.default n’ajoute aucune permission par lui-même.

Une system-assigned Managed Identity crée un service principal lié à la ressource Azure. Supprimer la ressource supprime l’identité, ce qui simplifie le cycle de vie mais rend le partage impossible.

Une user-assigned Managed Identity existe indépendamment et peut être attachée à plusieurs ressources. Je l’utilise lorsque plusieurs runtimes doivent partager exactement le même rôle et le même cycle de révocation, jamais seulement par commodité.

REPÈRESRésultats attendus et périmètre

Résultats attendus

  • Lister les appels Graph exacts.
  • Choisir Managed Identity si le runtime la supporte.
  • Créer une identité dédiée par environnement.

Périmètre

  • Microsoft Graph, Managed Identity, Certificate authentication, App-only
  • Endpoint & Automation — Runtime, Identity, Consent, Token
  • matrice endpoints et permissions, runtime identifié, rôle d’approbation séparé
03

Critères de décision et options possibles

Pour Authentification Graph sans secret, je commence par trois résultats concrets: Lister les appels Graph exacts, Choisir Managed Identity si le runtime la supporte et Créer une identité dédiée par environnement. Ils doivent être observables avant de comparer les méthodes disponibles.

L’architecture cible suit Runtime → Identity → Consent → Token. Chaque composant a un propriétaire clair, un état vérifiable et une méthode de retour arrière; cette répartition évite qu’une seconde politique masque le résultat de la première.

Le pilote contrôle notamment Lister les appels Graph exacts, Choisir Managed Identity si le runtime la supporte et Créer une identité dédiée par environnement. La généralisation ne commence qu’après une période stable et après vérification des exceptions propres aux populations visées.

La recommandation devient mesurable lorsqu’elle relie le besoin à une cible vérifiable. Les résultats attendus sont Lister les appels Graph exacts, Choisir Managed Identity si le runtime la supporte et Créer une identité dédiée par environnement. Les responsabilités se répartissent ainsi: Runtime: Azure ou autre héberge le workload. Identity: Managed Identity ou application avec certificat. Consent: App roles Graph minimaux sont accordés. Token: Graph vérifie aud, roles, tenant et expiration. Cette répartition permet d’attribuer chaque écart au bon propriétaire et d’éviter qu’un second profil, une ancienne autorité ou une exception silencieuse ne produise un résultat apparemment correct mais impossible à exploiter dans la durée.

Les écarts « 403 Forbidden », « Connect Identity échoue », « Certificat introuvable » et « Mauvais tenant » servent de tests de décision. Pour chacun, la preuve indiquée dans la matrice doit permettre de choisir entre correction, exception temporaire et retour arrière. Le pilote surveille également les points suivants: ne jamais journaliser le token, séparer identité et compte d’approbation, éviter les permissions tenant-wide inutiles et tester la révocation. La valeur cible, le mode de distribution, les contrôles et la sortie de secours sont ainsi évalués ensemble.

04

Architecture cible et répartition des responsabilités

Le flux client credentials obtient un token pour le scope https://graph.microsoft.com/.default. Le token contient les rôles applicatifs déjà consentis; demander.default n’ajoute aucune permission par lui-même.

Une system-assigned Managed Identity crée un service principal lié à la ressource Azure. Supprimer la ressource supprime l’identité, ce qui simplifie le cycle de vie mais rend le partage impossible.

Une user-assigned Managed Identity existe indépendamment et peut être attachée à plusieurs ressources. Je l’utilise lorsque plusieurs runtimes doivent partager exactement le même rôle et le même cycle de révocation, jamais seulement par commodité.

FLUXChaîne fonctionnelle — Authentification Graph sans secret
  1. RuntimeAzure ou autre héberge le workload.
  2. IdentityManaged Identity ou application avec certificat.
  3. ConsentApp roles Graph minimaux sont accordés.
  4. TokenGraph vérifie aud, roles, tenant et expiration.

Cette chaîne situe les preuves à rapprocher pour Authentification Graph sans secret. Le résultat d’une étape ne permet pas de déduire celui de la suivante.

05

Prérequis, gouvernance et préparation

La préparation de Authentification Graph sans secret couvre matrice endpoints et permissions, runtime identifié, rôle d’approbation séparé, app registration si certificat, coffre ou magasin de certificats. Le propriétaire de chaque composant et la population pilote sont définis avant la création de la configuration.

L’état initial est mesuré avec Lister les appels Graph exacts. Choisir Managed Identity si le runtime la supporte. Créer une identité dédiée par environnement. Accorder les app roles minimaux. Il servira de point de comparaison pendant le pilote et lors d’un éventuel retour arrière.

  • matrice endpoints et permissions
  • runtime identifié
  • rôle d’approbation séparé
  • app registration si certificat
  • coffre ou magasin de certificats
  • logs sans token
  • rotation et révocation testées
REPÈRESStatut des décisions de configuration

Obligatoire avant le pilote

  • matrice endpoints et permissions
  • runtime identifié
  • rôle d’approbation séparé
  • app registration si certificat
  • coffre ou magasin de certificats

Recommandé

  • Lister les appels Graph exacts.
  • Choisir Managed Identity si le runtime la supporte.
  • Créer une identité dédiée par environnement.

Selon le contexte

  • ne jamais journaliser le token
  • séparer identité et compte d’approbation
  • éviter les permissions tenant-wide inutiles
  • tester la révocation

Pour Authentification Graph sans secret, une exigence issue de la documentation du produit reste obligatoire. Une valeur proposée par cet article est recommandée. Les choix liés au risque, au parc ou au niveau de service restent dépendants du contexte.

06

Fonctionnement détaillé de Authentification Graph sans secret

Le flux client credentials obtient un token pour le scope https://graph.microsoft.com/.default. Le token contient les rôles applicatifs déjà consentis; demander.default n’ajoute aucune permission par lui-même.

Une system-assigned Managed Identity crée un service principal lié à la ressource Azure. Supprimer la ressource supprime l’identité, ce qui simplifie le cycle de vie mais rend le partage impossible.

Une user-assigned Managed Identity existe indépendamment et peut être attachée à plusieurs ressources. Je l’utilise lorsque plusieurs runtimes doivent partager exactement le même rôle et le même cycle de révocation, jamais seulement par commodité.

  • matrice endpoints et permissions
  • runtime identifié
  • rôle d’approbation séparé
  • app registration si certificat
07

Traitement, exploitation et cas limites de Authentification Graph sans secret

Les permissions Graph sont accordées directement au service principal de l’identité managée. Cette opération exige des rôles très privilégiés; elle est exécutée par un processus d’approbation distinct du runbook consommateur.

Avec un certificat, l’application prouve la possession de la clé privée. Le certificat public est enregistré dans l’app registration, tandis que la clé privée reste dans un magasin ou coffre protégé et n’entre jamais dans le dépôt.

La rotation de certificat ajoute le nouveau credential, valide un run complet, bascule le runtime puis retire l’ancien. Je conserve une courte période de chevauchement, une alerte d’expiration et un test de révocation.

  • Tester une lecture et un refus attendu
  • Exercer rotation ou remplacement
  • Révoquer l’ancienne identité puis contrôler
08

Lire les états propres à Authentification Graph sans secret

Connect-MgGraph -Identity utilise la Managed Identity du runtime compatible; le ClientId permet de sélectionner une user-assigned identity. Pour un certificat, tenant ID, client ID et empreinte ou objet certificat doivent être explicités.

Le token n’est jamais écrit en clair. Pour le diagnostic, je contrôle le contexte Graph, le tenant, le mode AuthType et les permissions attendues, puis j’utilise request-id et date pour les erreurs de ressource.

Le choix final documente portabilité, séparation dev/test/prod, permissions, propriétaire, coût d’exploitation, récupération et délai de révocation. Une identité par workload critique réduit le rayon d’impact.

  • 403 Forbidden — Token roles et documentation
  • Connect Identity échoue — Resource identity et ClientId
  • Certificat introuvable — Cert store et expiration
  • Mauvais tenant — Get-MgContext
09

Pilote et suivi opérationnel de Authentification Graph sans secret

Le pilote couvre le périmètre Microsoft Graph, Managed Identity, Certificate authentication, App-only et contrôle Lister les appels Graph exacts. Choisir Managed Identity si le runtime la supporte. Créer une identité dédiée par environnement. Les résultats sont segmentés selon les populations réellement concernées par Authentification Graph sans secret.

Les cas d’échec « 403 Forbidden », « Connect Identity échoue », « Certificat introuvable » sont reproduits lorsque c’est possible. Ils vérifient que l’écart reste visible et que la procédure indique une preuve exploitable.

Le suivi après déploiement conserve ne jamais journaliser le token, séparer identité et compte d’approbation, éviter les permissions tenant-wide inutiles, tester la révocation. Une évolution de version, de licence ou de dépendance déclenche une nouvelle lecture de ces points.

10

Configuration recommandée et déploiement par étapes

La méthode retenue pour Authentification Graph sans secret se déploie par les étapes « Mesurer l’état de départ », « Configurer la population pilote », « Observer les indicateurs », « Décider la généralisation ». Chaque passage produit un résultat vérifiable avant l’ouverture du suivant.

PROCÉDUREDéploiement recommandé — Authentification Graph sans secret
  1. 01Mesurer l’état de départ
    Emplacement
    Runtime — Microsoft Graph
    Commande / configuration
    Lister les appels Graph exacts.
    Résultat attendu
    Choisir Managed Identity si le runtime la supporte.
    Vérification
    Créer une identité dédiée par environnement.
    Impact
    Lecture seule.
    Retour arrière
    Aucun.
  2. 02Configurer la population pilote
    Emplacement
    Identity — Managed Identity
    Commande / configuration
    Choisir Managed Identity si le runtime la supporte.
    Résultat attendu
    Créer une identité dédiée par environnement.
    Vérification
    Accorder les app roles minimaux.
    Impact
    Impact limité au pilote.
    Retour arrière
    Retirer l’affectation et restaurer l’état précédent.
  3. 03Observer les indicateurs
    Emplacement
    Consent — Certificate authentication
    Commande / configuration
    Créer une identité dédiée par environnement.
    Résultat attendu
    Accorder les app roles minimaux.
    Vérification
    Tester une lecture et un refus attendu
    Impact
    Collecte de preuves minimisées.
    Retour arrière
    Aucun pour la collecte.
  4. 04Décider la généralisation
    Emplacement
    Token — App-only
    Commande / configuration
    Accorder les app roles minimaux.
    Résultat attendu
    Tester une lecture et un refus attendu
    Vérification
    Exercer rotation ou remplacement
    Impact
    Extension contrôlée ou arrêt.
    Retour arrière
    Suspendre la vague et appliquer le runbook de retour arrière.

La vague suivante de Authentification Graph sans secret commence après validation des critères indiqués dans la procédure.

11

Paramètres, commandes et automatisation

Les commandes et valeurs de cette section servent à vérifier Lister les appels Graph exacts. Choisir Managed Identity si le runtime la supporte. Créer une identité dédiée par environnement. Accorder les app roles minimaux. Chaque exemple précise l’état attendu et les éléments à comparer dans le service.

Le contexte d’exécution, les permissions et les effets sur Runtime, Identity, Consent, Token doivent rester explicites lorsque la configuration est automatisée.

POWERSHELLValidation d’une Managed Identity Graph — lecture seule
# Collecte de diagnostic
$ErrorActionPreference = 'Stop'
try {
  Connect-MgGraph -Identity -NoWelcome
  $context = Get-MgContext
  $organization = Invoke-MgGraphRequest -Method GET -Uri 'https://graph.microsoft.com/v1.0/organization?%24select=id,displayName'
  [pscustomobject]@{TenantId=$context.TenantId;AuthType=$context.AuthType;AppName=$context.AppName;Organization=$organization.value.displayName}
} catch { Write-Error "Validation Graph impossible : $($_.Exception.Message)"; exit 1 }
finally { Disconnect-MgGraph -ErrorAction SilentlyContinue }

Exécuter uniquement depuis un runtime possédant l’identité et une permission de lecture minimale. Ne pas afficher AccessToken ou ClientSecret.

12

Validation, indicateurs et critères GO / NO-GO

La décision repose sur Lister les appels Graph exacts, Choisir Managed Identity si le runtime la supporte, Créer une identité dédiée par environnement et Accorder les app roles minimaux. Ces indicateurs couvrent le résultat technique, l’état du service et l’effet réel sur la population pilote.

  • Lister les appels Graph exacts.
  • Choisir Managed Identity si le runtime la supporte.
  • Créer une identité dédiée par environnement.
  • Accorder les app roles minimaux.
  • Tester une lecture et un refus attendu
  • Exercer rotation ou remplacement
  • Révoquer l’ancienne identité puis contrôler
REPÈRESSeuil initial proposé pour le pilote

GO

  • 100 % des contrôles critiques prévus sont validés.
  • Au moins 95 % de la population pilote atteint l’état attendu.
  • Aucun incident critique, perte de gestion ou perte d’accès n’est constaté.
  • Le retour arrière est exécuté avec succès sur un appareil représentatif.

NO-GO

  • Le taux d’échec inexpliqué dépasse 2 %.
  • Le délai de convergence dépasse deux fois la référence mesurée ou la fenêtre convenue.
  • Un incident critique est attribuable au changement.
  • Le retour arrière ne peut pas être exécuté dans le délai convenu.

Pour Authentification Graph sans secret, ces seuils constituent un point de départ pour le pilote, pas des limites universelles de Microsoft. Ils doivent être remplacés par les objectifs de service, la référence mesurée et le RTO de l’organisation.

13

Exploitation, journaux et contrôle continu

La chronologie de Authentification Graph sans secret relie Runtime, Identity, Consent, Token. Les heures et identifiants communs permettent de savoir si les états appartiennent à la même tentative.

La collecte commence par Lister les appels Graph exacts. Choisir Managed Identity si le runtime la supporte. Créer une identité dédiée par environnement. Accorder les app roles minimaux. Ces contrôles conservent l’état qui explique le symptôme avant une nouvelle évaluation.

Les résultats sont lus avec les causes « App role absent ou RBAC ressource », « Identité non attachée », « Store ou empreinte » en tête, sans déduire une correction d’un code ou d’un statut isolé.

  • Lister les appels Graph exacts.
  • Choisir Managed Identity si le runtime la supporte.
  • Créer une identité dédiée par environnement.
  • Accorder les app roles minimaux.
  • Tester une lecture et un refus attendu
  • Exercer rotation ou remplacement
  • Révoquer l’ancienne identité puis contrôler
MATRICELecture structurée des preuves — Authentification Graph sans secret
CoucheQuestionPreuveDécision
CiblageLe poste devait-il recevoir la configuration?Groupe, filtre, licence et affectationCorriger le ciblage avant le client
TransportLa demande a-t-elle atteint sa destination?Check-in, événement, request-id ou téléchargementTraiter identité, réseau ou service
TraitementLe composant a-t-il évalué la demande?Journal, état par paramètre ou résultat APICorriger la valeur ou le composant
RésultatL’objectif final est-il atteint?Contrôle fonctionnel et rapport corréléValider ou maintenir NO-GO
14

Exceptions, erreurs connues et traitement

Les exceptions à prévoir pour Authentification Graph sans secret apparaissent notamment sous la forme 403 Forbidden, Connect Identity échoue, Certificat introuvable, Mauvais tenant. La preuve associée indique s’il faut corriger la configuration ou conserver une exception documentée.

MATRICEMatrice de diagnostic
SymptômeCause à confirmerPreuve recherchéeCorrection ciblée
403 ForbiddenApp role absent ou RBAC ressourceToken roles et documentationAccorder seulement le rôle requis
Connect Identity échoueIdentité non attachéeResource identity et ClientIdCorriger l’attachement
Certificat introuvableStore ou empreinteCert store et expirationDéployer le nouveau certificat
Mauvais tenantContexte impliciteGet-MgContextRendre TenantId explicite
Automatisation orphelineOwner absentService principal et runbookDésactiver puis réattribuer

La matrice relie les symptômes propres à Authentification Graph sans secret aux preuves qui permettent de choisir une correction ciblée.

15

Coût de maintien des exceptions

Une exception à Authentification Graph sans secret crée une charge récurrente: elle doit être identifiée, surveillée et réévaluée jusqu’à sa suppression. Sans propriétaire ni date de revue, cette charge finit par devenir une configuration parallèle difficile à tester.

REPÈRESCe que chaque exception doit rendre visible

Charge de support

  • ne jamais journaliser le token
  • séparer identité et compte d’approbation
  • éviter les permissions tenant-wide inutiles

Risque et compensation

  • 403 Forbidden: Accorder seulement le rôle requis
  • Connect Identity échoue: Corriger l’attachement
  • Certificat introuvable: Déployer le nouveau certificat

Sortie de l’exception

  • un propriétaire nommé
  • une date de prochaine revue
  • un critère de suppression mesurable
  • une procédure de retour vers la configuration cible

Pour Authentification Graph sans secret, le coût réel dépend du volume d’appareils concernés, de la fréquence des incidents et du temps consacré aux tests de non-régression. Ces données sont à mesurer dans l’environnement exploité.

16

Rollback, gestion du changement et points de vigilance

Le rollback de Authentification Graph sans secret restaure explicitement l’affectation, la valeur ou l’autorité précédente. Les actions et points de vigilance ci-dessous précisent ce qui doit être contrôlé après ce retour.

REPÈRESRéversibilité et contrôles associés

Actions de rollback

  • révoquer l’app role nouvellement accordé
  • réattacher l’identité précédente pendant la fenêtre de bascule
  • réactiver temporairement l’ancien certificat seulement s’il reste protégé et valide

Contrôles après retour

  • ne jamais journaliser le token
  • séparer identité et compte d’approbation
  • éviter les permissions tenant-wide inutiles
  • tester la révocation
R

Références et mots-clés

Références techniques publiques

Microsoft GraphManaged IdentityCertificate authenticationApp-onlyMicrosoft Entra IDLeast privilege

Continuer la lecture

Modern Workplace LabOMA-DM et WinDC en double inscriptionEndpoint LabDiagnostic complet des applications Win32