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:
  • login zwingt den Benutzer, anmeldeinformationen bei Anforderung einzugeben.
  • none für keine interaktive Eingabeaufforderung
  • select_account , um den Benutzer an eine Kontoauswahl zu senden
  • consent , um den Benutzer an ein OAuth-Zustimmungsdialogfeld zu senden
Weitere Informationen zur Eingabeaufforderung finden Sie im Artikel zum Eingabeaufforderungsverhalten in MSAL.js Artikel. Optional.

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.