Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Model Context Protocol (MCP) ist ein offener Standard, mit dem KI-Anwendungen sicher mit externen Tools, Datenquellen und Diensten verbunden werden können. MSAL Browser unterstützt MCP-Flüsse, indem sichergestellt wird, dass alle Tokenanforderungen einen resource-Parameter enthalten und Zugriffstoken mit dieser Ressource als Schlüssel zwischengespeichert werden.
Note
MCP-Flüsse werden sowohl für Standardbrowseranwendungen mit PublicClientApplication als auch für NAA-Anwendungen (Nested App Authentication) mit createNestablePublicClientApplication unterstützt.
Informationen zu serverseitigen Implementierungen finden Sie unter MSAL Node MCP Flows.
Voraussetzungen
- Registrieren einer Anwendung bei Microsoft Identity Platform
-
@azure/msal-browserv5 oder höher in Ihrem Projekt installiert
Aktivieren von MCP
Legen Sie isMcp: true in der auth-Konfiguration fest, wenn Sie Ihr PublicClientApplication erstellen:
const msalConfig = {
auth: {
clientId: "your-client-id",
authority: "https://login.microsoftonline.com/common",
isMcp: true,
},
};
const pca = new msal.PublicClientApplication(msalConfig);
Verwenden Sie für NAA-Anwendungen dieselbe Konfiguration mit createNestablePublicClientApplication:
const pca = await msal.createNestablePublicClientApplication(msalConfig);
Ressourcenparameter
Wenn isMcp auf true gesetzt ist, muss jede Tokenanforderung den Parameter resource enthalten. Wenn sie weggelassen wird, wird ein resource_parameter_required Fehler ausgelöst.
const tokenRequest = {
scopes: ["User.Read"],
resource: "https://example.microsoft.com",
};
Important
Legen Sie den resource Parameter direkt für das Anforderungsobjekt fest. Übergeben Sie es nicht gleichzeitig über extraQueryParameters oder extraParameters mit der Eigenschaft resource – andernfalls wird ein misplaced_resource_parameter-Fehler ausgelöst.
Das folgende Beispiel zeigt die richtigen und falschen Methoden zum Festlegen des resource Parameters:
// Correct
const request = {
scopes: ["User.Read"],
resource: "https://example.microsoft.com",
};
// Wrong — resource in both locations
const request = {
scopes: ["User.Read"],
resource: "https://example.microsoft.com",
extraQueryParameters: { resource: "https://example.microsoft.com" },
};
Ressourcenbezogenes Caching
Wenn isMcp diese Option aktiviert ist, werden Zugriffstoken mit ihrer zugeordneten Ressource zwischengespeichert. Dieses Verhalten wirkt sich auf die stille Tokenbeschaffung aus:
- Cachetreffer: Wenn ein zwischengespeichertes Zugriffstoken für dieselben Bereiche und Ressourcen vorhanden ist, wird es aus dem Cache zurückgegeben.
- Cachefehler: Wenn die angeforderte Ressource keinem zwischengespeicherten Token entspricht, greift MSAL auf das Netzwerk zurück, um ein neues Token für die angeforderte Ressource abzurufen.
// First request — acquires token from network
const token1 = await pca.acquireTokenSilent({
scopes: ["User.Read"],
resource: "https://resource-a.microsoft.com",
account: account,
});
// Same resource — returns cached token
const token2 = await pca.acquireTokenSilent({
scopes: ["User.Read"],
resource: "https://resource-a.microsoft.com",
account: account,
});
// Different resource — falls back to network
const token3 = await pca.acquireTokenSilent({
scopes: ["User.Read"],
resource: "https://resource-b.microsoft.com",
account: account,
});
Fehlerbehandlung
Zwei Fehler sind für MCP-Flüsse spezifisch:
| Fehlercode | Description |
|---|---|
resource_parameter_required |
isMcp ist true, aber die Anfrage enthält keinen Parameter resource. |
misplaced_resource_parameter |
Ein(e) resource wurde sowohl in der Eigenschaft resource als auch in extraQueryParameters oder extraParameters gefunden. Verwenden Sie nur eine. |
Beide Fehler werden als ClientAuthError ausgegeben. Weitere Informationen finden Sie in der Fehlerdokumentation.