Fournisseur MSAL

Le fournisseur MSAL utilise msal.js 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 le fournisseur MSAL2 plutôt que le fournisseur MSAL. 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. Pour plus d’informations sur la migration, voir Fournisseur MSAL2.

Prise en main

Vous pouvez initialiser le fournisseur MSAL en HTML ou JavaScript.

Initialiser dans votre page HTML

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

<mgt-msal-provider client-id="<YOUR_CLIENT_ID>"
                   login-type="redirect/popup"
                   scopes="user.read,people.read"
                   redirect-uri="https://my.redirect/uri"
                   authority=""
                   domainHint="mydomain.com"
                   prompt="consent"></mgt-msal-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.
dépend de Chaîne de sélecteur d’élément d’un autre composant fournisseur de priorité supérieure. Facultatif.
domain-hint Chaîne de requête de l’emplacement de domaine pour l’expérience de la signature de forwarding. Facultatif.
Invite Sélection du type d’interaction utilisateur requis pour la connexion. Les options valides sont les suivantes :
  • login force l’utilisateur à entrer des informations d’identification sur demande
  • none sans invite interactive
  • select_account pour envoyer l’utilisateur à un s picker de compte
  • consent pour envoyer l’utilisateur à une boîte de dialogue de consentement OAuth
Pour plus d’informations sur les invites, voir le comportement de l’invite dans MSAL.js'article . Facultatif.

Initialiser dans JavaScript

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

import {Providers, MsalProvider} from '@microsoft/mgt'
import {UserAgentApplication} from "msal";

Providers.globalProvider = new MsalProvider(config: MsalConfig);

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

Fournir un pour clientId créer une nouvelle UserAgentApplication

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

interface MsalConfig {
  clientId: string;
  scopes?: string[];
  authority?: string;
  redirectUri?: string;
  loginType?: LoginType; // LoginType.Popup or LoginType.Redirect (redirect is default)
  loginHint?: string
  options?: Configuration; // msal js Configuration object
  domainHint?: string;
  prompt?: string; // "login", "none", "select_account", "consent"
}

Passez une valeur existante UserAgentApplication dans la userAgentApplication propriété.

Utilisez cette fonctionnalité lorsque votre application utilise des fonctionnalités MSAL MsalProvider 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 UserAgentApplication instante et expose automatiquement une infrastructure pour vous, par exemple, lors de l’utilisation de msal-angular.

N’oubliez pas de comprendre les possibilités de collisions lors de l’utilisation de cette option. De par sa nature même, MsalProvider il existe un risque que l’utilisateur puisse modifier l’état d’une session, par exemple en ayant l’utilisateur se connectant ou en consentant à des é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 MsalConfig {
  userAgentApplication: UserAgentApplication;
  scopes?: string[];
  loginType?: LoginType; // LoginType.Popup or LoginType.Redirect (redirect is default)
  loginHint?: string;
}

Pour en savoir plus sur MSAL.js options supplémentaires que vous pouvez utiliser lors de l’initialisation de la bibliothèque MSAL, consultez la documentation MSAL.

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.