Partager via


Utiliser le proxy d’application Microsoft Entra pour fournir un accès sécurisé à une interface de programmation d’applications (API) hébergée dans un cloud privé ou en local

La logique métier réside souvent dans une interface de programmation d’applications (API) privée. L’API s’exécute en local ou dans un cloud privé. Vos applications natives Android, iOS, Mac ou Windows doivent interagir avec les points de terminaison d’API afin d’utiliser des données ou de permettre une interaction utilisateur. Le proxy d’application Microsoft Entra et la bibliothèque d’authentification Microsoft (MSAL) permettent à vos applications natives d’accéder en toute sécurité à vos API de cloud privé. L’utilisation du proxy d’application Microsoft Entra est plus rapide et plus sécurisée que l’ouverture des ports du pare-feu et le contrôle de l’authentification et des autorisations au niveau de l’application.

Conseil

Le terme « local » est un terme hérité datant de l’époque où les serveurs physiques étaient situés sur le site du bureau d’entreprise. À présent, de nombreuses charges de travail auto-hébergées s’exécutent sur une machine virtuelle dans un centre de données. Les termes du cloud local et privé sont utilisés de façon interchangeable.

Cet article explique comment configurer une solution de proxy d’application Microsoft Entra pour héberger un service API web auquel peuvent accéder les applications natives.

Vue d’ensemble

Le schéma suivant montre une méthode traditionnelle utilisée pour publier des API locales. Cette approche nécessite l’ouverture des ports entrants 80 et 443.

Accès à l’API traditionnel

Le diagramme suivant montre comment utiliser le proxy d’application Microsoft Entra pour publier des API de façon sécurisée, sans ouvrir les ports entrants :

Accès à l’API proxy d’application Microsoft Entra

Le proxy d’application Microsoft Entra constitue le cœur de la solution. En effet, il sert de point de terminaison public pour l’accès aux API et fournit des fonctionnalités d’authentification et d’autorisation. Vous pouvez accéder à vos API à partir d’un vaste éventail de plateformes à l’aide des bibliothèques MSAL (Microsoft Authentication Library ).

Les fonctionnalités d’autorisation et d’authentification du proxy d’application Microsoft Entra étant intégrées à Microsoft Entra ID, vous pouvez utiliser l’accès conditionnel Microsoft Entra pour garantir que seuls les appareils de confiance peuvent accéder aux API publiées via le proxy d’application. Utilisez la jointure Microsoft Entra ou la jointure hybride Microsoft Entra pour les appareils de bureau, et Intune Managed pour les appareils. Vous pouvez également tirer parti des fonctionnalités Microsoft Entra ID P1 ou P2 telles que l’authentification multifacteur Microsoft Entra et la sécurité d’apprentissage automatique de Microsoft Entra ID Protection.

Prérequis

Pour suivre cette procédure pas à pas, vous avez besoin des éléments suivants :

Publier l’API via le proxy d’application

Pour publier une API en dehors de votre intranet via le proxy d’application, vous devez suivre la même procédure que pour la publication d’applications web. Pour plus d’informations, consultez Tutoriel : Ajouter une application locale pour l’accès à distance via le proxy d’application dans l’ID Microsoft Entra.

Pour publier l’API web SecretAPI via le proxy d’application :

  1. Générez puis publiez l’exemple de projet SecretAPI comme une application web ASP.NET sur votre ordinateur local ou dans l’intranet. Vérifiez que vous pouvez accéder à l’application web localement.

  2. Connectez-vous au Centre d’administration Microsoft Entra en tant qu’administrateur d’application au moins.

  3. Accédez aux applications d'entreprise Entra ID>.

  4. En haut de la page Applications d’entreprise - Toutes les applications , sélectionnez Nouvelle application.

  5. Dans la page Parcourir la galerie Microsoft Entra , recherchez la section Applications locales et sélectionnez Ajouter une application locale. La page Ajouter votre propre application locale s’affiche.

  6. Si aucun connecteur de réseau privé n’est installé, vous êtes invité à le faire. Sélectionnez Télécharger le connecteur de réseau privé pour télécharger et installer le connecteur.

  7. Ajoutez des informations sur la page Ajouter votre propre application locale .

    1. En regard de Name, entrez SecretAPI.

    2. En regard de l’URL interne, entrez l’URL que vous utilisez pour accéder à l’API à partir de votre intranet.

    3. Vérifiez que la pré-authentification est définie sur l’ID Microsoft Entra.

    4. Sélectionnez Créer, puis attendez que l’application soit créée.

    Ajouter une application API

  8. Dans la page Applications d’entreprise - Toutes les applications , sélectionnez l’application SecretAPI .

  9. Dans la page SecretAPI - Vue d’ensemble , sélectionnez Propriétés dans le volet de navigation gauche.

  10. Vous ne souhaitez pas que les API soient disponibles pour les utilisateurs finaux dans le panneau MyApps, alors définissez Visible pour les utilisateurs sur Non en bas de la page Propriétés, puis sélectionnez Enregistrer.

    Non visible pour les utilisateurs

L’API web est désormais publiée via le proxy d’application Microsoft Entra. Ensuite, ajoutez les utilisateurs qui peuvent accéder à l’application.

  1. Dans la page SecretAPI - Vue d’ensemble , sélectionnez Utilisateurs et groupes dans le volet de navigation gauche.

  2. Dans la page Utilisateurs et groupes , sélectionnez Ajouter un utilisateur.

  3. Dans la page Ajouter une attribution , sélectionnez Utilisateurs et groupes.

  4. Dans la page Utilisateurs et groupes , recherchez et sélectionnez les utilisateurs qui peuvent accéder à l’application, y compris au moins vous-même. Après avoir sélectionné tous les utilisateurs, sélectionnez Sélectionner.

    Sélectionner et affecter un utilisateur

  5. Dans la page Ajouter une affectation , sélectionnez Affecter.

Notes

Les API qui utilisent l’authentification Windows intégrée peuvent nécessiter des étapes supplémentaires.

Inscrire l’application native et accorder l’accès à l’API

Les applications natives sont des programmes conçus pour être utilisés sur une plateforme ou un appareil spécifique. Pour que votre application native puisse se connecter et accéder à une API, vous devez l’inscrire dans Microsoft Entra ID. Les étapes suivantes montrent comment inscrire une application native et lui donner accès à l’API web que vous avez publiée via le proxy d’application.

Pour inscrire l’application native AppProxyNativeAppSample :

  1. Connectez-vous au Centre d’administration Microsoft Entra en tant qu’administrateur d’application au moins.

  2. Accédez à Entra ID>Applications d’entreprise>Inscriptions d’applications.

  3. Sélectionnez Nouvelle inscription.

  4. Entrez des informations sur la page Inscrire une application .

    1. Sous Nom, entrez AppProxyNativeAppSample.

    2. Sous Types de comptes pris en charge, sélectionnez Comptes dans cet annuaire organisationnel uniquement (Contoso uniquement - Locataire unique).

    3. Sous URL de redirection, faites défiler la liste déroulante et sélectionnez Client public/natif (mobile &bureau), puis entrez *https://login.microsoftonline.com/common/oauth2/nativeclient *.

    4. Sélectionnez Inscrire et attendez que l’application soit correctement inscrite.

      Nouvelle inscription d’application

L’application AppProxyNativeAppSample est maintenant inscrite dans Microsoft Entra ID. Donnez à votre application native l’accès à l’API web SecretAPI :

  1. Dans la page Inscriptions d’applications , sélectionnez l’application AppProxyNativeAppSample .

  2. Dans la page AppProxyNativeAppSample , sélectionnez autorisations d’API dans le volet de navigation gauche.

  3. Dans la page Autorisations de l’API , sélectionnez Ajouter une autorisation.

  4. Dans la première page Demander des autorisations d’API , sélectionnez les API que mon organisation utilise l’onglet, puis recherchez et sélectionnez SecretAPI.

  5. Dans la page Suivante Demander des autorisations d’API , cochez la case en regard de user_impersonation, puis sélectionnez Ajouter des autorisations.

    Sélectionnez une API.

  6. De retour sur la page des autorisations d’API , vous pouvez sélectionner Accorder le consentement de l’administrateur pour Contoso afin d’empêcher les autres utilisateurs d’avoir à consentir individuellement à l’application.

Configurer le code de l’application native

La dernière étape consiste à configurer l’application native. Le code doit être ajouté au fichier Form1.cs dans l’exemple d’application NativeClient. Le code utilise la bibliothèque MSAL pour acquérir le jeton. Le jeton demande l’appel d’API et l’attache à l’en-tête de la requête. Le jeton est attaché en tant que certificat du porteur. Pour plus d’informations sur MSAL, consultez Ajouter MSAL à votre projet et ajouter la référence à MSAL.

  1. Dans Form1.cs, ajoutez l’espace de noms using Microsoft.Identity.Client; au code.

  2. Modifiez le code d’application natif dans le contexte d’authentification de la bibliothèque d’authentification Microsoft (MSAL) pour inclure cet exemple de code personnalisé.

Configurez l’application native pour vous connecter à Microsoft Entra ID et appeler l’API à l’aide du proxy d’application. Ensuite, mettez à jour les valeurs d’espace réservé dans le fichier App.config de NativeClient sample app avec valeurs de Microsoft Entra ID.

  1. Collez le ID d’annuaire (locataire) dans le champ <add key="ida:Tenant" value="" />. Vous pouvez rechercher et copier cette valeur (un GUID) dans la page Vue d’ensemble de l’une de vos applications.

  2. Collez l’ID d’application (client) AppProxyNativeAppSample dans le <add key="ida:ClientId" value="" /> champ. Vous pouvez rechercher et copier cette valeur (un GUID) à partir de la page Vue d’ensemble d’AppProxyNativeAppSample, dans le volet de navigation gauche sous Gérer.

  3. Collez l’URI de redirection d'AppProxyNativeAppSample dans le champ <add key="ida:RedirectUri" value="" />. Vous pouvez rechercher et copier cette valeur (un URI) à partir de la page d’authentification d’AppProxyNativeAppSample, dans le volet de navigation gauche sous Gérer. Cette étape est facultative, car MSAL utilise la méthode PublicClientApplicationBuilder.WithDefaultRedirectUri() pour insérer l’URI (Uniform Resource Identifier) de réponse recommandé.

  4. Collez l’URI de l’ID d’application SecretAPI dans le <add key="todo:TodoListResourceId" value="" /> champ. La valeur est la même que todo:TodoListBaseAddress. La valeur de l’URI se trouve dans la page Exposer une API de l’application SecretAPI . Regardez dans le volet de navigation gauche sous Gérer.

  5. Collez l’URL de la page d’accueil SecretAPI dans le <add key="todo:TodoListBaseAddress" value="" /> champ. Vous pouvez rechercher et copier cette valeur (une URL) à partir de la page Personnalisation et propriétés SecretAPI, dans le volet de navigation gauche sous Gérer.

Notes

Si la solution ne génère pas et signale l’erreur invalid Resx file, dans l’Explorateur de solutions, développez Propriétés, cliquez avec le bouton droit sur Resources.resx, puis sélectionnez Afficher le code. Lignes de commentaires 121 à 123.

Après avoir configuré les paramètres, générez puis exécutez l’application native. Lorsque vous sélectionnez le bouton Se connecter, l’application vous permet de vous connecter, puis affiche un écran de réussite pour confirmer qu’elle est correctement connectée à SecretAPI.

Capture d’écran montrant un message Secret A P I Réussi et un bouton OK.

Étapes suivantes