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 Management'taki MCP sunucusu desteğiyle, MCP sunucularına ve araçlarına erişimi kullanıma açabilir 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 üst bilgide Ocp-Apim-Subscription-Key geçirilen bir API Management abonelik anahtarıyla korunuyorsa, MCP istemcileri gelen isteklerde anahtarı sunabilir ve MCP sunucusu anahtarı doğrulayabilir. Örneğin, Visual Studio Code'da, istek üst bilgilerinde abonelik anahtarını gerektirmek için MCP sunucu yapılandırmasına 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ı
Visual Studio Code çalışma alanı ayarlarını veya güvenli girişleri kullanarak abonelik anahtarlarını güvenli bir şekilde yönetin.
Belirteç tabanlı kimlik doğrulaması (Microsoft Entra Kimliği ile OAuth 2.1)
MCP istemcileri, Microsoft Entra ID tarafından verilen ve API Management tarafından doğrulanan OAuth jetonlarını veya JWT'lerini bir Authorization üst bilgi kullanarak sunabilir.
Ö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 üst bilgileri otomatik olarak MCP aracı çağrılarına iletilir (belirli dışlamalarla birlikte), yönlendirme, bağlam veya kimlik doğrulaması için üst bilgileri kullanan aşağı akış API'leriyle tümleştirmeyi basitleştirir.
Gelen istekleri doğrulamak için Authorization üst bilgisinin açık bir şekilde iletilmesi gerekiyorsa, aşağıdaki yaklaşımlardan birini kullanabilirsiniz:
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. Ayrıntılar için Giden erişimin güvenliğine ilişkin bilgi bölümüne bakın.
Daha fazla gelen yetkilendirme seçeneği ve örneği için bkz:
Korumalı Kaynak Meta Verileri (PRM) örneğiyle MCP sunucusu yetkilendirmesi
Azure API Management kullanarak Uzak MCP Sunucularının Güvenliğini Sağlama (Deneysel)
Giden erişimin güvence altına alınması
MCP sunucu araçları tarafından yapılan arka uç API istekleri için OAuth 2.0 belirteçlerini güvenli bir şekilde eklemek için API Management'ın kimlik bilgisi yöneticisini kullanın.
OAuth 2 tabanlı giden erişimi yapılandırma 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.