الوصول الآمن إلى خوادم MCP في إدارة واجهة برمجة التطبيقات

ينطبق على: المطور | أساسي | الإصدار 2 الأساسي | قياسي | الإصدار 2 القياسي | Premium | Premium v2

باستخدام دعم خوادم MCP في إدارة واجهات برمجة التطبيقات، يمكنك كشف وتنظيم الوصول إلى خوادم MCP وأدواتها وتنظيمها. توضح هذه المقالة كيفية تأمين الوصول إلى خوادم MCP المدارة في إدارة واجهة برمجة التطبيقات، بما في ذلك كل من خوادم MCP المكشوفة من واجهات برمجة تطبيقات REST المدارة وخوادم MCP الحالية المستضافة خارج إدارة واجهة برمجة التطبيقات.

يمكنك تأمين الوصول الوارد إلى خادم MCP أو كليهما (من عميل MCP إلى إدارة واجهة برمجة التطبيقات) والوصول الصادر (من إدارة واجهة برمجة التطبيقات إلى خادم MCP).

الوصول الوارد الآمن

المصادقة المستندة إلى المفتاح

إذا كان خادم MCP محميا بمفتاح اشتراك إدارة API يمرر في الرأس Ocp-Apim-Subscription-Key ، يمكن لعملاء MCP عرض المفتاح في الطلبات الواردة، وتقوم إدارة API بالتحقق من المفتاح. على سبيل المثال، في تعليمة Visual Studio برمجية، يمكنك إضافة قسم headers إلى تكوين خادم MCP لتضمين مفتاح الاشتراك في رؤوس الطلبات:

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

ملاحظه

إدارة مفاتيح الاشتراك بأمان باستخدام إعدادات مساحة العمل في تعليمة Visual Studio برمجية أو المدخلات الآمنة.

المصادقة المستندة إلى الرمز المميز (OAuth 2.1 مع معرف Microsoft Entra)

يمكن لعملاء MCP عرض رموز OAuth أو JWTs الصادرة عن Microsoft Entra ID باستخدام Authorization رأس وتم التحقق منه من قبل إدارة واجهات برمجة التطبيقات.

على سبيل المثال، استخدم نهج validate-azure-ad-token للتحقق من صحة الرموز المميزة لمعرف Microsoft Entra:

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

إعادة توجيه الرموز المميزة إلى الواجهة الخلفية

يتم إعادة توجيه رؤوس الطلبات تلقائيا (مع بعض الاستثناءات) إلى استدعاءات أدوات MCP. تسهل هذه الميزة التكامل مع واجهات برمجة التطبيقات التي تعتمد على الرؤوس للتوجيه أو السياق أو المصادقة.

إذا كنت بحاجة إلى إعادة توجيه الرأس Authorization بشكل صريح للتحقق من صحة الطلبات الواردة، استخدم أحد الطرق التالية:

  • حدد Authorization بشكل صريح كرأس مطلوب في إعدادات واجهة برمجة التطبيقات وإعادة توجيه الرأس في السياسة Outbound .

    مثال على مقتطف السياسة:

    <!-- Forward Authorization header to backend --> 
    <set-header name="Authorization" exists-action="override"> 
        <value>@(context.Request.Headers.GetValueOrDefault("Authorization"))</value> 
    </set-header> 
    
  • استخدم مدير بيانات اعتماد إدارة واجهة برمجة التطبيقات وسياساته (get-authorization-context، set-header) لإعادة توجيه الرمز المميز بشكل آمن. لمعرفة المزيد، راجع الوصول الآمن للخارج.

لمزيد من خيارات التفويض الوارد والنماذج، راجع:

الوصول الآمن للخارج

استخدم مدير بيانات الاعتماد في إدارة API لحقن رموز OAuth 2.0 بشكل آمن لطلبات واجهة برمجة التطبيقات الخلفية التي تصدرها أدوات خوادم MCP.

خطوات تكوين الوصول الصادر القائم على OAuth 2.0

الخطوة 1: تسجيل تطبيق في موفر الهوية.

الخطوة 2: قم بإنشاء موفر بيانات اعتماد في إدارة واجهة برمجة التطبيقات المرتبط بموفر الهوية.

الخطوة 3: تكوين الاتصالات داخل مدير بيانات الاعتماد.

الخطوة 4: تطبيق نهج إدارة واجهة برمجة التطبيقات لجلب بيانات الاعتماد وإرفاقها ديناميكيا.

على سبيل المثال، يقوم النهج التالي باسترداد رمز وصول مميز من مدير بيانات الاعتماد وتعيينه في Authorization رأس الطلب الصادر:

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

للحصول على دليل تفصيلي لاستدعاء مثال للواجهة الخلفية باستخدام بيانات الاعتماد التي تم إنشاؤها في مدير بيانات الاعتماد، راجع تكوين مدير بيانات الاعتماد - GitHub.