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.
ŞUNLAR IÇIN GEÇERLIDIR: Geliştirici | Temel | Temel v2 | Standart | Standart v2 | Premium | Premium v2
API Yönetimi'nde MCP sunucu desteğini kullanarak, MCP sunucularına ve araçlarına erişimi açığa çıkarabilir ve yönetebilirsiniz. Bu makalede, hem yönetilen REST API'lerinden kullanıma sunulan MCP sunucuları hem de API Management dışında barındırılan mevcut MCP sunucuları da dahil olmak üzere API Management'ta yönetilen MCP sunucularına erişimin nasıl güvenli bir şekilde sağlandığı açıklanır.
MCP sunucusuna gelen erişimi (bir MCP istemcisinden API Management'e) ve giden erişimi (API Management'tan MCP sunucusuna) veya her ikisinin güvenliğini sağlayabilirsiniz.
Gelen erişimin güvenliğini sağlama
Anahtar tabanlı kimlik doğrulaması
MCP sunucusu, başlıkta aktarılan Ocp-Apim-Subscription-Key API Yönetimi abonelik anahtarıyla korunursa, MCP istemcileri gelen isteklerde anahtarı sunabilir ve API Yönetimi anahtarı doğrular. Örneğin, Visual Studio Code'da, MCP sunucu yapılandırmasına abonelik anahtarını istek başlıklarına dahil etmek için bir headers bölüm ekleyebilirsiniz:
{
"name": "My MCP Server",
"type": "remote",
"url": "https://my-api-management-instance.azure-api.net/my-mcp-server",
"transport": "streamable-http",
"headers": {
"Ocp-Apim-Subscription-Key": "<subscription-key>"
}
}
Uyarı
Abonelik anahtarlarını Visual Studio Code çalışma alanı ayarları veya güvenli girdiler kullanarak güvenli şekilde yönetin.
Belirteç tabanlı kimlik doğrulaması (Microsoft Entra Kimliği ile OAuth 2.1)
MCP istemcileri, Microsoft Entra ID tarafından verilen OAuth token'ları veya JWT'leri bir başlık kullanarak Authorization sunabilir ve API Yönetimi tarafından doğrulanabilir.
Örneğin, Microsoft Entra Id belirteçlerini doğrulamak için validate-azure-ad-token ilkesini kullanın:
<validate-azure-ad-token tenant-id="your-entra-tenant-id" header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid.">
<client-application-ids>
<application-id>your-client-application-id</application-id>
</client-application-ids>
</validate-azure-ad-token>
Belirteçleri backend'e iletme
İstek başlıkları otomatik olarak (bazı istisnalarla) MCP araç çağrılarına yönlendirilir. Bu özellik, yönlendirme, bağlam veya kimlik doğrulama için başlıklara dayanan aşağı akış API'leriyle entegrasyonu kolaylaştırır.
Gelen isteklerin doğrulanması için başlığı Authorization açıkça iletmeniz gerekiyorsa, aşağıdaki yaklaşımlardan birini kullanın:
API ayarlarında
Authorizationöğesini gerekli bir üst bilgi olarak açıkça tanımlayın veOutboundpolitikasında üst bilgiyi iletin.Örnek ilke parçacığı:
<!-- Forward Authorization header to backend --> <set-header name="Authorization" exists-action="override"> <value>@(context.Request.Headers.GetValueOrDefault("Authorization"))</value> </set-header>Belirteci güvenli bir şekilde iletmek için API Management kimlik bilgileri yöneticisini ve ilkelerini (
get-authorization-context,set-header) kullanın. Daha fazla bilgi için Güvenli çıkış erişimi bölümüne bakınız.
Daha fazla gelen yetkilendirme seçeneği ve örneği için bkz:
Korumalı Kaynak Meta Verileri (PRM) örneğiyle MCP sunucusu yetkilendirmesi
Laboratuvar: Korumalı kaynak meta verileri (PRM) yetkilendirmesi ile MCP
Azure API Management kullanarak Uzak MCP Sunucularının Güvenliğini Sağlama (Deneysel)
Giden erişimin güvence altına alınması
API Yönetimi'nin kimlik yöneticisini , MCP sunucu araçlarının yaptığı arka uç API talepleri için OAuth 2.0 tokenlarını güvenli bir şekilde enjekte etmek için kullanın.
OAuth 2.0 tabanlı çıkış erişimini yapılandırmak için adımlar
1. Adım: Kimlik sağlayıcısına bir uygulama kaydedin.
2. Adım: API Management'ta kimlik sağlayıcısına bağlı bir kimlik bilgisi sağlayıcısı oluşturun.
Adım 3: Kimlik bilgileri yöneticisi içindeki bağlantıları yapılandırın.
4. Adım: Kimlik bilgilerini dinamik olarak getirmek ve eklemek için API Management ilkeleri uygulayın.
Örneğin, aşağıdaki ilke kimlik bilgisi yöneticisinden bir erişim belirteci alır ve bunu giden isteğin Authorization üst bilgisinde ayarlar:
<!-- Add to inbound policy. -->
<get-authorization-context
provider-id="your-credential-provider-id"
authorization-id="auth-01"
context-variable-name="auth-context"
identity-type="managed"
ignore-error="false" />
<!-- Attach the token to the backend call -->
<set-header name="Authorization" exists-action="override">
<value>@("Bearer " + ((Authorization)context.Variables.GetValueOrDefault("auth-context"))?.AccessToken)</value>
</set-header>
Kimlik bilgisi yöneticisinde oluşturulan kimlik bilgilerini kullanarak örnek bir arka ucu çağırmaya yönelik adım adım kılavuz için bkz. Kimlik bilgisi yöneticisini yapılandırma - GitHub.