Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce guide décrit les étapes requises pour déployer et appliquer la protection des jetons de session de connexion utilisés par les applications web (basées sur un navigateur) qui accèdent à Azure Resource Manager (ARM).
Pour obtenir une vue d’ensemble de la protection des jetons et des plateformes prises en charge, consultez Token Protection dans Microsoft Entra accès conditionnel. Passez en revue la documentation de vue d’ensemble avant d’utiliser ce guide de déploiement.
Note
La protection des jetons pour les applications web est actuellement en préversion. Les fonctionnalités en préversion sont toujours en cours de développement et leurs fonctionnalités peuvent changer au fil du temps. Ces fonctionnalités sont mises à la disposition des clients avant le lancement officiel pour leur permettre d’y accéder en avant-première et de fournir des retours d’expérience.
Note
Étant donné que la prise en charge des applications web est en préversion, nous vous recommandons de déployer la protection des jetons pour les applications natives, notamment l’application de la stratégie pour au moins un groupe pilote d’utilisateurs, avant d’essayer cette préversion pour les applications web. Pour obtenir des conseils, consultez les guides de déploiement pour les appareils Windows et Apple.
Prerequisites
L’utilisation de cette fonctionnalité nécessite des licences Microsoft Entra ID P1. Pour trouver la licence adaptée à vos besoins, consultez Comparer les fonctionnalités en disponibilité générale de Microsoft Entra ID.
Applications, ressources et navigateurs pris en charge
Applications
- Portail Azure
- Centre d’administration Microsoft Intune
- Centre d’administration Microsoft Entra
- Microsoft Engage Center
- hub d’engagement Microsoft
Seules les applications web précédentes sont prises en charge. L’accès des utilisateurs à d’autres applications web accédant à ARM est bloqué lorsque la stratégie est appliquée. Les principales applications web qui accèdent à ARM, mais qui ne sont pas prises en charge sont les suivantes :
- Centre de conformité et de sécurité de Microsoft 365
- Microsoft AppSource
- Azure Data Factory.
- application AI Studio Azure
- Azure Synapse Studio
- Microsoft Power BI
- portail des développeurs Microsoft
- Azure OpenAI Studio
- Centre d’administration de Power Platform.
Ressources prises en charge
- Azure Resource Manager (ARM), configuré dans l’accès conditionnel en tant que ressource d’API gestion des services Windows Azure.
Plateformes et navigateurs pris en charge
| Platform | Navigateurs pris en charge | Exigence de l’appareil |
|---|---|---|
| Windows 11 (build 26100.8246 / 26200.8246 ou version ultérieure) | Microsoft Edge, Google Chrome | Microsoft Entra joint, joint hybride ou inscrit1 |
| macOS | Microsoft Edge, Google Chrome | Gestion des appareils mobiles uniquement |
1 Certains types d’inscription d’appareil ne sont pas pris en charge. Consultez la liste des types d’inscription d’appareils non pris en charge.
Activer la protection des jetons pour ARM sur Windows et macOS
Pour réduire la probabilité d’interruption de l’utilisateur en raison de l’incompatibilité de l’application, du navigateur ou de l’appareil, suivez les recommandations suivantes :
- Commencez par un groupe pilote d’utilisateurs et développez-les au fil du temps.
- Créez une stratégie d’accès conditionnel pour la protection des jetons en mode rapport uniquement avant de l’appliquer.
- Capturez les journaux de connexion interactifs et non interactifs.
- Analysez ces logs suffisamment longtemps pour couvrir l'usage habituel de l'application. Les instructions d’analyse et de compréhension de l’impact utilisateur sont décrites dans les sections suivantes.
- Ajoutez des utilisateurs connus et fiables à un groupe d’utilisateurs et appliquez la stratégie.
Ce processus permet d’évaluer la préparation de vos utilisateurs à l’application de la protection des jetons.
Étape 1 : Configurer les appareils des utilisateurs finaux
Effectuez les opérations suivantes sur chaque appareil manuellement ou via une stratégie de groupe ou Intune.
Windows
Vérifiez que l’appareil s’exécute Windows 11 build 26100.8246 / 26200.8246 ou version ultérieure.
Activez cette préversion en définissant la valeur de Registre suivante :
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\BrowserCore] "EnablePlatformAuth"=dword:00000001Installez l’extension de navigateur Microsoft Sign-On unique :
- Google Chrome : Installez Microsoft Authentification unique à partir du Chrome Web Store, sélectionnez Ajouter àl’extension Ajouter à Chrome>, puis confirmez qu’elle apparaît dans la barre d’outils.
-
Microsoft Edge : accédez à , activez Autoriser les extensions à
edge://extensionspartir d'autres magasins, installez l'extension d'authentification unique Microsoft et confirmez qu'elle est activée.
macOS
- Installez microsoft Portail d'entreprise ou déployez-le via votre solution MDM. Portail d'entreprise sert de répartiteur d’authentification pour les connexions Microsoft Entra.
- Activez l’inscription sauvegardée par le matériel à l’aide de l’une des options suivantes :
- Option A : Activez le plug-in Microsoft Enterprise SSO.
- Option B : Configurez l’authentification unique de plateforme pour macOS. L’authentification unique de plateforme utilise le stockage soutenu par le matériel par défaut et ne nécessite aucune configuration d’indicateur supplémentaire. Pour obtenir des instructions d’installation, consultez Configure Platform SSO pour les appareils macOS dans Microsoft Intune.
- Installez l’extension de navigateur d’authentification unique Microsoft dans Microsoft Edge ou Google Chrome, comme décrit dans la section Windows précédente.
À attendre après l’étape 1
Une fois que l’appareil répond aux prérequis et à la configuration se propage, les demandes d’authentification des applications et des navigateurs pris en charge s’arrêtent entièrement à l’intérieur du navigateur et sont plutôt gérées par le répartiteur d’authentification de la plateforme. Ce comportement permet à ces applications d’utiliser des jetons de session de connexion liés à l’appareil, tels que les jetons d’actualisation principaux (PRT) et de satisfaire la stratégie d’accès conditionnel de protection des jetons.
Planifiez les opérations suivantes :
- Autorisez au moins 24 heures pour que la modification prenne effet. Le basculement vers l’authentification basée sur le répartiteur n’est pas immédiat après l’application du profil de valeur, d’extension ou d’authentification unique de plateforme. Ne passez pas à l’étape 2 tant que cette fenêtre n’est pas passée, ou vos données de rapport uniquement ne montrent pas avec précision la préparation.
- La transition est automatique dans la plupart des cas. Les utilisateurs n’effectuent généralement aucune action ; Les sessions de navigateur existantes continuent de fonctionner pendant la propagation de la modification.
- Certains utilisateurs voient une brève boîte de dialogue de connexion. Pendant la préversion, les utilisateurs accédant au portail Azure peuvent voir brièvement un message « Vous connecter... « message indiquant qu’une nouvelle fenêtre s’ouvre. Aucune nouvelle fenêtre n’apparaît et aucune action de l’utilisateur n’est requise, et la connexion se termine par elle-même. Si vous le souhaitez, communiquez ce comportement à votre groupe pilote à l’avance afin qu’il ne soit pas signalé comme un échec.
Étape 2 : Créer la stratégie d’accès conditionnel en mode rapport uniquement
Une fois que vous attendez 24 heures après l’étape 1, vous pouvez continuer à définir une stratégie en mode rapport uniquement pour passer en revue la préparation de l’application.
- Connectez-vous au centre d’administration Microsoft Entra en tant qu’administrateur d’accès conditionnel au moins.
- Accédez à Entra ID>Stratégies d’accès> conditionnel, puis sélectionnez Nouvelle stratégie et donnez-lui un nom.
- Sous Affectations>utilisateurs, incluez vos utilisateurs pilotes ou de test. N’incluez pas l’accès d’urgence ou les comptes de secours de votre organisation.
- Sous Ressources cibles>(anciennement applications cloud)>Inclure>les ressources Sélectionner des ressources, sélectionnez Windows Azure API Gestion des services.
- Sous Conditions>,définissez Configurer surOui et incluez Windows, macOS ou les deux.
- Sous Conditions>,définissez Configurer sur Oui et incluez Navigateur. Veillez à ne pas sélectionner les applications mobiles et les clients de bureau pour cette préversion.
- SousSession contrôles >d’accès, sélectionnez Exiger la protection des jetons pour les sessions de connexion, puis sélectionnez Sélectionner.
- Définissez Activer la stratégie sur Rapport uniquement et sélectionnez Créer.
Tip
Étant donné que les stratégies d'accès conditionnel nécessitant une protection par jeton sont actuellement disponibles uniquement pour les appareils Windows et Apple, il est nécessaire de sécuriser votre environnement contre la déviation potentielle de la stratégie lorsqu'un attaquant peut sembler provenir d'une autre plateforme.
En outre, vous devez configurer les stratégies suivantes :
Étape 3 : Passer en revue la préparation à l’application avec les journaux et les métriques
Une fois la stratégie de rapport uniquement en place et en cours d’exécution, vous devez examiner l’impact de la stratégie, analyser vos journaux de connexion et effectuer une enquête avec Log Analytics pour évaluer la préparation à l'application.
Journaux de connexion
Pour afficher les événements de connexion liés à la protection des jetons dans le centre d'administration :
- Connectez-vous au centre d’administration Microsoft Entra en tant qu’au moins un Administrateur d’accès conditionnel.
- Accédez à Entra ID>Surveillance et santé>Journaux de connexion.
- Ajoutez la colonne Protection par jeton – code d’état de session de connexion à votre vue pour afficher rapidement les événements de connexion associés. En outre, filtrez sur la ressource Azure Resource Manager et définissez l’application cliente sur Browser pour isoler les demandes de connexion liées à cette préversion.
- Sélectionnez l’événement de connexion que vous examinez.
- Passez en revue les onglets Accès conditionnel et Rapport uniquement , en fonction de l’état de la stratégie, puis sélectionnez votre stratégie de protection des jetons.
- Sous Contrôles de session, vérifiez si les exigences de stratégie ont été satisfaites.
- Sélectionnez l’onglet Informations de base et cochez le champ Protection des jetons - Session de connexion pour plus d’informations.
Les journaux de connexion incluent une tokenProtectionStatusDetails propriété qui indique si une demande utilise un jeton lié à l’appareil :
"tokenProtectionStatusDetails": {
"signInSessionStatus": "bound | unbound",
"signInSessionStatusCode": <code>
}
Note
Sur macOS uniquement, les utilisateurs sur les appareils inscrits à Microsoft Entra ID avant l’application de la stratégie de protection des jetons sont invités à se réauthentifier une fois la stratégie appliquée. Ils effectuent une mise à niveau d’inscription d’appareil unique, obtenue en vous connectant à nouveau, pour accéder aux ressources. Vous pouvez identifier ces utilisateurs par codes d’état 1003 et 1004. Étant donné que les utilisateurs de cet état peuvent se corriger eux-mêmes, ils sont éligibles à l’application de stratégie.
Codes d’état de session de connexion
Pour comprendre pourquoi une demande s’affiche comme indépendante ou pour identifier les utilisateurs auxquels vous pouvez appliquer la stratégie, reportez-vous aux codes d’état suivants.
| Code de statut | Description | Action requise |
|---|---|---|
| 1002 | Non lié : la requête n’est pas liée en raison de l’absence d’état de l’appareil Microsoft Entra ID. | L’utilisateur doit inscrire ou rejoindre l’appareil. |
| 1003 | Non lié : appareil non inscrit avec des informations d’identification sécurisées (inscription héritée). |
Windows : cette erreur peut être due à un type d'inscription d'appareil non pris en charge, ou l'appareil n'a pas été inscrit à l'aide des informations d'identification de connexion fraîches. macOS : L’utilisateur effectue une mise à niveau d’inscription d’appareil unique (auto-corrective). |
| 1004 (macOS uniquement) | Non lié : l’inscription de l’appareil n’est pas sauvegardée par le matériel. | L’utilisateur effectue une mise à niveau d’inscription d’appareil unique (auto-corrective). |
| 1005 | Non lié : raison non spécifiée. | Varie ; examiner avec l’ID de corrélation. |
| 1006 | Non lié : la version du système d’exploitation n’est pas prise en charge. | L’utilisateur met à niveau le système d’exploitation vers Windows 11 build 26100.8246 / 26200.8246 ou version ultérieure, ou vers une version macOS prise en charge. |
| 1007 | Non lié : non soutenu par le matériel ; l’utilisateur connecté n’est pas le propriétaire de l’appareil inscrit. | L’inscription de l’utilisateur ou le propriétaire inscrit effectue la mise à niveau. |
| 1008 | Non lié : le client n’utilise pas de répartiteur d’authentification, tel que WAM. | Le client n’est pas intégré au répartiteur de plateforme, ou le répartiteur ou l’extension n’est pas installé. Pour les navigateurs, installez et activez l’extension Microsoft Sign-On unique et activez l’authentification de plateforme. |
Tip
Pour le scénario de navigateur, 1008 et 1002 sont les codes que vous voyez le plus souvent lors de l’intégration. Ils signifient généralement que l'extension de navigateur Microsoft unique Sign-On est manquante ou désactivée, l'authentification de plateforme n'est pas activée (sur Windows, la EnablePlatformAuth valeur de Registre n'est pas définie), un navigateur non pris en charge tel que Firefox ou Safari est en cours d'utilisation, ou l'application ne prend pas en charge la protection des jetons.
Identifier les utilisateurs auto-corrigeables (macOS uniquement)
Sur macOS, les codes 1003 et 1004 sont auto-corrigés par le biais d’une mise à niveau d’inscription d’appareil unique.
Pour identifier les demandes conformes ou pouvant être mises à niveau avec l’action de l’utilisateur, filtrez les éléments suivants :
-
signInSessionStatus == boundou -
signInSessionStatus == unboundavecsignInSessionStatusCodeou10031004.
Exemple de requête Microsoft Graph pour les connexions non interactives :
GET https://graph.microsoft.com/beta/auditLogs/signIns?$filter=(
signInEventTypes/any(t: t eq 'nonInteractiveUser')
and resourceDisplayName eq 'Azure Resource Manager'
and (tokenProtectionStatusDetails/signInSessionStatusCode eq 1003
or tokenProtectionStatusDetails/signInSessionStatusCode eq 1004
or tokenProtectionStatusDetails/signInSessionStatus eq 'bound'))
Lorsque la protection des jetons est appliquée à ces utilisateurs, ils sont invités à se reconnecter et peuvent accéder aux ressources une fois l’authentification terminée.
Log Analytics
Vous pouvez également utiliser Log Analytics pour interroger les journaux de connexion interactifs et non interactifs pour les demandes bloquées en raison d’un échec d’application de la protection des jetons. Ces requêtes sont des exemples uniquement et sont susceptibles de changer. Ils filtrent sur la ressource Azure Resource Manager et ajoutent des métriques de préparation pour vous permettre de distinguer les blocs durs des métriques auto-correctives.
Demandes par application
L’exemple de requête suivant recherche les journaux de connexion non interactifs au cours des sept derniers jours, mettant en surbrillance les requêtes bloquées et autorisées adressées à ARM par application et les blocs d’indicateurs que les utilisateurs peuvent corriger eux-mêmes. Échangez pour passer en SigninLogs revue les connexions interactives du navigateur à la place.
// Select the log to query (SigninLogs or AADNonInteractiveUserSignInLogs)
// SigninLogs
AADNonInteractiveUserSignInLogs
// Adjust the time range below
| where TimeGenerated > ago(7d)
| project Id, ConditionalAccessPolicies, Status, UserPrincipalName, AppDisplayName,
ResourceDisplayName, TokenProtectionStatusDetails
| where ConditionalAccessPolicies != "[]"
| where ResourceDisplayName == "Azure Resource Manager"
// Add UserPrincipalName if you want to filter to a specific user
// | where UserPrincipalName == "<user_principal_name>"
| mv-expand todynamic(ConditionalAccessPolicies)
| where ConditionalAccessPolicies["enforcedSessionControls"] contains '["Binding"]'
or ConditionalAccessPolicies["enforcedSessionControls"] contains '["SignInTokenProtection"]'
| where ConditionalAccessPolicies.result != "reportOnlyNotApplied"
and ConditionalAccessPolicies.result != "notApplied"
| extend SessionNotSatisfyResult = ConditionalAccessPolicies["sessionControlsNotSatisfied"]
| extend Result = case(
SessionNotSatisfyResult contains 'SignInTokenProtection'
or SessionNotSatisfyResult contains 'Binding', 'Block', 'Allow')
| extend parsedBindingDetails = parse_json(TokenProtectionStatusDetails)
| extend bindingStatusCode = tostring(parsedBindingDetails["signInSessionStatusCode"])
| extend IsSelfRemediable = Result == "Block"
and (bindingStatusCode == "1003" or bindingStatusCode == "1004")
| summarize by Id, UserPrincipalName, AppDisplayName, Result, IsSelfRemediable
| summarize Requests = count(),
Users = dcount(UserPrincipalName),
Allow = countif(Result == "Allow"),
Block = countif(Result == "Block"),
BlockSelfRemediable = countif(IsSelfRemediable == true),
BlockedUsers = dcountif(UserPrincipalName, Result == "Block"),
BlockedUsersSelfRemediable = dcountif(UserPrincipalName, IsSelfRemediable == true)
by AppDisplayName
| extend PctAllowed = round(100.0 * Allow / (Allow + Block), 2)
| extend PctEnforceable = round(100.0 * (Allow + BlockSelfRemediable) / (Allow + Block), 2)
| project AppDisplayName, Requests, Users, Allow, Block,
BlockSelfRemediable, BlockedUsers, BlockedUsersSelfRemediable,
PctAllowed, PctEnforceable
| sort by Requests desc
Demandes par utilisateur
La requête suivante examine les journaux de connexion non interactifs pour les sept derniers jours, mettant en surbrillance les requêtes bloquées et autorisées adressées à ARM par l’utilisateur, avec les mêmes métriques auto-correctives et applicables.
// Per-user query for the Azure portal -> ARM web app scenario
// SigninLogs
AADNonInteractiveUserSignInLogs
// Adjust the time range below
| where TimeGenerated > ago(7d)
| project Id, ConditionalAccessPolicies, UserPrincipalName, AppDisplayName,
ResourceDisplayName, TokenProtectionStatusDetails
| where ConditionalAccessPolicies != "[]"
| where ResourceDisplayName == "Azure Resource Manager"
// Add UserPrincipalName if you want to filter to a specific user
// | where UserPrincipalName == "<user_principal_name>"
| mv-expand todynamic(ConditionalAccessPolicies)
| where ConditionalAccessPolicies["enforcedSessionControls"] contains '["Binding"]'
or ConditionalAccessPolicies["enforcedSessionControls"] contains '["SignInTokenProtection"]'
| where ConditionalAccessPolicies.result != "reportOnlyNotApplied"
and ConditionalAccessPolicies.result != "notApplied"
| extend SessionNotSatisfyResult = ConditionalAccessPolicies.sessionControlsNotSatisfied
| extend Result = case(
SessionNotSatisfyResult contains 'SignInTokenProtection'
or SessionNotSatisfyResult contains 'Binding', 'Block', 'Allow')
| extend parsedBindingDetails = parse_json(TokenProtectionStatusDetails)
| extend bindingStatusCode = tostring(parsedBindingDetails["signInSessionStatusCode"])
| extend IsSelfRemediable = Result == "Block"
and (bindingStatusCode == "1003" or bindingStatusCode == "1004")
| summarize by Id, UserPrincipalName, AppDisplayName, ResourceDisplayName, Result, IsSelfRemediable
| summarize Requests = count(),
Allow = countif(Result == "Allow"),
Block = countif(Result == "Block"),
BlockSelfRemediable = countif(IsSelfRemediable == true)
by UserPrincipalName, AppDisplayName, ResourceDisplayName
| extend PctAllowed = round(100.0 * Allow / (Allow + Block), 2)
| extend PctEnforceable = round(100.0 * (Allow + BlockSelfRemediable) / (Allow + Block), 2)
| project UserPrincipalName, AppDisplayName, ResourceDisplayName,
Requests, Allow, Block, BlockSelfRemediable,
PctAllowed, PctEnforceable
| sort by UserPrincipalName asc
Étape 4 : Appliquer la stratégie
Après avoir examiné les données du journal de connexion et confirmé que vos utilisateurs et appareils ciblés sont prêts, déplacez la bascule Activer la stratégie de Rapport uniquement vers Activé.