Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Model Bağlam Protokolü (MCP), yapay zeka uygulamalarının dış araçlara, veri kaynaklarına ve hizmetlere güvenli bir şekilde bağlanmasını sağlayan açık bir standarttır. MSAL Browser, tüm belirteç isteklerinin bir resource parametre içermesini ve bu kaynak tarafından anahtarlanan erişim belirteçlerini önbelleğe alma zorunluluğuyla MCP akışlarını destekler.
Note
MCP akışları, PublicClientApplication kullanan standart tarayıcı uygulamaları ve createNestablePublicClientApplication kullanan İç İçe Uygulama Kimlik Doğrulaması (NAA) uygulamaları için desteklenir.
Sunucu tarafı uygulamaları için bkz. MSAL Node MCP akışları.
Prerequisites
- Microsoft kimlik platformuna uygulama kaydetme
-
@azure/msal-browserProjenizde v5 veya üzeri yüklü
MCP'yi etkinleştirme
PublicClientApplication oluştururken, auth yapılandırmasında isMcp: true ayarlayın:
const msalConfig = {
auth: {
clientId: "your-client-id",
authority: "https://login.microsoftonline.com/common",
isMcp: true,
},
};
const pca = new msal.PublicClientApplication(msalConfig);
NAA uygulamaları için ile createNestablePublicClientApplicationaynı yapılandırmayı kullanın:
const pca = await msal.createNestablePublicClientApplication(msalConfig);
Kaynak parametresi
isMcp
true olduğunda, her token isteği must bir resource parametresini içermelidir. Bunu atlamak resource_parameter_required hatasına neden olur.
const tokenRequest = {
scopes: ["User.Read"],
resource: "https://example.microsoft.com",
};
Important
Parametreyi resource doğrudan istek nesnesi üzerinde ayarlayın. Bunu, resource özelliğiyle aynı anda extraQueryParameters veya extraParameters aracılığıyla geçirmeyin; aksi takdirde misplaced_resource_parameter hatası oluşur.
Aşağıdaki örnekte, parametresini ayarlamanın doğru ve yanlış yolları gösterilmektedir resource :
// 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" },
};
Kaynak düzeyinde önbellekleme
Etkinleştirildiğinde isMcp , erişim belirteçleri ilişkili kaynaklarıyla önbelleğe alınır. Bu davranış sessiz belirteç alımını etkiler:
- Önbellek isabeti: Aynı kapsamlar ve kaynak için önbelleğe alınmış bir erişim belirteci varsa, önbellekten döndürülür.
- Önbellek hatası: İstenen kaynak önbelleğe alınmış hiçbir belirteçle eşleşmiyorsa MSAL, istenen kaynak için yeni bir belirteç almak üzere ağa başvurur.
// 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,
});
Hata yönetimi
MCP akışlarına özgü iki hata vardır:
| Hata kodu | Description |
|---|---|
resource_parameter_required |
isMcp, true ancak istek bir resource parametresi içermiyor. |
misplaced_resource_parameter |
Bir resource, hem resource özelliğinde hem de extraQueryParameters veya extraParameters içinde bulundu. Yalnızca bir tane kullanın. |
Her iki hata da ClientAuthError olarak fırlatılır. Daha fazla bilgi için hata belgelerine bakın.