Partager via


Authentifier des applications JavaScript auprès des services Azure pendant le développement local à l’aide de l’authentification répartie

L’authentification répartie collecte les informations d’identification de l’utilisateur à l’aide du répartiteur d’authentification système pour authentifier une application. Un répartiteur d’authentification système est une application s’exécutant sur l’ordinateur d’un utilisateur qui gère les liaisons d’authentification et la maintenance des jetons pour tous les comptes connectés.

L’authentification répartie offre les avantages suivants :

  • Active l'Sign-On authentification unique (SSO) : Permet aux applications de simplifier la façon dont les utilisateurs s’authentifient avec l’ID Microsoft Entra et protègent les jetons d’actualisation microsoft Entra contre l’exfiltration et l’utilisation incorrecte.
  • Sécurité renforcée : De nombreuses améliorations de sécurité sont fournies avec le répartiteur, sans avoir à mettre à jour la logique de l’application.
  • Prise en charge améliorée des fonctionnalités : Grâce à l’aide du répartiteur, les développeurs peuvent accéder à des fonctionnalités de système d’exploitation et de service riches.
  • Intégration du système : Les applications qui utilisent le plug-and-play broker avec le sélecteur de compte intégré, ce qui permet à l’utilisateur de choisir rapidement un compte existant au lieu de réentérer les mêmes informations d’identification sur et sur plusieurs.
  • Protection des jetons : Garantit que les jetons d’actualisation sont liés à l’appareil et permet aux applications d’acquérir des jetons d’accès liés à l’appareil. Voir Protection des jetons.

Windows fournit un répartiteur d’authentification appelé Gestionnaire de comptes web (WAM). WAM permet aux fournisseurs d’identité tels que Microsoft Entra ID de se connecter en mode natif au système d’exploitation et de fournir des services de connexion sécurisés aux applications. L’authentification répartie active l’application pour toutes les opérations autorisées par les informations d’identification de connexion interactives.

Les comptes personnels Microsoft et les comptes professionnels ou scolaires sont pris en charge. Sur les versions windows prises en charge, l’interface utilisateur basée sur le navigateur par défaut est remplacée par une expérience d’authentification plus fluide, similaire aux applications Windows intégrées.

Linux utilise l’authentification unique Microsoft pour Linux comme répartiteur d’authentification.

Configurer l’application pour l’authentification répartie

Pour activer l’authentification répartie dans votre application, procédez comme suit :

  1. Dans le portail Azure, accédez à Microsoft Entra ID et sélectionnez Inscriptions d’applications dans le menu de gauche.

  2. Sélectionnez l'enregistrement de votre application, puis sélectionnez Authentification.

  3. Ajoutez l’URI de redirection approprié à votre inscription d’application via une configuration de plateforme :

    1. Sous Configurations des plateformes, sélectionnez + Ajouter une plateforme.

    2. Sous Configurer des plateformes, sélectionnez la vignette de votre type d’application (plateforme) pour configurer ses paramètres, tels que les applications mobiles et de bureau.

    3. Dans les URI de redirection personnalisés, entrez l’URI de redirection suivant pour votre plateforme :

      Platform URI de redirection
      Windows 10+ ou WSL ms-appx-web://Microsoft.AAD.BrokerPlugin/{your_client_id}
      macOS msauth.com.msauth.unsignedapp://auth pour les applications non signées
      msauth.{bundle_id}://auth pour les applications signées
      Linux https://login.microsoftonline.com/common/oauth2/nativeclient

      Remplacez {your_client_id} ou {bundle_id} utilisez l’ID d’application (client) dans le volet Vue d’ensemble de l’inscription de l’application.

    4. Sélectionnez Configurer.

    Pour en savoir plus, consultez Ajouter un URI de redirection à l'enregistrement d'une application.

  4. De nouveau dans le volet Authentification, sous Paramètres avancés, sélectionnez Oui pour Autoriser les flux de clients publics.

  5. Sélectionnez Enregistrer pour appliquer les modifications.

  6. Pour autoriser l'application pour des ressources spécifiques, naviguez jusqu'à la ressource en question, sélectionnez Permissions API et activez Microsoft Graph et les autres ressources auxquelles vous souhaitez accéder.

    Important

    Vous devez également être l'administrateur de votre locataire pour accorder le consentement à votre application lorsque vous vous connectez pour la première fois.

Attribuer des rôles

Pour exécuter votre code d’application avec l’authentification répartie, accordez à votre compte d’utilisateur des autorisations à l’aide du contrôle d’accès en fonction du rôle (RBAC) Azure. Attribuez un rôle approprié à votre compte d’utilisateur pour le service Azure approprié. Par exemple:

  • Stockage Blob Azure : attribuez le rôle Contributeur aux données du compte de stockage .
  • Azure Key Vault : attribuez le rôle Agent de secrets Key Vault .

Si une application est spécifiée, elle doit avoir des permissions API définies pour user_impersonation Accessure Storage (étape 6 de la section précédente). Cette permission API permet à l'application d'accéder au stockage Azure au nom de l'utilisateur connecté après que le consentement a été accordé lors de la connexion.

Implémenter le code

La bibliothèque Azure Identity prend en charge l’authentification répartie à l’aide d’InteractiveBrowserCredential. Par exemple, pour utiliser InteractiveBrowserCredential dans une application console Node.js pour vous authentifier auprès d’Azure Key Vault avec SecretClient, procédez comme suit :

  1. Installez les packages @azure/identity et @azure/identity-broker :

    npm install @azure/identity @azure/identity-broker
    
  2. Créez une instance d’InteractiveBrowserCredential en utilisant des options de courtier et inscrivez le plug-in natif du courtier :

    import { useIdentityPlugin, InteractiveBrowserCredential } from "@azure/identity";
    import { nativeBrokerPlugin } from "@azure/identity-broker";
    
    // Register the native broker plugin for brokered authentication
    useIdentityPlugin(nativeBrokerPlugin);
    
    // Use InteractiveBrowserCredential with broker for interactive or silent authentication
    
    // On Windows: Uses Windows Authentication Manager (WAM) - you'll be prompted to sign in
    // On macOS: Opens a browser window for authentication, since the broker flow isn't currently supported.
    // On Linux: Uses Microsoft Single Sign-on (SSO) for Linux.
    
    const credential = new InteractiveBrowserCredential({
        brokerOptions: {
            enabled: true,
            useDefaultBrokerAccount: true,
            // For Node.js console apps, we need to provide an empty buffer for parentWindowHandle
            parentWindowHandle: new Uint8Array(0),
        },
    });
    

Conseil / Astuce

Affichez le code complet de l'exemple d'application dans le référentiel GitHub du kit de développement logiciel (SDK) Azure pour JavaScript.

Dans l’exemple précédent, la propriété useDefaultBrokerAccount est définie truesur , qui opte dans un flux d’authentification silencieux et réparti avec le compte système par défaut. De cette façon, l’utilisateur n’a pas à sélectionner à plusieurs reprises le même compte. Si l’authentification silencieuse échoue ou useDefaultBrokerAccount est définie falsesur , InteractiveBrowserCredential revient à l’authentification interactive et répartie.

La capture d’écran suivante montre l’expérience d’authentification interactive et répartie alternative :

Capture d’écran montrant l’expérience de connexion Windows lors de l’utilisation d’une instance InteractiveBrowserCredential avec broker pour authentifier un utilisateur.

La vidéo suivante montre l’expérience d’authentification interactive et répartie alternative :

Image gif animée montrant l’expérience de connexion Linux lors de l’utilisation d’une instance InteractiveBrowserCredential avec broker pour authentifier un utilisateur.