Meilleures pratiques de sécurité pour les propriétés d’application dans Microsoft Entra ID
La sécurité est un concept important lors de l’inscription d’une application dans Microsoft Entra ID et constitue une part essentielle de son utilisation dans l’organisation. Tout problème de configuration d’une application peut entraîner des temps d’arrêt ou une compromission. Selon les autorisations ajoutées à une application, il peut y avoir des effets à l’échelle de l’organisation.
Étant donné que les applications sécurisées sont essentielles à l’organisation, tout temps d’arrêt dû à des problèmes de sécurité peut affecter l’entreprise ou un service critique dont dépend l’entreprise. Il est donc important d’allouer du temps et des ressources pour garantir que les applications demeurent dans un état d’intégrité et de sécurité irréprochable. Procédez à une évaluation périodique de la sécurité et de l’intégrité de vos applications, à l’instar d’une évaluation du modèle de menaces de sécurité pour le code. Pour une perspective plus large sur la sécurité des organisations, consultez le cycle de vie de développement de la sécurité (SDL).
Cet article décrit les meilleures pratiques de sécurité pour les propriétés d’application suivantes :
- URI de redirection
- Jetons d’accès (utilisés pour les flux implicites)
- Certificats et secrets
- URI d’ID d’application
- Propriété de l’application
URI de redirection
Il est important de tenir à jour les URI de redirection de votre application. Sous l’option Authentification correspondant à l’application dans le Portail Azure, une plateforme doit être sélectionnée pour l’application, puis la propriété URI de redirection peut être définie.
Prenez en compte les conseils suivants pour les URI de redirection :
- Conservez la propriété de tous les URI. Une brèche dans la propriété de l’un des URI de redirection peut compromettre l’application.
- Assurez-vous que tous les enregistrements DNS sont régulièrement mis à jour et que leurs modifications sont surveillées.
- N’utilisez pas d’URL de réponse générique ou de schémas d’URI non sécurisés tels que http ou URN.
- Maîtrisez la taille de la liste. Supprimez les URI inutiles. Si possible, mettez à jour les URL de http vers https.
Jetons d’accès (utilisés pour les flux implicites)
Les scénarios qui requièrent un flux implicite peuvent désormais utiliser le flux de code d’authentification pour réduire le risque de compromission d’une utilisation incorrecte du flux implicite. Sous l’option Authentification correspondant à l’application dans le Portail Azure, une plateforme doit être sélectionnée pour l’application, puis la propriété Jetons d’accès (utilisés pour les flux implicites) peut être définie.
Prenez en compte les conseils suivants liés au flux implicite :
- Vérifiez si le flux implicite est requis. N’utilisez pas de flux implicite sauf spécification requise explicitement.
- Si l’application a été configurée pour recevoir des jetons d’accès à l’aide d’un flux implicite, mais ne les utilise pas activement, désactivez le paramètre pour protéger contre une utilisation incorrecte.
- Utilisez des applications distinctes pour des scénarios de flux implicites valides.
Certificats et secrets
Les certificats et les secrets, également appelés informations d’identification, font partie essentielle d’une application lorsqu’elle est utilisée comme client confidentiel. Sous Certificats et secrets pour l’application dans le Portail Azure, les certificats et les secrets peuvent être ajoutés ou supprimés.
Prenez en compte les conseils suivants concernant les certificats et les secrets :
- Utilisez toujours les informations d’identification de certificat chaque fois que possible et n’utilisez pas les informations d’identification de mot de passe, également appelées secrets. Bien qu’il soit pratique d’utiliser des secrets de mot de passe comme informations d’identification, quand cela est possible, utilisez des certificats x509 comme seul type d’informations d’identification afin d’obtenir des jetons pour votre application.
- Configurez des stratégies de méthode d’authentification d’application pour régir l’utilisation des secrets en limitant leur durée de vie ou en bloquant complètement leur utilisation.
- Utilisez le coffre de clés avec les identités managées pour gérer les informations d’identification d’une application.
- Si une application est utilisée uniquement comme application cliente publique (permet aux utilisateurs de se connecter à l’aide d’un point de terminaison public), assurez-vous qu’il n’y a pas d’informations d’identification spécifiées sur l’objet d’application.
- Passez en revue les informations d’identification utilisées dans les applications en vue de pouvoir les actualiser et de connaître leur date d’expiration. Une information d’identification non utilisée sur une application peut entraîner une violation de la sécurité. Substituez les informations d’identification de substitution fréquemment et ne partagez pas les informations d’identification entre les applications. Ne disposez pas de nombreuses informations d’identification sur une même application.
- Surveillez vos pipelines de production pour vous assurer que les informations d’identification de n’importe quel type ne sont jamais validées dans des référentiels de code.
- Credential Scanner est un outil d’analyse statique qui permet de détecter les informations d’identification (et tout autre contenu sensible) dans votre code source et la sortie de la build.
URI d’ID d’application
La propriété URI d’ID d’application de l’application spécifie l’URI global unique utilisé pour identifier l’API web. Il s’agit du préfixe des étendues et des jetons d’accès. Il s’agit également de la valeur de la revendication d’audience qui doit utiliser un domaine appartenant à un client vérifié. Pour les applications multilocataires, la valeur doit aussi être globalement unique. Également appelé URI d’identificateur. Sous Exposer une API pour l’application dans le Portail Azure, la propriété URI d’ID d’application peut être définie.
Tenez compte des instructions suivantes relatives à la définition de l’URI d’ID d’application :
- Les schémas d’URI api ou https sont recommandés. Définissez la propriété dans les formats pris en charge pour éviter les collisions d’URI dans votre organisation. N’utilisez pas de caractères génériques.
- Utilisez un domaine vérifié dans des applications métier.
- Conservez un inventaire des URI de votre organisation pour vous aider à maintenir la sécurité.
- Utilisez l’URI d’ID d’application pour exposer WebApi dans l’organisation. N’utilisez pas l’URI d’ID d’application pour identifier l’application, mais utilisez plutôt la propriété d’ID (cliente) de l’application.
L’API et les formats d’URI d’ID d’application basée sur le schéma HTTP suivants sont pris en charge. Remplacez les valeurs d’espace réservé comme décrit dans la liste qui suit le tableau.
ID d’application pris en charge Formats d’URI |
Exemples d’URI d’ID d’application |
---|---|
api://<appId> | api://00001111-aaaa-2222-bbbb-3333cccc4444 |
api://<tenantId>/<appId> | api://aaaabbbb-0000-cccc-1111-dddd2222eeee/00001111-aaaa-2222-bbbb-3333cccc4444 |
api://<tenantId>/<string> | api://aaaabbbb-0000-cccc-1111-dddd2222eeee/api |
api://<string>/<appId> | api://productapi/00001111-aaaa-2222-bbbb-3333cccc4444 |
https://<tenantInitialDomain>.onmicrosoft.com/<string> | https://contoso.onmicrosoft.com/productsapi |
https://<verifiedCustomDomain>/<string> | https://contoso.com/productsapi |
https://<string>.<verifiedCustomDomain> | https://product.contoso.com |
https://<string>.<verifiedCustomDomain>/<string> | https://product.contoso.com/productsapi |
- <appId> : propriété d’identificateur d’application (appId) de l’objet application.
- <string> : valeur de chaîne pour l’hôte ou le segment de chemin d’accès de l’API.
- <tenantId> : GUID généré par Azure pour représenter le locataire dans Azure.
- <tenantInitialDomain> - <tenantInitialDomain>.onmicrosoft.com, où <tenantInitialDomain> est le nom de domaine initial que le créateur du locataire a spécifié lors de la création du locataire.
- <verifiedCustomDomain> : domaine personnalisé vérifié configuré pour votre tenant Microsoft Entra.
Remarque
Si vous utilisez le schéma api:// , vous ajoutez une valeur de chaîne directement après « api:// ». Par exemple, api://<chaîne>. Cette valeur de chaîne peut être un GUID ou une chaîne arbitraire. Si vous ajoutez une valeur GUID, elle doit correspondre à l’ID d’application ou à l’ID de locataire. La valeur de l’URI de l’ID d’application doit être unique pour votre locataire. Si vous ajoutez api://<tenantId> en tant qu’URI d’ID d’application, personne d’autre ne pourra utiliser cet URI dans une autre application. Il est recommandé d’utiliser api://<appId>, à la place, ou le schéma HTTP.
Important
La valeur de l’URI d’ID d’application ne doit pas se terminer par une barre oblique « / ».
Configuration de la propriété de l’application
Les propriétaires peuvent gérer tous les aspects d’une application inscrite. Il est important d’examiner régulièrement la propriété de toutes les applications de l’organisation. Pour plus d’informations, consultez Révisions d’accès Microsoft Entra. Sous l’option Propriétaires correspondant à l’application dans le Portail Azure, les propriétaires de l’application peuvent être gérés.
Tenez compte des instructions suivantes relatives à la spécification des propriétaires d’applications :
- La propriété des applications doit être limitée à un nombre minimal de personnes au sein de l’organisation.
- Un administrateur doit examiner la liste des propriétaires une fois par mois pour s’assurer que les propriétaires font toujours partie de l’organisation et doivent toujours posséder une application.
Assistant d’intégration
L’Assistant Intégration du Portail Azure peut être utilisé pour vérifier qu’une application répond à une barre de haute qualité et pour fournir une intégration sécurisée. L’assistant d’intégration présente les meilleures pratiques et recommandations qui évitent les oublis courants lors de l’intégration à la plateforme d’identités Microsoft.
Étapes suivantes
- Pour plus d’informations sur le flux de code d’autorisation, consultez Flux du code d’autorisation OAuth 2.0.