Fournisseur MSAL2

Le fournisseur MSAL2 utilise msal-browser pour se connecter aux utilisateurs et acquérir des jetons à utiliser avec Microsoft Graph.

Pour en savoir plus, consultez les fournisseurs.

Différence entre le fournisseur MSAL2 et le fournisseur MSAL

Bien que l’utilisation soit similaire, le fournisseur MSAL et le fournisseur MSAL2 reposent sur différents flux OAuth. Le fournisseur MSAL repose sur msal.js, qui implémente le programme d’octroi implicite OAuth2.0 Flow. Le fournisseur MSAL2 repose sur msal-browser, qui implémente le code d’autorisation OAuth 2.0 Flow avec PKCE. Étant donné que les Flow code d’autorisation sont considérés comme plus sécurisés que les Flow d’octroi implicite pour les applications web, nous vous recommandons d’utiliser Msal2Provider sur MsalProvider. Pour plus d’informations sur les problèmes de sécurité liés au flux d’octroi implicite, voir Inconvénients du flux implicite.

Toutes les nouvelles applications doivent utiliser le fournisseur MSAL2 autant que possible.

Prise en main

Vous pouvez initialiser le fournisseur MSAL2 en HTML ou JavaScript.

Initialiser dans votre page HTML

L’initialisation du fournisseur MSAL2 en HTML est le moyen le plus simple de créer un fournisseur. Utilisez le mgt-msal2-provider composant pour définir l’ID client et d’autres propriétés. Cela crée une nouvelle PublicClientApplication instance qui sera utilisée pour tous les jetons d’authentification et d’acquisition.

    <mgt-msal2-provider client-id="<YOUR_CLIENT_ID>"
                        login-type="redirect/popup" 
                        scopes="user.read,people.read" 
                        redirect-uri="https://my.redirect/uri" 
                        authority=""> 
    </mgt-msal2-provider> 
Attribut Description
client-id ID client de chaîne (voir Création d’un ID d’application/client). Obligatoire.
login-type L’éumération entre redirect et popup - valeur par défaut est redirect. Facultatif.
scopes Chaînes séparées par des virgules pour les étendues que l’utilisateur doit consentir à se connecter. Facultatif.
autorité Chaîne d’autorité : la valeur par défaut est l’autorité commune. Pour les applications mono-client, utilisez votre ID de client ou votre nom de client. Par exemple : https://login.microsoftonline.com/[your-tenant-name].onmicrosoft.com ou https://login.microsoftonline.com/[your-tenant-id]. Facultatif.
redirect-uri Chaîne d’URI de redirection : par défaut, l’URI de la fenêtre actuelle est utilisé. Facultatif.
Invite Type d’invite à utiliser pour la connexion, entre SELECT_ACCOUNTet CONSENT LOGIN. La valeur par défaut est SELECT_ACCOUNT. Facultatif.

Initialiser dans JavaScript

Vous pouvez fournir d’autres d’options en initialisant le fournisseur dans JavaScript.

    import {Providers} from '@microsoft/mgt-element';
    import {Msal2Provider, Msal2Config, Msal2PublicClientApplicationConfig} from '@microsoft/mgt-msal2-provider';

    // initialize the auth provider globally
    Providers.globalProvider = new Msal2Provider(config: Msal2Config | Msal2PublicClientApplicationConfig);

Vous pouvez configurer le paramètre Msal2Provider constructeur de deux manières, comme décrit dans les sections suivantes.

Fournir un pour clientId créer une nouvelle PublicClientApplication

Cette option est logique lorsque le Graph Shared Computer Toolkit Microsoft est responsable de toute l’authentification dans votre application.

interface Msal2Config {
  clientId: string;
  scopes?: string[];
  authority?: string;
  redirectUri?: string;
  loginType?: LoginType; // LoginType.Popup or LoginType.Redirect (redirect is default)
  prompt?: PromptType; // PromptType.CONSENT, PromptType.LOGIN or PromptType.SELECT_ACCOUNT
  sid?: string; // Session ID
  loginHint?: string;
  domainHint?: string;
  options?: Configuration // msal-browser Configuration object
}

Passez une valeur existante PublicClientApplication dans la publicClientApplication propriété.

Utilisez cette fonctionnalité lorsque votre application utilise des fonctionnalités MSAL Msal2Provider au-delà de ce qui est exposé par les fonctionnalités microsoft Graph Shared Computer Toolkit autres. Cela est particulièrement approprié si une infrastructure ins PublicClientApplication instante et expose automatiquement une infrastructure pour vous, par exemple, lors de l’utilisation de msal-angular. Pour plus d’informations, consultez l’exemple angular-app dans le Graph Shared Computer Toolkit Microsoft.

N’oubliez pas de comprendre les possibilités de collisions lors de l’utilisation de cette option. De par sa nature même, Msal2Provider il existe un risque que l’utilisateur puisse modifier l’état d’une session, par exemple, en faisant en cas de connect de l’utilisateur ou d’autorisation d’étendues supplémentaires. Assurez-vous que votre application et d’autres frameworks répondent normalement à ces changements d’état, ou envisagez plutôt d’utiliser un fournisseur personnalisé.

interface Msal2PublicClientApplicationConfig {
  publicClientApplication: PublicClientApplication;
  scopes?: string[];
  authority?: string;
  redirectUri?: string;
  loginType?: LoginType; // LoginType.Popup or LoginType.Redirect (redirect is default)
  prompt?: PromptType; // PromptType.CONSENT, PromptType.LOGIN or PromptType.SELECT_ACCOUNT
  sid?: string; // Session ID
  loginHint?: string;
  domainHint?: string;
  options?: Configuration // msal-browser Configuration object
}

Création d’un ID client/application

Pour plus d’informations sur l’inscription d’une application et l’accès à un ID client, voir Créer une application Azure Active Directory client.

Migration du fournisseur MSAL vers le fournisseur MSAL2

Pour migrer une application qui utilise le fournisseur MSAL vers le fournisseur MSAL2 :

  1. Accédez au Portail Azure sur https://portal.azure.com.

  2. Dans le menu, sélectionnez Azure Active Directory.

  3. Dans le menu Azure Active Directory, sélectionnez Inscription des applications.

  4. Sélectionnez l’inscription de l’application que vous utilisez actuellement.

  5. Go to Authentication on the left menu.

  6. Sous Configurations de plateforme, cliquez sur Ajouter une plateforme et sélectionnez Application à page unique.

  7. Supprimez tous les URL de redirection que vous avez actuellement inscrites sous Web, puis ajoutez-les sous application mono-page.

  8. Dans votre code, remplacez MSALProvider par MSAL2Provider.

    Si vous initialisez votre fournisseur dans le code JS/TS, suivez les étapes suivantes :

    Remplacer l’instruction import par mgt-msal-provider

    import {Msal2Provider, PromptType} from '@microsoft/mgt-msal2-provider';
    

    Remplacer l’initialisation de MsalProvider par

    Providers.globalProvider = new Msal2Provider({ 
      clientId: 'REPLACE_WITH_CLIENTID'
      ...
    })
    

    Si vous initialisez le fournisseur au format HTML, remplacez

    <mgt-msal-provider client-id="" ... ></mgt-msal-provider>
    

    avec le

    <mgt-msal2-provider  client-id="" ... ></mgt-msal2-provider>
    

    Pour plus d’informations, voir Initialize dans votre page HTML.