MSAL-Anbieter
Der MSAL-Anbieter verwendet msal.js , um Benutzer anzumelden und Token für die Verwendung mit Microsoft Graph abzurufen.
Weitere Informationen finden Sie unter Anbieter.
Unterschied zwischen MSAL2-Anbieter und MSAL-Anbieter
Obwohl die Verwendung ähnlich ist, basieren MSAL-Anbieter und MSAL2-Anbieter auf verschiedenen OAuth-Flows. Der MSAL-Anbieter basiert auf msal.js, die den OAuth2.0-Flow für implizite Genehmigungen implementiert. Der MSAL2-Anbieter basiert auf msal-browser, der den OAuth 2.0-Autorisierungscodeflow mit PKCE implementiert. Da der Autorisierungscodefluss für Webanwendungen als sicherer gilt als der Flow für implizite Genehmigungen, empfehlen wir die Verwendung des MSAL2-Anbieters gegenüber dem MSAL-Anbieter. Ausführliche Informationen zu Sicherheitsproblemen im Zusammenhang mit dem Flow für implizite Genehmigungen finden Sie unter Nachteile des impliziten Flusses.
Alle neuen Anwendungen sollten nach Möglichkeit den MSAL2-Anbieter verwenden. Migrationsinformationen finden Sie unter MSAL2-Anbieter.
Erste Schritte
Sie können den MSAL-Anbieter in HTML oder JavaScript initialisieren.
Initialisieren auf der HTML-Seite
Das Initialisieren des MSAL-Anbieters in HTML ist die einfachste Möglichkeit, einen neuen Anbieter zu erstellen. Verwenden Sie die mgt-msal-provider
-Komponente, um die Client-ID und andere Eigenschaften festzulegen. Dadurch wird eine neue UserAgentApplication
Instanz erstellt, die für die gesamte Authentifizierung und das Abrufen von Token verwendet wird.
<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 | Beschreibung |
---|---|
Client-ID | Zeichenfolgenclient-ID (siehe Erstellen einer App-/Client-ID). Erforderlich. |
login-type | Enumeration zwischen redirect und popup - Standardwert ist redirect . Optional. |
Bereiche | Durch Trennzeichen getrennte Zeichenfolgen für Bereiche, in die der Benutzer bei der Anmeldung zustimmen muss. Optional. |
Behörde | Autoritätszeichenfolge: Der Standardwert ist die allgemeine Autorität. Verwenden Sie für Einzelmandanten-Apps Ihre Mandanten-ID oder Ihren Mandantennamen. Zum Beispiel https://login.microsoftonline.com/[your-tenant-name].onmicrosoft.com oder https://login.microsoftonline.com/[your-tenant-id] . Optional. |
redirect-URI | Umleitungs-URI-Zeichenfolge: Standardmäßig wird der aktuelle Fenster-URI verwendet. Optional. |
abhängig von | Elementauswahlzeichenfolge einer anderen Anbieterkomponente mit höherer Priorität. Optional. |
domain-hint | Abfragezeichenfolge des Domänenspeicherorts für die Weiterleitung der Anmeldung. Optional. |
Ansage | Auswahl für den Typ der Benutzerinteraktion, die für die Anmeldung erforderlich ist. Gültige Optionen sind:
|
Initialisieren in JavaScript
Sie können weitere Optionen bereitstellen, indem Sie den Anbieter in JavaScript initialisieren.
import {Providers, MsalProvider} from '@microsoft/mgt'
import {UserAgentApplication} from "msal";
Providers.globalProvider = new MsalProvider(config: MsalConfig);
Sie können den MsalProvider
Konstruktorparameter auf zwei Arten konfigurieren, wie in den folgenden Abschnitten beschrieben.
Geben Sie ein clientId
an, um eine neue zu erstellen. UserAgentApplication
Diese Option ist sinnvoll, wenn Graph Toolkit für die gesamte Authentifizierung in Ihrer Anwendung verantwortlich ist.
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"
}
Übergeben Sie ein vorhandenes UserAgentApplication
in der userAgentApplication
-Eigenschaft.
Verwenden Sie dies, wenn Ihre App MSAL-Funktionen verwendet, die über die funktionen hinausgeht, die durch die MsalProvider
Features und andere Microsoft Graph Toolkits verfügbar gemacht werden. Dies UserAgentApplication
ist besonders geeignet, wenn ein Framework automatisch instanziiert und für Sie verfügbar macht, z. B. bei Verwendung von msal-angular.
Achten Sie darauf, die Möglichkeiten für Kollisionen zu verstehen, wenn Sie diese Option verwenden. Von Natur aus besteht das Risiko, dass der MsalProvider
den Zustand einer Sitzung ändern kann, z. B. indem der Benutzer sich anmeldet oder zusätzlichen Bereichen zustimmt. Stellen Sie sicher, dass Ihre App und andere Frameworks ordnungsgemäß auf diese Zustandsänderungen reagieren, oder erwägen Sie stattdessen die Verwendung eines benutzerdefinierten Anbieters .
interface MsalConfig {
userAgentApplication: UserAgentApplication;
scopes?: string[];
loginType?: LoginType; // LoginType.Popup or LoginType.Redirect (redirect is default)
loginHint?: string;
}
Weitere Informationen zu MSAL.js und weitere Optionen, die Sie beim Initialisieren der MSAL-Bibliothek verwenden können, finden Sie in der MSAL-Dokumentation.
Erstellen einer App-/Client-ID
Ausführliche Informationen zum Registrieren einer App und zum Abrufen einer Client-ID finden Sie unter Erstellen einer Azure Active Directory-App.