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 de façon sécurisée à vos API sur 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

« En local » est un terme hérité qui remonte à l’époque où les serveurs physiques étaient situés sur le site de l’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 « en local » et « cloud 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 classique aux API

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 du 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 également accéder à vos API à partir d’un large é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 de Microsoft Entra ID P1 ou P2 telles que l’authentification multifacteur Microsoft Entra et la sécurité soutenue par l’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 Microsoft Entra ID.

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 au minimum en tant qu’Administrateur d'application.

  3. Accédez à Identité>Applications>Applications d’entreprise.

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

  5. Sur 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 les informations sur la page Ajouter votre propre application en local.

    1. À côté de Nom, entrez SecretAPI.

    2. À côté de URL interne, entrez l’URL à utiliser pour accéder à l’API à partir de votre intranet.

    3. Assurez-vous que la pré-authentification est définie sur Microsoft Entra ID.

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

    Ajouter une 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. Ces API ne doivent pas être disponibles pour les utilisateurs finaux dans le panneau MyApps. Vous devez donc configurer Visible par les utilisateurs ? sur Non au bas de la page Propriétés, puis sélectionner Enregistrer.

    Non visible par 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 affectation, sélectionnez Utilisateurs et groupes.

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

    Sélectionner et affecter les utilisateurs

  5. De retour dans la page Ajouter une affectation, sélectionnez Affecter.

Notes

Les API qui utilisent 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 au minimum en tant qu’Administrateur d'application.

  2. Accédez à Identité>Applications>Application d’entreprise>Inscriptions d’applications.

  3. Sélectionnez Nouvelle inscription.

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

    1. Sous Nom, entrez AppProxyNativeAppSample.

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

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

    4. Sélectionnez Inscrire, puis 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 API autorisées dans le volet de navigation gauche.

  3. Dans la page API autorisées, sélectionnez Ajouter une autorisation.

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

  5. Dans la page Demander des autorisations d’API suivante, cochez la case située à côté de user_impersonation, puis sélectionnez Ajouter des autorisations.

    Sélectionnez une API.

  6. Dans la page API autorisées, vous pouvez sélectionner Accorder un consentement d’administrateur pour Contoso afin d’éviter aux utilisateurs de donner chacun leur consentement à 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 de l'application native 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 l’ID de l’annuaire (locataire) dans le champ <add key="ida:Tenant" value="" />. Vous pouvez trouver 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) d’AppProxyNativeAppSample dans le champ <add key="ida:ClientId" value="" />. Vous pouvez rechercher et copier cette valeur (un GUID) à partir de la page Vue d’ensemble d’AppProxyNativeAppSample, dans le volet de navigation de gauche, sous Gérer.

  3. Collez l’URI de redirection AppProxyNativeAppSample dans le champ <add key="ida:RedirectUri" value="" />. Vous pouvez rechercher et copier cette valeur (un URI) à partir de la page Authentification d’AppProxyNativeAppSample, dans le volet de navigation de 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 d’ID d’application de SecretAPI dans le champ <add key="todo:TodoListResourceId" value="" />. 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 de SecretAPI dans le champ <add key="todo:TodoListBaseAddress" value="" />. Vous pouvez rechercher et copier cette valeur (une URL) à partir de la page Personnalisation et propriétés de SecretAPI, dans le volet de navigation de gauche sous Gérer.

Remarque

Si la solution ne génère ni ne signale l’erreur fichier Resx non valide, 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 Connexion, l’application vous permet de vous connecter, puis affiche un écran de confirmation vous informant que vous êtes bien connecté à SecretAPI.

Capture d'écran affichant un message qui indique que la connexion à SecretAPI a abouti ainsi qu'un bouton OK.

Étapes suivantes