پرش به محتوا
شروع رایگان

چرا اکثر سرورهای MCP روی ERP ابری چندمستأجره خراب می‌شوند؟

مشکل «هیچ دیتابیسی انتخاب نشده» و راه‌حل تشخیص فضای کاری از روی نام میزبان

اگر یک سرور MCP عمومی را روی یک نصب SaaS چندمستأجره‌ی اودو امتحان کرده باشید، احتمالاً یک خطای آشنا دیده‌اید: «هیچ دیتابیسی انتخاب نشده» یا مشابه آن. این تصادفی نیست — اکثر سرورهای MCP موجود برای یک نصب تک‌دیتابیسی نوشته شده‌اند و فرض می‌کنند همیشه دقیقاً یک اودو با یک دیتابیس پاسخ می‌دهد.

ریشه‌ی مشکل چیست؟

نصب چندمستأجره‌ی اودو (dbfilter) دیتابیس را از روی نام میزبان درخواست تشخیص می‌دهد — company-a.example.com به دیتابیس «company-a» می‌رود، company-b.example.com به دیتابیس دیگری. اگر سرور MCP این را نداند و فقط فرض کند «همیشه یک دیتابیس هست»، وقتی هدر درست نرسد یا میزبان چندپهلو باشد، اودو نمی‌داند کدام دیتابیس را انتخاب کند و خطا می‌دهد — یا بدتر، دیتابیس اشتباه را انتخاب می‌کند.

راه‌حل درست: تشخیص از روی هدر forwarded host

سرور MCP باید همان منطقی را دنبال کند که خودِ اودو برای dbfilter استفاده می‌کند: نام میزبان واقعی درخواست (از هدر X-Forwarded-Host پشت یک reverse proxy) را بخواند و فضای کاری را از روی آن تعیین کند — نه فرض یک دیتابیس ثابت. اگر پروکسی هدر را عوض کند یا هدر گم شود، این باید بلافاصله در پاسخ خطا مشخص باشد، نه یک شکست ساکت.

وقتی درخواست به نود اشتباه می‌رسد چه باید بشود؟

در یک معماری چندنودی، ممکن است یک کلاینت درخواستی بفرستد که به نودی می‌رسد که دیتابیس درخواستی را سرو نمی‌کند. رفتار درست، یک کد وضعیت مشخص (مثلاً ۴۲۱ Misdirected Request) همراه با نشانی درست فضای کاری در پیام خطاست — نه پاسخ خالی که به‌اشتباه «چیزی پیدا نشد» تعبیر شود، و قطعاً نه سرو کردن دیتابیس اشتباه.

چرا کلید هیچ‌وقت نباید بتواند دیتابیس دیگری را آدرس بدهد

یک اصل امنیتی مکمل: حتی اگر کلاینت صریح یک نام دیتابیس در مسیر درخواست بفرستد، سرور باید آن را فقط به‌عنوان یک بررسی در نظر بگیرد نه یک سوییچ — اگر دیتابیسی که نود واقعاً سرو می‌کند با آنچه کلاینت خواسته فرق داشت، درخواست رد می‌شود، نه اینکه سرور تلاش کند به دیتابیس دیگری وصل شود. این جلوی نشت داده‌ی یک مستأجر به کلید مستأجر دیگر را می‌گیرد.

روی ابرک این چطور حل شده؟

سرور MCP ابرک از ابتدا برای چندمستأجری طراحی شده: فضای کاری از نام میزبان تشخیص داده می‌شود، مسیر صریح /mcp/<دیتابیس> فقط برای بررسی است نه سوییچ، و هر خطای مسیریابی نشانی درست را در پاسخ اعلام می‌کند. جزئیات فنی کامل و نحوه‌ی اتصال در صفحه‌ی اپ سرور MCP و آموزش اتصال آمده است.

۷ کاربرد واقعی سرور MCP روی اودو — از گزارش لحظه‌ای تا ثبت خودکار سفارش

ابرک را رایگان امتحان کنید

شروع رایگان