Aller au contenu
🛡️ Microsoft Entra ID · Conditional Access

Créer la stratégie qui bloque le device code flow

Chaque volet de l'assistant « New policy » se configure comme dans le portail Entra. L'aperçu se construit en direct, et le tuto valide la configuration avant de « créer » la stratégie.

⏱ ~10 min 🔑 Rôle : Conditional Access Administrator 📦 Licence : Entra ID P1

Comprendre avant de configurer

🔌

Le device code flow

C'est un mode d'authentification OAuth 2.0 (RFC 8628) prévu pour les appareils sans clavier ni navigateur : salle Teams, écran d'affichage, outil en ligne de commande. L'appareil affiche un code court, l'utilisateur le saisit sur microsoft.com/devicelogin depuis un autre appareil, et celui qui a demandé le code reçoit les jetons.

🎣

Le risque : le device-code phishing

Un attaquant demande lui-même un code, puis l'envoie à un utilisateur (faux message de « réunion Teams »). L'utilisateur le saisit sur la vraie page Microsoft et valide sa MFA. Les jetons partent alors vers l'attaquant, sans que le mot de passe ne soit jamais connu.

🛡️

La réponse : Conditional Access

La condition Authentication flows de Conditional Access permet de cibler le device code flow et de le bloquer. Le jeton n'est alors pas délivré, même après une saisie de code et une MFA validée. C'est la seule mesure qui agit sur le flux lui-même.

⚠️
La MFA ne protège pas contre ce flux. C'est l'utilisateur qui réalise l'authentification forte, sur le vrai service. La MFA prouve qui se connecte, mais ne contrôle pas à quel appareil le jeton est remis. Il faut donc une règle sur le flux, pas sur l'identité.
🎯
Pourquoi le mettre en place. Microsoft recommande de bloquer le device code flow partout où il n'est pas nécessaire. La plupart des PME n'en ont aucun usage légitime : le bloquer ferme une porte d'entrée exploitée par des campagnes réelles (Storm-2372, février 2025), sans impact pour les utilisateurs. Si des salles Teams en dépendent, on prévoit une exception ciblée dans le tuto ci-dessous.

Avant de commencer : vérifiez vos prérequis

✓Licence Entra ID P1Incluse dans M365 Business Premium, E3, E5
✓Rôle Conditional Access Adminou Security Administrator
✓2 comptes break-glasstestés et exclus des stratégies
✓Inventaire device code faitSign-in logs → filtre Authentication protocol
Microsoft Entra admin center  ›  Conditional Access  ›  New policy
1Nom de la stratégieConvention de nommage claireÀ faire▸
Adoptez une convention lisible : préfixe, périmètre, action. Elle facilite l'audit et le tri.
2Assignments › UsersUsers or workload identitiesÀ faire▸
Include : qui est concerné ?
💡Conseil : couvrez tous les utilisateurs, puis excluez seulement les comptes d'urgence. C'est le réglage attendu pour ce blocage.
All users RecommandéN'importe quel compte peut être visé
Select users and groupsPérimètre restreint (pilote uniquement)
Exclude : pour ne pas se verrouiller
✓Comptes break-glass RecommandéObligatoire : évite le lockout du tenant
✓Break-glass + groupe équipements TeamsSi des salles Teams s'authentifient par code
✓Aucune exclusionRisqué
3Target resourcesResources (formerly cloud apps)À faire▸
Include
💡Conseil : ciblez toutes les ressources, sinon l'attaquant se rabat sur une application non couverte.
All resources (formerly 'All cloud apps') RecommandéCouvre toutes les applications
Select resourcesUne seule application
Exclude : uniquement si des appareils s'inscrivent par device code (salles Teams)
Exclure Device Registration Service 01cb2876-…
💡Laissez ce commutateur désactivé si aucune salle Teams ne s'inscrit par device code : cela ferme aussi ce chemin à l'attaquant.
4Conditions › Authentication FlowsLe cœur du blocageÀ faire▸
Configure = Yes, puis sélectionnez le flux à cibler.
💡Conseil : c'est le volet décisif. Sans Device code flow, la stratégie ne bloque pas l'attaque visée.
✓Device code flow RecommandéLe flux détourné par l'attaque
✓Authentication transferTransfert de session par QR code (optionnel)
5Access controls › GrantQue fait la stratégie ?À faire▸
💡Conseil : Block access. Exiger la MFA ne sert à rien ici, car la victime valide elle-même sa MFA.
Block access RecommandéLe jeton n'est pas délivré
Grant access › Require MFAInutile ici : la victime valide sa MFA elle-même
6Enable policyToujours mesurer avant d'appliquerÀ faire▸
💡Conseil : démarrez en Report-only pour mesurer l'impact, puis basculez sur On une fois les usages validés.
Report-only RecommandéMesure l'impact sans bloquer
OnApplique immédiatement

Déploiement en 4 temps

1
Laisser en Report-only ~1 semaineInclure une période où les salles Teams se réauthentifient (après changement de mot de passe, redémarrage).
2
Analyser l'impactSign-in logs → ouvrir une connexion device code → onglet Report-only. Attendu : « Failure » pour un utilisateur standard, « Not applied » pour un compte exclu.
3
Basculer sur OnAucun usage légitime en « Failure » → Enable policy = On → Save.
4
Vérifier le blocageTest avec un compte pilote sur microsoft.com/devicelogin : la connexion échoue, la stratégie apparaît en « Failure » sous l'onglet Conditional Access.
⚠️
Protocol tracking. Une session née d'un device code reste marquée « Original transfer method = Device code flow » sur ses rafraîchissements. Quand la stratégie cible All resources, le blocage ultérieur produit le message AADSTS530036. C'est le comportement attendu.
Vérifier / créer par PowerShell (Microsoft Graph)
Connect-MgGraph -Scopes "Policy.ReadWrite.ConditionalAccess","Policy.Read.All"

# Vérifier la stratégie créée dans le portail
Get-MgIdentityConditionalAccessPolicy -Filter "displayName eq '$name'" |
  Select-Object DisplayName, State,
    @{n='Flux';e={$_.Conditions.AuthenticationFlows.TransferMethods}},
    @{n='Grant';e={$_.GrantControls.BuiltInControls}}