Megosztás a következőn keresztül:


Az MCP-kiszolgálók biztonságos elérése az API Managementben

A KÖVETKEZŐKRE VONATKOZIK: Fejlesztő | Alapcsomag | Alapcsomag v2 | Standard | Standard v2 | Prémium | Prémium v2

Az API Management MCP-kiszolgálói támogatásával közzéteheti és szabályozhatja az MCP-kiszolgálókhoz és eszközeikhez való hozzáférést. Ez a cikk bemutatja, hogyan lehet biztonságossá tenni az API Managementben felügyelt MCP-kiszolgálókhoz való hozzáférést, beleértve a felügyelt REST API-kból közzétett MCP-kiszolgálókat és az API Managementen kívül üzemeltetett meglévő MCP-kiszolgálókat is.

Az MCP-kiszolgálóhoz (MCP-ügyféltől az API Managementhez) és a kimenő hozzáféréshez (az API Managementből az MCP-kiszolgálóhoz) irányuló bejövő hozzáférést is biztonságossá teheti.

Biztonságos bejövő hozzáférés

Kulcsalapú hitelesítés

Ha az MCP-kiszolgálót egy fejlécben Ocp-Apim-Subscription-Key átadott API Management-előfizetési kulccsal védik, az MCP-ügyfelek be tudják mutatni a kulcsot a bejövő kérelmekben, és az MCP-kiszolgáló érvényesítheti a kulcsot. A Visual Studio Code-ban például hozzáadhat egy szakaszt headers az MCP-kiszolgáló konfigurációjába, hogy megkövetelje az előfizetési kulcsot a kérelem fejléceiben:

{
  "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>"
  }
}

Megjegyzés:

Az előfizetési kulcsok biztonságos kezelése Visual Studio Code-munkaterület beállításaival vagy biztonságos bemenetekkel.

Jogkivonatalapú hitelesítés (OAuth 2.1 Microsoft Entra-azonosítóval)

Az MCP-ügyfelek a Microsoft Entra ID által kibocsátott OAuth-jogkivonatokat vagy JWT-ket egy Authorization fejléc használatával és az API Management által érvényesítve jeleníthetik meg.

Használja például az validate-azure-ad-token szabályzatot a Microsoft Entra ID-jogkivonatok érvényesítéséhez:

<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>

Jogkivonatok továbbítása a háttérrendszerbe

A kérelemfejléceket a rendszer automatikusan továbbítja (bizonyos kivételekkel) az MCP-eszközök meghívásaihoz, egyszerűsítve az integrálást olyan alárendelt API-kkal, amelyek fejlécekre támaszkodnak az útválasztáshoz, a környezethez vagy a hitelesítéshez.

Ha a fejléc explicit továbbítására van szükség a Authorization bejövő kérések ellenőrzéséhez, az alábbi módszerek egyikét használhatja:

  • Explicit módon definiálja Authorization kötelező fejlécként az API-beállításokban, és továbbítja a fejlécet a Outbound szabályzatban.

    Példa szabályzatrészletre:

    <!-- Forward Authorization header to backend --> 
    <set-header name="Authorization" exists-action="override"> 
        <value>@(context.Request.Headers.GetValueOrDefault("Authorization"))</value> 
    </set-header> 
    
  • Használja az API Management hitelesítőadat-kezelőt és szabályzatokat (get-authorization-context, set-header) a jogkivonat biztonságos továbbításához. További részletekért lásd: Biztonságos kimenő hozzáférés .

További bejövő engedélyezési lehetőségekért és mintákért lásd:

Kimenő hozzáférés biztonságossá tétele

Az API Management hitelesítőadat-kezelőjével biztonságosan injektálhat OAuth 2.0-jogkivonatokat az MCP-kiszolgálóeszközök által küldött háttérBELI API-kérésekhez.

Az OAuth 2-alapú kimenő hozzáférés konfigurálásához szükséges lépések

1. lépés: Alkalmazás regisztrálása az identitásszolgáltatóban.

2. lépés: Hozzon létre egy hitelesítőadat-szolgáltatót az identitásszolgáltatóhoz társított API Managementben.

3. lépés: Konfigurálja a hitelesítőadat-kezelőn belüli kapcsolatokat.

4. lépés: API Management-szabályzatok alkalmazásával dinamikusan lekérhet és csatolhat hitelesítő adatokat.

Az alábbi szabályzat például lekéri a hozzáférési jogkivonatot a hitelesítőadat-kezelőtől, és beállítja azt a Authorization kimenő kérés fejlécében:

<!-- 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>

A hitelesítő adatok kezelőjében létrehozott hitelesítő adatok használatával történő példa-háttérrendszer meghívásához részletes útmutatót a Hitelesítőadat-kezelő konfigurálása – GitHub című témakörben talál.