مع اكتساب بروتوكول سياق النموذج (MCP) زخماً كمعيار لربط نماذج الذكاء الاصطناعي بمصادر البيانات الخارجية، فإن التحول المعماري نحو النشر عن بُعد ومتعدد المستأجرين يطرح تحديات أمنية كبيرة. عندما يشارك عدة مستأجرين البنية التحتية مع الوصول إلى سياقات بيانات معزولة، لم تعد الأمنيات القائمة على الحدود الخارجية كافية. يستكشف هذا المنشور كيفية تنفيذ نموذج أمني للثقة الصفرية مصمم خصيصاً لاتصالات MCP عن بُعد.
نموذج الثقة الصفرية لـ MCP
يعمل نموذج الثقة الصفرية على مبدأ "لا تثق أبداً، تحقق دائماً". في سياق MCP، يعني هذا أن كل طلب موجه إلى خادم سياق النموذج (MCS) يجب أن يكون مصادقاً عليه، ومفوضاً، ومشفراً، بغض النظر عن مصدره. وعلى عكس الخدمات المصغرة الداخلية التي قد تعتمد على القرب الشبكي للثقة، فإن عملاء MCP عن بُعد يعملون عبر شبكات غير موثوقة. لذلك، يجب أن يحدث التحقق من الهوية في كل نقلة.
بالنسبة للبيئات متعددة المستأجرين، هذا يعني أن الخادم يجب أن يعزل سياقات المستأجرين بدقة. حتى إذا قدم العميل بيانات اعتماد صالحة، يجب على الخادم التأكد من أن العميل لديه إذن للوصول فقط إلى موارد MCP المحددة المرتبطة بمعرف المستأجر الخاص به. يمنع هذا الحركة الجانبية وتسرب البيانات بين المستأجرين.
تنفيذ المصادقة والصلاحيات الصارمة
لتحقيق الثقة الصفرية، يجب عليك استبدال مفاتيح API البسيطة بمزودي هوية قويين. يُعد OAuth 2.0 وOpenID Connect (OIDC) المعايير الصناعية لهذه الحالة الاستخدام. يجب على كل عميل MCP الحصول على رمز JWT (رمز ويب JSON) قصير العمر من مزود هوية مركزي. يقوم خادم MCP بعد ذلك بالتحقق من هذا الرمز لكل طلب على حدة.
ومن الأهمية بمكان أن يحتوي رمز JWT على مطالبات محددة للمستأجر. يتيح ذلك للخادم توجيه الطلبات ديناميكياً وفرض ضوابط الوصول بناءً على هوية المستأجر المضمنة في الرمز، بدلاً من ترميز الصلاحيات بشكل ثابت.
إليك مثالاً مفهوماً لكيفية قيام خادم MCP بالتحقق من رمز JWT واستخراج سياق المستأجر قبل معالجة طلب المورد:
const jwt = require('jsonwebtoken');
const SECRET_KEY = process.env.MCP_SIGNING_KEY;
async function validateMCPRequest(req, res, next) {
const token = req.headers.authorization?.split(' ')[1];
if (!token) {
return res.status(401).json({ error: 'No token provided' });
}
try {
// Verify signature and expiration
const decoded = jwt.verify(token, SECRET_KEY);
// Extract tenant ID and user role
const tenantId = decoded.tenant_id;
const role = decoded.role;
// Enforce multi-tenant isolation
if (!tenantId) {
return res.status(403).json({ error: 'Invalid tenant context' });
}
// Attach security context to the request object
req.securityContext = { tenantId, role };
next();
} catch (error) {
return res.status(403).json({ error: 'Invalid or expired token' });
}
}
في هذا الجزء البرمجي، تتحقق الوسيطة من الرمز وتضمن وجود `tenant_id` صالح. إذا كان سياق المستأجر مفقوداً، يتم رفض الطلب فوراً، مما يفرض سياسة الثقة الصفرية على مستوى البوابة.
عزل البيانات وتقييد نطاق الموارد
المصادقة هي مجرد الخطوة الأولى. بمجرد مصادقة العميل، يجب على خادم MCP التأكد من أن الموارد المعروضة (مثل قواعد البيانات، وأنظمة الملفات، أو واجهات برمجة التطبيقات) مقيدة بدقة بالمستأجر المصادق عليه.
نمط فعال هو استخدام طبقة تعيين الموارد. بدلاً من عرض المسارات الخام، يجب على خادم MCP حل الأسماء المنطقية للموارد إلى مواقع فيزيائية محددة للمستأجر. على سبيل المثال، يجب حل طلب `/documents/reports` إلى `/tenants/{tenant_id}/documents/reports`. يضمن هذا التجريد أنه حتى إذا قام المطور بإعداد التوجيه بشكل خاطئ، تظل البيانات الأساسية معزولة.
علاوة على ذلك، فكر في تنفيذ تحديد معدل الطلبات وإدارة الحصص لكل مستأجر لمنع هجمات حجب الخدمة من مستأجر واحد تؤثر على الآخرين. هذا جانب تشغيلي حاسم لأمن تعدد المستأجرين يكمل إطار الثقة الصفرية.
الخاتمة
يتطلب تنفيذ الأمن القائم على الثقة الصفرية لاتصالات MCP عن بُعد في بيئات متعددة المستأجرين تحولاً في العقلية من الدفاع القائم على الحدود إلى الأمن المتمحور حول الهوية. من خلال الاستفادة من آليات مصادقة قوية مثل رموز JWT، وفرض العزل الصارم للمستأجرين في منطق التفويض، وتجريد الوصول إلى الموارد، يمكن للمطورين بناء خوادم MCP آمنة وقابلة للتوسع وموثوقة. ومع نضج نظام MCP البيئي، سيظل الالتزام بهذه المبادئ ضرورياً للحفاظ على سلامة البيانات وثقة العملاء في البنى التحتية المشتركة للذكاء الاصطناعي.