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.
Apprenez à renforcer la résilience dans les applications clientes qui utilisent la plateforme d’identités Microsoft et l’ID Microsoft Entra pour connecter des utilisateurs et effectuer des actions pour le compte de ces utilisateurs.
Utiliser la bibliothèque d’authentification Microsoft (MSAL)
La bibliothèque d’authentification Microsoft (MSAL) fait partie de la plateforme d’identités Microsoft. MSAL acquiert, gère, met en cache et actualise les jetons ; il utilise les meilleures pratiques pour la résilience. MSAL aide les développeurs à créer des solutions sécurisées.
Pour en savoir plus:
- Vue d’ensemble de la bibliothèque d’authentification Microsoft
- Présentation de la plateforme d’identités Microsoft
- Documentation sur la plateforme d'identité de Microsoft
MSAL met en cache les jetons et utilise un modèle d’acquisition de jeton silencieux. MSAL sérialise le cache de jetons sur les systèmes d’exploitation qui fournissent en mode natif un stockage sécurisé comme la plateforme Windows universelle (UWP), iOS et Android. Personnalisez le comportement de sérialisation lorsque vous utilisez :
- Microsoft.Identity.Web
- MSAL.NET
- MSAL pour Java
- MSAL pour Python
Pour en savoir plus:
Sérialisation du cache de jetons personnalisé dans MSAL pour Java
Sérialisation du cache de jetons personnalisé dans MSAL pour Python.

Lorsque vous utilisez MSAL, la mise en cache des jetons, l’actualisation et l’acquisition en mode silencieux sont prises en charge. Utilisez des modèles simples pour acquérir les jetons pour l’authentification. Il existe une prise en charge de nombreuses langues. Recherchez l’exemple de code sur les exemples de code de la plateforme d’identités Microsoft.
try
{
result = await app.AcquireTokenSilent(scopes, account).ExecuteAsync();
}
catch(MsalUiRequiredException ex)
{
result = await app.AcquireToken(scopes).WithClaims(ex.Claims).ExecuteAsync()
}
MSAL peut actualiser les jetons. Lorsque la plateforme d’identités Microsoft émet un jeton de longue durée, elle peut envoyer des informations au client pour actualiser le jeton (refresh_in). L’application s’exécute pendant que l’ancien jeton est valide, mais il prend plus de temps pour une autre acquisition de jeton.
Versions MSAL
Nous recommandons aux développeurs de créer un processus pour utiliser la dernière version MSAL, car l’authentification fait partie de la sécurité des applications. Utilisez cette pratique pour les bibliothèques en cours de développement et améliorez la résilience des applications.
Trouvez la dernière version et les notes de version :
microsoft-authentication-library-for-jsmicrosoft-authentication-library-for-dotnetmicrosoft-authentication-library-for-pythonmicrosoft-authentication-library-for-javamicrosoft-authentication-library-for-objcmicrosoft-authentication-library-for-androidmicrosoft-identity-web
Modèles résilients pour la gestion des jetons
Si vous n’utilisez pas MSAL, utilisez des modèles résilients pour la gestion des jetons. La bibliothèque MSAL implémente les meilleures pratiques.
En règle générale, les applications utilisant l’authentification moderne appellent un point de terminaison pour récupérer des jetons qui authentifient l’utilisateur ou autorisent l’application à appeler des API protégées. MSAL gère l’authentification et implémente des modèles pour améliorer la résilience. Si vous n’utilisez pas MSAL, suivez les instructions de cette section pour connaître les meilleures pratiques. Sinon, MSAL implémente automatiquement les meilleures pratiques.
Le système d’authentification de sauvegarde microsoft Entra ID offre une résilience aux applications qui utilisent des protocoles et des flux pris en charge. Pour plus d’informations sur les exigences de l’application pour tirer parti de l’authentification de sauvegarde, consultez la configuration requise pour l’application pour le système d’authentification de sauvegarde.
Mettre en cache des jetons
Assurez-vous que les jetons de cache des applications proviennent exactement de la plateforme d’identités Microsoft. Une fois que votre application reçoit des jetons, la réponse HTTP avec des jetons a une expires_in propriété qui indique la durée à mettre en cache et quand la réutiliser. Confirmez que l’application ne tente pas de décoder un jeton d’accès d’API.

Les jetons mis en cache empêchent le trafic inutile entre une application et la plateforme d’identités Microsoft. Ce scénario rend l’application moins vulnérable aux échecs d’acquisition de jetons en réduisant les appels d’acquisition de jetons. Les jetons mis en cache améliorent les performances de l’application, car l’application bloque l’acquisition de jetons moins fréquemment. Les utilisateurs restent connectés à votre application pour la durée de vie du jeton.
Sérialiser et conserver les jetons
Assurez-vous que les applications sérialisent leur cache de jetons en toute sécurité pour conserver les jetons entre les instances d’application. Réutilisez les jetons pendant leur durée de vie. Les jetons d’actualisation et les jetons d’accès sont émis pendant de nombreuses heures. Pendant ce temps, les utilisateurs peuvent démarrer votre application plusieurs fois. Quand une application démarre, confirmez qu’elle recherche un accès valide ou un jeton d’actualisation. Cela augmente la résilience et les performances des applications.
Pour en savoir plus:
Vérifiez que le stockage de jetons persistants dispose d’un contrôle d’accès et d’un chiffrement, par rapport à l’identité de l’utilisateur ou du processus. Sur différents systèmes d’exploitation, il existe des fonctionnalités de stockage d’informations d’identification.
Acquérir des jetons en mode silencieux
L’authentification d’un utilisateur ou la récupération de l’autorisation d’appeler une API implique plusieurs étapes dans la plateforme d’identités Microsoft. Par exemple, les utilisateurs qui se connectent pour la première fois entrent des informations d’identification et effectuent une authentification multifacteur. Chaque étape affecte la ressource qui fournit le service. La meilleure expérience utilisateur avec le moins de dépendances possible est l’acquisition de jetons silencieuse.

L’acquisition de jetons silencieux commence par un jeton valide à partir du cache de jetons d’application. S’il n’existe aucun jeton valide, l’application tente d’acquérir un jeton à l’aide d’un jeton d’actualisation disponible et du point de terminaison du jeton. Si aucune option n’est disponible, l’application acquiert un jeton à l’aide du prompt=none paramètre. Cette action utilise le point de terminaison d’autorisation, mais aucune interface utilisateur n’apparaît pour l’utilisateur. Si possible, la plateforme d’identités Microsoft fournit un jeton à l’application sans interaction utilisateur. Si aucune méthode n’entraîne de jeton, l’utilisateur se réauthentifie manuellement.
Remarque
En général, assurez-vous que les applications n’utilisent pas d’invites telles que « login » et « consent ». Ces invites forcent l’interaction de l’utilisateur, quand aucune interaction n’est requise.
Gestion du code de réponse
Utilisez les sections suivantes pour en savoir plus sur les codes de réponse.
Code de réponse HTTP 429
Il existe des réponses d’erreur qui affectent la résilience. Si votre application reçoit un code de réponse HTTP 429, trop de requêtes, la plateforme d’identités Microsoft limite vos demandes. Si une application effectue trop de requêtes, elle est restreinte pour empêcher l'application de recevoir des jetons. N’autorisez pas une application à tenter l’acquisition de jetons avant que le temps du champ de réponse Retry-After soit écoulé. Souvent, une réponse 429 indique que l’application ne met pas en cache et réutilise correctement les jetons. Vérifiez comment les jetons sont mis en cache et réutilisés dans l’application.
Code de réponse HTTP 5x
Si une application reçoit un code de réponse HTTP 5x, l’application ne doit pas entrer une boucle de nouvelle tentative rapide. Utilisez le même traitement pour une réponse 429. Si l’en-tête « Nouvelle tentative après » n’apparaît, mettez en œuvre une nouvelle tentative exponentielle d’interruption avec la première tentative au moins 5 secondes après la réponse.
Lorsqu’une demande expire, les nouvelles tentatives immédiates sont déconseillées. Implémentez une nouvelle tentative d’interruption exponentielle, avec la première nouvelle tentative, au moins 5 secondes après la réponse.
Récupération des informations associées à l’autorisation
De nombreuses applications et API ont besoin d’informations utilisateur pour autoriser. Les méthodes disponibles présentent des avantages et des inconvénients.
Jetons
Les jetons d’identité (ID) et les jetons d’accès ont des revendications standard qui fournissent des informations. Si les informations nécessaires se trouvent dans le jeton, la technique la plus efficace est les revendications de jeton, car cela empêche un autre appel réseau. Moins d’appels réseau équivaut à une meilleure résilience.
Pour en savoir plus:
- Jetons d’ID de la plateforme d’identités Microsoft
- Jetons d’accès de la plateforme d’identités Microsoft
Remarque
Certaines applications appellent le point de terminaison UserInfo pour récupérer les revendications relatives à l’utilisateur authentifié. Les informations contenues dans le jeton d’ID sont un super-ensemble d’informations du point de terminaison UserInfo. Permettre aux applications d’utiliser le jeton d’ID au lieu d’appeler le point de terminaison UserInfo.
Augmentez les revendications standard de jetons avec des revendications optionnelles, telles que les groupes. L’option Groupe d’applications inclut les groupes affectés à l’application. Les options Tout or Groupes de sécurité incluent les groupes d’applications du même client, qui peuvent ajouter des groupes au jeton. Évaluez l’effet, car cela peut annuler l’efficacité de la demande de groupes dans le jeton en provoquant un surdimensionnement du jeton et en exigeant plus d’appels pour récupérer les groupes.
Pour en savoir plus:
- Fournir des revendications facultatives à votre application
- Configuration des revendications facultatives des groupes
Nous vous recommandons d’utiliser et d’inclure des rôles d’application, que les clients gèrent à l’aide du portail ou des API. Attribuez des rôles aux utilisateurs et aux groupes pour contrôler l’accès. Lorsqu’un jeton est émis, les rôles attribués se trouvent dans la déclaration des rôles du jeton. Les informations dérivées d’un jeton empêchent d’autres appels d’API.
Consultez, Ajouter des rôles d’application dans votre application et les recevoir dans le jeton
Ajoutez des revendications basées sur les informations du locataire. Par exemple, une extension a un ID utilisateur spécifique à l’entreprise.
L’ajout d’informations du répertoire à un jeton est efficace et augmente la résilience en réduisant les dépendances. Elle ne traite pas des problèmes de résilience en raison d’une incapacité à acquérir un jeton. Ajoutez des revendications facultatives pour les scénarios principaux de l’application. Si l’application requiert des informations pour les fonctionnalités d’administration, l’application peut obtenir ces informations, le cas échéant.
Microsoft Graph
Microsoft Graph dispose d’un point de terminaison d’API unifié pour accéder aux données Microsoft 365 sur les modèles de productivité, l’identité et la sécurité. Les applications utilisant Microsoft Graph peuvent utiliser des informations Microsoft 365 pour l’autorisation.
Les applications nécessitent un jeton pour accéder à Microsoft 365, ce qui est plus résilient que les API précédentes pour les composants Microsoft 365 tels que Microsoft Exchange ou Microsoft SharePoint nécessitant plusieurs jetons.
Lorsque vous utilisez des API Microsoft Graph, utilisez un Kit de développement logiciel (SDK) Microsoft Graph qui simplifie la création d’applications résilientes qui accèdent à Microsoft Graph.
Voir la vue d’ensemble du Kit de développement logiciel (SDK) Microsoft Graph
Pour l’autorisation, envisagez d’utiliser des revendications de jeton au lieu de certains appels Microsoft Graph. Demander des groupes, des rôles d’application et des revendications facultatives dans les jetons. Microsoft Graph pour l’autorisation nécessite plus d’appels réseau qui s’appuient sur le plateforme d’identités Microsoft et Microsoft Graph. Toutefois, si votre application s’appuie sur Microsoft Graph comme couche de données, Microsoft Graph pour l’autorisation n’est pas plus risqué.
Utiliser l’authentification broker sur les appareils mobiles
Sur les appareils mobiles, un répartiteur d’authentification comme Microsoft Authenticator améliore la résilience. Le courtier d’authentification utilise un jeton d’actualisation principal (PRT) avec des informations relatives à l’utilisateur et à l’appareil. Utilisez PRT pour les jetons d’authentification pour accéder à d’autres applications à partir de l’appareil. Lorsqu’un PRT demande l’accès aux applications, Microsoft Entra ID approuve son appareil et ses revendications MFA. Cela augmente la résilience en réduisant les étapes d’authentification de l’appareil. Les utilisateurs ne sont pas confrontés à plusieurs invites MFA sur le même appareil.
Voir, Qu’est-ce qu’un jeton d’actualisation principal ?

MSAL prend en charge l’authentification broker. Pour en savoir plus:
- SSO via le courtier d'authentification sur iOS
- Activer l’authentification unique entre applications sur Android à l’aide de MSAL
Évaluation continue de l’accès
L’évaluation continue de l’accès (CAE) augmente la sécurité et la résilience des applications avec des jetons de longue durée. Avec CAE, un jeton d’accès est révoqué en fonction des événements critiques et de l’évaluation de la stratégie, plutôt que des durées de vie de jeton courtes. Pour certaines API de ressources, étant donné que les risques et la stratégie sont évalués en temps réel, caE augmente la durée de vie des jetons jusqu’à 28 heures. MSAL actualise les jetons de longue durée.
Pour en savoir plus:
- Évaluation continue de l’accès
- Sécurisation des applications avec évaluation continue de l’accès
- Évaluation des événements critiques
- Évaluation de la stratégie d’accès conditionnel
- Comment utiliser des API compatibles CAE dans vos applications
Si vous développez des API de ressources, accédez à openid.net pour Shared Signals – A Secure Webhooks Framework.
Étapes suivantes
- Comment utiliser des API compatibles CAE dans vos applications
- Augmenter la résilience de l’authentification et de l’autorisation dans les applications démon que vous développez
- Renforcer la résilience de votre infrastructure de gestion des identités et des accès
- Renforcer la résilience de votre gestion des identités et des accès client avec Azure AD B2C
