Guide de Microsoft Entra ID pour les développeurs de logiciels indépendants
Microsoft Entra ID est un service cloud de gestion des identités et des accès, qui permet aux employés d’accéder à des ressources. Les analystes du secteur d’activité considèrent Microsoft Entra ID comme une solution de référence. Elle a été sept fois classée leader du Magic Quadrant de Gartner pour la gestion des accès. KuppingerCole attribue des évaluations positives à Microsoft Entra ID dans tous les domaines de la gestion des accès. Frost & Sullivan a décerné à Microsoft le prix de l’Entreprise de l’année 2022 dans le secteur d’activité de la gestion des identités et des accès à l’échelle mondiale. Lisez les récits d’une partie des 300 000 organisations au moins qui utilisent Microsoft Entra ID.
Cet article est le premier d’une série sur la façon dont les développeurs de logiciels indépendants (ISV) peuvent générer et optimiser des applications pour Microsoft Entra ID. Dans cette série, vous en apprendrez plus sur les sujets suivants :
- Établir des applications dans l’écosystème Microsoft Entra ID explique comment utiliser le centre d’administration Microsoft Entra ou l’API (interface de programmation d’applications) Microsoft Graph pour inscrire des applications au sein d’un tenant (locataire) Microsoft Entra ID.
- Authentifier les applications et les utilisateurs décrit la façon dont les applications utilisent Microsoft Entra ID pour authentifier les utilisateurs et les applications.
- Autoriser des applications, des ressources et des charges de travail illustre la question de l’autorisation quand une personne interagit avec une application, et la dirige. Dans ce scénario, les API agissent pour le compte d’un utilisateur, quand des applications ou des services fonctionnent de manière indépendante.
- Personnaliser les jetons vous permet d’intégrer des fonctionnalités de sécurité aux applications avec des jetons d’ID et des jetons d’accès de Microsoft Entra ID. Cet article décrit les informations que vous pouvez recevoir dans les jetons Microsoft Entra ID ainsi que la façon dont vous pouvez les personnaliser.
Développer avec la plateforme d’identités Microsoft
Les applications sont au cœur de Microsoft Entra ID. Quand un utilisateur accède à une ressource, il y accède avec une application. La plateforme d’identités Microsoft comprend les outils et services qui permettent aux développeurs de s’appuyer sur Microsoft Entra ID. La plateforme d’identités Microsoft commence par Microsoft Entra ID, le service cloud qui fournit aux applications des opérations essentielles telles que la connexion, la déconnexion et l’inscription d’application. La plateforme d’identités Microsoft incorpore des bibliothèques d’authentification Microsoft (MSAL) open source dans divers langages et infrastructures ainsi que Microsoft Graph, qui fournit des API permettant d’accéder aux données et aux opérations dans Microsoft Entra ID.
Pour les développeurs, la plateforme d’identités Microsoft comprend les fonctionnalités suivantes.
- Authentification d’un utilisateur, autorisation d’une application, génération de jetons d’API.
- Simplification de l’intégration des fonctionnalités de sécurité directement avec la bibliothèque MSAL (bibliothèque d’authentification Microsoft), ou via une API de niveau supérieur telle que Microsoft.Identity.Web ou Azure.Identity.
- Utilisation de bibliothèques MSAL pour contourner la complexité des opérations à l’aide d’API robustes qui allègent la charge de travail des développeurs, au lieu d’implémenter OAuth 2.0 à partir de zéro.
- Vérification du respect des meilleures pratiques de sécurité dans les applications, conformément aux normes et protocoles du secteur d’activité, par exemple OAuth 2.0.
- Unification des récits d’authentification entre les applications et les expériences avec la prise en charge de l’authentification unique (SSO).
- Simplification de l’intégration de l’identité sociale avec un ID externe Microsoft.
- Sécurisation des données et des ressources avec peu de code répétitif, et prise en charge native des fonctionnalités Microsoft Entra ID telles que l’accès conditionnel (CA), l’évaluation continue de l’accès (CAE), Protection des ID Microsoft Entra et la gestion des appareils.
- Génération d’applications qui protègent les jetons d’authentification de manière sécurisée tout en garantissant le respect de la conformité des appareils et des stratégies. Intégration étroite aux méthodes d’authentification des répartiteurs modernes tels que Microsoft Authenticator ou des composants de système d’exploitation intégrés tels que le Gestionnaire de comptes web (WAM) sur Windows.
Intégrer des applications avec Microsoft Entra ID
Les applications qui s’intègrent à Microsoft Entra ID pour les identités d’utilisateur, de service ou de groupe interagissent avec un tenant Microsoft Entra ID. Un tenant est une instance dédiée de Microsoft Entra ID, qui représente généralement une organisation ou un groupe au sein d’une entreprise plus grande. Le tenant détient l’annuaire de l’organisation, qui stocke des objets tels que les comptes professionnels ou scolaires, ou les comptes de partenaires invités. Les groupes, applications, appareils et autres objets y sont également stockés. Le tenant fournit les points de terminaison web que les applications utilisent pour effectuer des opérations, par exemple l’authentification.
Une application envoie des requêtes à un point de terminaison de tenant pour obtenir des jetons qui identifient les utilisateurs, ou dont les API de ressources peuvent se servir pour autoriser l’accès aux ressources. Les identités d’application au sein de Microsoft Entra ID permettent aux applications de demander des jetons à un tenant Microsoft Entra ID tout en fournissant aux utilisateurs le niveau de contexte approprié sur l’application qui tente de les authentifier.
Bien que la plupart des entreprises n’aient besoin que d’un seul tenant Microsoft Entra ID, certains scénarios peuvent amener les organisations à avoir plusieurs tenants pour atteindre leurs objectifs métier. Une grande entreprise peut comprendre plusieurs divisions indépendantes, qui peuvent nécessiter une coordination et une collaboration dans l’ensemble de l’entreprise. Les villes d’une région ou les écoles d’un arrondissement peuvent avoir des besoins similaires. Dans ces scénarios, chaque division peut avoir son propre tenant, avec sa propre configuration et ses propres stratégies. Dans la mesure où le cloud Microsoft Entra ID héberge les tenants, les organisations peuvent configurer une collaboration entre tenants avec un minimum de frictions.
Microsoft Entra ID prend en charge les protocoles suivants parmi un large éventail de protocoles.
- OAuth 2.0 est la norme du secteur en matière d’autorisation. Les applications demandent un jeton d’accès avec le protocole OAuth 2.0 pour obtenir l’autorisation leur permettant d’accéder à une ressource protégée.
- OpenID Connect (OIDC) est une norme d’authentification interopérable basée sur OAuth 2.0. Les applications demandent un jeton d’ID avec le protocole OIDC pour authentifier l’utilisateur actuel.
- Security Assertion Markup Language (SAML 2.0) est une norme d’authentification. Les applications demandent une assertion SAML, également appelée jeton SAML, à Microsoft Entra ID pour permettre l’échange des données d’authentification et d’autorisation entre les applications et Microsoft Entra ID. Les applications utilisent SAML pour authentifier l’utilisateur actuel.
- System for Cross-domain Identity Management (SCIM) n’est pas destiné à l’authentification et à l’autorisation. SCIM est un protocole d’approvisionnement qui automatise la synchronisation des informations relatives aux utilisateurs et aux groupes entre Microsoft Entra ID et les applications qui se connectent. La synchronisation approvisionne les utilisateurs et les groupes dans une application.
Les opérations principales que les applications effectuent avec Microsoft Entra ID sont la demande et le traitement des jetons. Auparavant, il suffisait souvent qu’un utilisateur s’identifie avec un nom d’utilisateur et un mot de passe pour qu’un fournisseur d’identité tel que Microsoft Entra ID émette un jeton destiné à une application. Ce jeton répondait à la question « Qui est l’utilisateur, et à quoi l’application peut-elle accéder ? » Aujourd’hui, il existe une approche plus sécurisée qui consiste à vérifier les comptes d’identité selon un plus grand nombre de signaux :
- Qui est l’utilisateur ?
- À quoi l’application peut-elle accéder ?
- À partir de quel appareil ?
- Avec quelle puissance de chiffrement des informations d’identification ?
- À partir de quels emplacements réseau ?
Les clients Microsoft Entra ID peuvent utiliser des fonctionnalités telles que l’accès conditionnel afin de déterminer les questions ou conditions qu’ils souhaitent évaluer pour sécuriser l’accès aux ressources.
Les développeurs qui génèrent des applications nécessitant une gestion des identités utilisateur n’ont pas besoin d’écrire du code pour prendre en compte la complexité liée à l’émission de jetons. Les fonctionnalités MSAL intégrées permettent le traitement des demandes d’authentification. Une fois l’accès conditionnel activé, quand une application demande un jeton, Microsoft Entra ID se charge de garantir la mise en œuvre de la stratégie. Ce service vérifie les demandes en fonction de stratégies telles que l’emplacement de l’utilisateur (par exemple, s’il se trouve au sein du réseau de l’entreprise), ou évalue les signaux de risque de l’utilisateur. L’évaluation des risques liés à l’utilisateur peut nécessiter davantage d’interactions avec celui-ci, par exemple l’authentification MFA (authentification multifacteur). Une fois que Microsoft Entra ID a vérifié la conformité aux contraintes de stratégie, il émet un jeton. Quand il ne peut pas vérifier la conformité, Microsoft Entra ID n’émet pas de jeton pour l’application. Il fournit à l’utilisateur un contexte indiquant la raison pour laquelle il ne peut pas accéder à une ressource.
Les stratégies d’accès conditionnel sont désormais plus sophistiquées. Il existe un vaste ensemble de signaux qui permettent de déterminer si un utilisateur ou un service doit recevoir un jeton. Par exemple, il peut être important de déterminer si un appareil mobile utilise la gestion des applications mobiles (GAM), si Intune gère un PC Windows à partir d’une application de bureau. Vous pouvez également être amené à protéger les jetons en les liant à l’appareil d’origine d’une requête. Ce type de précaution permet de garantir la conformité et la sécurité avec un minimum de tracas pour le développeur. Les bibliothèques Microsoft offrent la structure nécessaire tout en conservant une certaine flexibilité pour répondre aux exigences de stratégie spécifiques.
Authentifier et autoriser avec Microsoft Entra ID
Microsoft Entra ID prend en charge les flux d’authentification et d’autorisation dans les navigateurs pour sécuriser les ressources web (par exemple les sites web et les API) ainsi que sur les plateformes clientes telles que Windows, macOS, Linux, iOS et Android. Les fournisseurs de technologie de l’écosystème s’associent à Microsoft pour garantir aux clients, à leurs organisations et aux partenaires une expérience fluide de gestion des informations d’identification. Microsoft Edge fonctionne directement avec Microsoft Entra ID pour prendre en charge l’authentification SSO à l’échelle de l’appareil afin d’authentifier les utilisateurs sur leurs appareils Windows. Google Chrome (version 111) et Firefox (version 91) offrent cette fonctionnalité. Les applications web qui tirent parti des identités Microsoft Entra ID, intègrent automatiquement ces fonctionnalités au sein d’un navigateur pour offrir une expérience de connexion fluide aux clients.
Pour permettre aux applications natives de fournir cette expérience SSO unifiée, Microsoft Entra a introduit des répartiteurs d’authentification, c’est-à-dire des applications qui s’exécutent sur l’appareil d’un utilisateur afin de gérer l’établissement des liaisons d’authentification ainsi que les jetons des comptes connectés. Le tableau suivant liste les répartiteurs d’authentification des systèmes d’exploitation courants.
Système d'exploitation | Répartiteur d’authentification |
---|---|
iOS | Application Microsoft Authenticator |
Android | Application Microsoft Authenticator ou application Portail d’entreprise Intune |
Windows | Gestionnaire de comptes web, composant intégré du système d’exploitation disponible dans Windows 10, Windows Server 2019 et versions ultérieures, Windows 11 |
Avec les répartiteurs d’authentification, les développeurs d’applications natives peuvent utiliser les nouvelles fonctionnalités de Microsoft Entra ID, par exemple les stratégies d’accès conditionnel basées sur l’appareil, sans avoir à réécrire le code à mesure que de nouvelles fonctionnalités sont disponibles dans le cloud. Les applications qui n’utilisent pas de répartiteur d’authentification risquent de faire l’objet d’une adoption limitée par les clients de Microsoft Entra ID qui ont besoin de ces fonctionnalités.
Déléguer la gestion des identités et des accès à Microsoft Entra ID
Vous pouvez générer des applications qui délèguent la gestion des identités et des accès à Microsoft Entra ID, à l’aide d’un outil de développement, d’une bibliothèque ou d’une infrastructure qui implémente OAuth 2.0, OIDC ou SAML en tenant compte des mises en garde mentionnées ci-dessus. De nombreuses implémentations d’OIDC avec la certification OpenID pour un ou plusieurs profils de certification, notamment les profils d’authentification, nécessitent une configuration supplémentaire minimale pour fonctionner avec Microsoft Entra ID. Afin de faciliter le développement pour la plateforme Microsoft Entra ID, plusieurs bibliothèques Microsoft optimisées interagissent avec les fonctionnalités et services Microsoft.
- Quand vous générez des applications web, des API ou d’autres charges de travail (par exemple des démons ou des services sur ASP.NET Core ou ASP.NET), utilisez Microsoft Identity Web.
- Si vous générez des applications sur Microsoft Azure, utilisez les kits SDK Azure, qui incluent les bibliothèques de client Azure Identity.
- Quand vous ne pouvez pas utiliser l’une de ces bibliothèques, choisissez une bibliothèque MSAL pour votre environnement de développement, comme le montre le tableau suivant.
Bibliothèque | Plateformes et infrastructures prises en charge |
---|---|
MSAL pour Android | Android |
MSAL Angular | Applications à page unique avec infrastructures Angular et Angular.js |
MSAL Objective-C | iOS, iPadOS, macOS |
MSAL Go | Windows, macOS, Linux |
MSAL Java | Windows, macOS, Linux |
MSAL.js | Infrastructures JavaScript/TypeScript, telles que Vue.js, Ember.js ou Durandal.js |
MSAL.NET | .NET, .NET Framework, Xamarin Android, Xamarin iOS |
MSAL Node | Applications Web avec Express, applications de bureau avec des applications de console multiplateformes et Electron |
MSAL Python | Windows, macOS, Linux |
MSAL React | Applications à page unique avec des bibliothèques React et basées sur React (Next.js, Gatsby.js) |
La famille de bibliothèques MSAL fournit des fonctionnalités essentielles d’acquisition et de mise en cache des jetons. Les clients Microsoft Identity Web et Azure Identity, qui reposent sur MSAL, simplifient l’acquisition des jetons grâce aux fonctionnalités de bibliothèque d’authentification.
Dans la mesure du possible, nous conseillons aux ISV (fournisseurs de logiciels indépendants) de tirer parti de MSAL ou d’une bibliothèque basée sur MSAL. MSAL prend en charge l’authentification répartie, les scénarios d’accès conditionnel, la protection par jeton, les stratégies Microsoft Intune App Protection ainsi que la gestion des applications mobiles, l’évaluation continue de l’accès Microsoft, etc.
Sur toutes les plateformes disponibles, l’infrastructure d’authentification MSAL unifiée s’intègre de manière transparente à la plateforme d’identités Microsoft pour une authentification utilisateur cohérente et sécurisée. Dans la mesure où MSAL élimine la complexité liée au renouvellement, à la mise en cache et à la révocation des jetons de manière proactive, les développeurs peuvent vérifier que les flux d’authentification sont sécurisés, robustes et fiables.
Accéder à d’autres ressources
Les applications ont souvent besoin de plus de fonctionnalités que l’authentification et l’autorisation (par exemple l’accès aux données d’annuaire du tenant). L’accès peut inclure l’obtention d’attributs relatifs à l’utilisateur, aux groupes, aux membres de groupe, aux applications et à la gouvernance.
Microsoft Graph permet d’accéder aux informations du tenant relatives à l’identité et l’accès, notamment les utilisateurs, les groupes et les applications. Microsoft Graph est la passerelle vers les données et les informations dans Microsoft 365. Vous pouvez utiliser son modèle de programmabilité unifié pour accéder à l’imposante quantité de données dans Microsoft 365, Windows et EMS (Enterprise Mobility + Security).
Étapes suivantes
- Établir des applications dans l’écosystème Microsoft Entra ID explique comment utiliser le centre d’administration Microsoft Entra ou l’API Microsoft Graph pour inscrire des applications au sein d’un tenant (locataire) Microsoft Entra ID.
- Authentifier les applications et les utilisateurs décrit la façon dont les applications utilisent Microsoft Entra ID pour authentifier les utilisateurs et les applications.
- Autoriser des applications, des ressources et des charges de travail traite de la question de l’autorisation quand une personne interagit avec une application et la dirige, quand des API agissent pour le compte d’un utilisateur et quand des applications ou des services fonctionnent de manière indépendante.
- Personnaliser les jetons vous permet d’intégrer des fonctionnalités de sécurité aux applications avec des jetons d’ID et des jetons d’accès de Microsoft Entra ID. Cet article décrit les informations que vous pouvez recevoir dans les jetons Microsoft Entra ID ainsi que la façon dont vous pouvez les personnaliser.