Comment autoriser les applications clientes natives à interagir avec des applications de proxy

Le proxy d’application Microsoft Entra est utilisé pour publier des applications web. Vous pouvez également l’utiliser pour publier des applications clientes natives configurées avec la bibliothèque d’authentification Microsoft (MSAL). Les applications clientes sont différentes des applications web, car elles sont installées sur un appareil alors que les applications web sont accessibles via un navigateur.

Pour prendre en charge les applications clientes natives, le proxy d’application accepte les jetons émis par Microsoft Entra ID qui sont envoyés dans l’en-tête. Le service de proxy d’application effectue l’authentification pour les utilisateurs. Cette solution n’utilise aucun jeton d’application pour l’authentification.

Relation entre les utilisateurs finaux, Microsoft Entra ID et les applications publiées

Pour publier des applications natives, utilisez la bibliothèque d’authentification Microsoft, qui prend en charge l’authentification et de nombreux environnements clients. Le proxy d’application s’intègre au scénario Application de bureau qui appelle une API web pour le compte d’un utilisateur connecté.

Cet article vous guide dans quatre étapes pour publier une application native avec le proxy d’application et la bibliothèque d’authentification Microsoft (MSAL).

Étape 1 : Publiez votre application proxy

Publiez votre application proxy comme vous le feriez pour toute autre application et affectez des utilisateurs pour accéder à votre application. Pour plus d’informations, consultez l’article Publier des applications avec le proxy d’application.

Étape 2 : Inscrivez votre application native

Vous devez désormais inscrire votre application dans Microsoft Entra ID.

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

  2. Sélectionnez votre nom d’utilisateur en haut à droite. Vérifiez que vous êtes connecté à un répertoire qui utilise le service Proxy d’application. Si vous devez changer de répertoire, sélectionnez Changer de répertoire et choisissez un répertoire qui utilise le service Proxy d’application.

  3. Accédez à Identité>Applications>Inscriptions d’applications. La liste de toutes les inscriptions d’applications s’affiche.

  4. Sélectionnez Nouvelle inscription. La page Inscrire une application s’affiche.

    Créer une inscription d’application dans le centre d’administration Microsoft Entra

  5. Dans l’en-tête Nom, indiquez un nom d’affichage côté utilisateur pour l’application.

  6. Sous l’en-tête Types de comptes pris en charge, sélectionnez un niveau d’accès en tenant compte des instructions suivantes.

    • Pour cibler uniquement les comptes internes de votre organisation, sélectionnez Comptes dans cet annuaire organisationnel uniquement.
    • Pour cibler uniquement les clients professionnels et dans l’éducation, sélectionnez Comptes dans un annuaire organisationnel.
    • Pour cibler le plus grand jeu d’identités Microsoft, sélectionnez Comptes dans un annuaire organisationnel et comptes personnels Microsoft.
  7. Sous URI de redirection, sélectionnez Client public (mobile et bureau), puis saisissez l’URI de redirection https://login.microsoftonline.com/common/oauth2/nativeclient pour votre application.

  8. Sélectionnez et lisez les stratégies de la plateforme Microsoft, puis sélectionnez Inscrire. Une page présentant la nouvelle inscription d’application est créée et affichée.

Pour en savoir plus sur la création d’une inscription d’application, voir Integrating applications avec Microsoft Entra ID (Intégration d’applications à Azure Active Directory).

Étape 3 : Accordez l’accès à votre application proxy

Votre application native est inscrite. Donnez-lui l’accès à l’application proxy :

  1. Dans la barre latérale de la nouvelle page d’inscription d’application, sélectionnez Autorisations des API. La page Autorisations des API de la nouvelle inscription d’application s’affiche.
  2. Sélectionnez Ajouter une autorisation. La page Demander des autorisations d’API apparaît.
  3. Sous le paramètre Sélectionner une API, choisissez API utilisées par mon organisation. Une liste s’affiche, affichant les applications de votre annuaire qui exposent des API.
  4. Saisissez du texte dans la zone de recherche ou faites défiler la page pour trouver l’application proxy que vous avez publiée à l’étape 1 : Publiez votre application proxy, puis sélectionnez l’application proxy.
  5. Dans le titre Quel type d'autorisation votre application nécessite-t-elle ? , sélectionnez le type d’autorisation. Si votre application native doit accéder à l’API de l’application proxy en tant qu’utilisateur connecté, choisissez Autorisations déléguées.
  6. Dans l’en-tête Sélectionner les autorisations, choisissez l’autorisation voulue, puis cliquez sur Ajout d’autorisations. La page Autorisations des API de votre application native affiche désormais l’application proxy et l’API d’autorisation que vous avez ajoutées.

Étape 4 : Ajoutez la bibliothèque d’authentification Microsoft à votre code (exemple C# .NET)

Modifiez le code de l’application native dans le contexte de l’authentification de la bibliothèque d’authentification Microsoft (MSAL) de manière à inclure le texte suivant :

// Acquire access token from Microsoft Entra ID for proxy application
IPublicClientApplication clientApp = PublicClientApplicationBuilder
.Create(<App ID of the Native app>)
.WithDefaultRedirectUri() // will automatically use the default Uri for native app
.WithAuthority("https://login.microsoftonline.com/{<Tenant ID>}")
.Build();

AuthenticationResult authResult = null;
var accounts = await clientApp.GetAccountsAsync();
IAccount account = accounts.FirstOrDefault();

IEnumerable<string> scopes = new string[] {"<Scope>"};

try
 {
    authResult = await clientApp.AcquireTokenSilent(scopes, account).ExecuteAsync();
 }
    catch (MsalUiRequiredException ex)
 {
     authResult = await clientApp.AcquireTokenInteractive(scopes).ExecuteAsync();                
 }

if (authResult != null)
 {
  //Use the Access Token to access the Proxy Application

  HttpClient httpClient = new HttpClient();
  httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authResult.AccessToken);
  HttpResponseMessage response = await httpClient.GetAsync("<Proxy App Url>");
 }

Les informations requises dans l’exemple de code sont disponibles dans le centre d’administration Microsoft Entra, comme suit :

Informations requises Comment le trouver dans le centre d’administration Microsoft Entra
<Tenant ID> Propriétés de>présentation>de l'identité
<ID de l’application native> Inscription d’application>votre application native>Présentation>ID d’application
<Portée> Inscription d’application>votre application native>Autorisations de l’API> sélectionnez l’API d’autorisation (user_impersonation)> Un panneau avec la légende user_impersonation apparaît sur le côté droit. > L’étendue est l’URL dans la zone d’édition.
<URL de l’application proxy> URL externe et chemin de l’API

Une fois que vous avez modifié le code MSAL avec ces paramètres, vos utilisateurs peuvent s’authentifier auprès des applications clientes natives, même lorsqu’ils ne sont pas sur le réseau d’entreprise.

Étapes suivantes

Pour en savoir plus sur le flux d’application native, voir Applications mobiles et de bureau dans Microsoft Entra ID.

Découvrez comment configurer l’authentification unique SAML auprès des applications dans Microsoft Entra ID.