Fournisseur MSAL
Le fournisseur MSAL utilise msal.js pour connecter les utilisateurs et acquérir des jetons à utiliser avec Microsoft Graph.
Pour en savoir plus, consultez 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 flux d’octroi implicite OAuth2.0. Le fournisseur MSAL2 repose sur msal-browser, qui implémente le flux de code d’autorisation OAuth 2.0 avec PKCE. Étant donné que le flux de code d’autorisation est considéré comme plus sécurisé que le flux d’octroi implicite pour les applications web, nous vous recommandons d’utiliser le fournisseur MSAL2 par rapport au fournisseur MSAL. Pour plus d’informations sur les problèmes de sécurité liés au flux d’octroi implicite, consultez Inconvénients du flux implicite.
Toutes les nouvelles applications doivent utiliser le fournisseur MSAL2 dans la mesure du possible. Pour plus d’informations sur la migration, consultez 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 nouveau 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 | Énumération entre redirect et popup - la valeur par défaut est redirect . Facultatif. |
scopes | Chaînes séparées par des virgules pour les étendues que l’utilisateur doit donner lors de la connexion. Facultatif. |
Autorité | Chaîne d’autorité : la valeur par défaut est l’autorité commune. Pour les applications monolocataires, utilisez votre ID de locataire ou votre nom de locataire. 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 active 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 du domaine pour le transfert de l’expérience de connexion. Facultatif. |
Invite | Sélection du type d’interaction utilisateur requise pour la connexion. Les options valides sont les suivantes :
|
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 de MsalProvider
constructeur de deux façons, comme décrit dans les sections suivantes.
Fournir un clientId
pour créer un nouveau UserAgentApplication
Cette option est logique lorsque le Kit de ressources Graph 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 un existant UserAgentApplication
dans la userAgentApplication
propriété .
Utilisez-la lorsque votre application utilise la fonctionnalité MSAL au-delà de ce qui est exposé par et d’autres fonctionnalités du MsalProvider
Kit de ressources Microsoft Graph. Cela est particulièrement approprié si une infrastructure instancie et expose automatiquement un UserAgentApplication
pour vous, par exemple, lors de l’utilisation de msal-angular.
Veillez à comprendre les possibilités de collisions lors de l’utilisation de cette option. Par sa nature même, il existe un risque que le MsalProvider
puisse changer l’état d’une session, par exemple en demandant à l’utilisateur de se connecter ou de donner son consentement à des étendues supplémentaires. Assurez-vous que votre application et d’autres infrastructures répondent correctement à ces changements d’état, ou envisagez d’utiliser un fournisseur personnalisé à la place.
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 et pour connaître les 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’obtention d’un ID client, consultez Créer une application Azure Active Directory.