Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A(z) Model Context Protocol (MCP)-alkalmazások fejlesztésekor az MSAL Node úgy konfigurálható, hogy kikényszerítse az erőforrás-hatókörhöz kötött tokenek lekérését és gyorsítótárazását. Ha az MCP mód engedélyezve van, az MSAL minden jogkivonat-kérésnek tartalmaznia kell egy paramétert resource , és gyorsítótárazza az erőforrás által kulcsolt hozzáférési jogkivonatokat.
Note
Az MCP-folyamatok csak nyilvános ügyfélalkalmazásokhoz érhetők el.
Prerequisites
- Alkalmazás regisztrálása a Microsoft identitásplatformon
- Nyilvános ügyfélként konfigurált alkalmazás (például asztali vagy CLI-alkalmazás)
-
@azure/msal-nodea projektben telepített v5-ös vagy újabb verzió
MCP mód engedélyezése
Állítsa be a(z) auth konfigurációban a(z) isMcp: true elemet a(z) PublicClientApplication létrehozásakor:
const config = {
auth: {
clientId: "your-client-id",
authority: "https://login.microsoftonline.com/common",
isMcp: true,
},
};
const pca = new msal.PublicClientApplication(config);
Az erőforrásparaméter belefoglalása
Ha a(z) isMcp be van állítva true, minden tokenkérésnek tartalmaznia kell egy resource paramétert. A kihagyás hibát jelez resource_parameter_required .
const tokenRequest = {
scopes: ["User.Read"],
redirectUri: "http://localhost:3000/redirect",
resource: "https://example.microsoft.com",
code: authorizationCode,
};
const response = await pca.acquireTokenByCode(tokenRequest);
Important
Állítsa be a resource paramétert közvetlenül a kérelemobjektumon.
Ne adja át extraQueryParameters használatával a(z) resource tulajdonsággal egy időben – ellenkező esetben misplaced_resource_parameter hiba történik.
Az alábbi példa a paraméter beállításának helyes és helytelen módjait resource mutatja be:
// Correct — resource on the request object
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" },
};
Erőforrásonkénti gyorsítótárazás
isMcp engedélyezése esetén a hozzáférési tokenek a hozzájuk társított erőforrással együtt gyorsítótárba kerülnek. Ez hatással van a csendes jogkivonatok beszerzésére:
- Gyorsítótár-találat: Ha egy gyorsítótárazott hozzáférési jogkivonat létezik ugyanahhoz a hatókörhöz és erőforráshoz, a gyorsítótárból kapja vissza.
- Gyorsítótár-hiba: Ha a kért erőforrás nem egyezik a gyorsítótárazott jogkivonattal, az MSAL visszaesik a hálózatra, hogy új jogkivonatot szerezzen be a kért erőforráshoz.
const msalTokenCache = pca.getTokenCache();
const accounts = await msalTokenCache.getAllAccounts();
// First request — acquires token from network
const token1 = await pca.acquireTokenSilent({
scopes: ["User.Read"],
resource: "https://resource-a.microsoft.com",
account: accounts[0],
});
// Same resource — returns cached token
const token2 = await pca.acquireTokenSilent({
scopes: ["User.Read"],
resource: "https://resource-a.microsoft.com",
account: accounts[0],
});
// Different resource — falls back to network
const token3 = await pca.acquireTokenSilent({
scopes: ["User.Read"],
resource: "https://resource-b.microsoft.com",
account: accounts[0],
});
Hibakezelés
Két hiba jellemző az MCP-folyamatokra:
| Hibakód | Description |
|---|---|
resource_parameter_required |
A(z) isMcp értéke true, de a kérés nem tartalmaz resource paramétert. |
misplaced_resource_parameter |
A resource mind a resource tulajdonságban, mind a extraQueryParameters elemben megtalálható volt. Csak egyet használjon. |
Mindkét hiba ClientAuthError formában dobódik. További információkért lásd az MSAL-csomópont gyakori kérdéseket.
Samples
- MCP-folyamatok mintája – Az MCP-t engedélyezési kóddal és csendes folyamatokkal bemutató expressz alkalmazás.