احراز هویت MCP | Layatanahi
dr

Mcp

احراز هویت MCP#

کلاینت‌های MCP با همان اعتبارنامه یکپارچه‌سازی تجارت که در API HTTP به کار می‌رود احراز هویت می‌کنند. هیچ کلید MCP جداگانه، هیچ جریان OAuth و هیچ حساب هر-کلاینت وجود ندارد.

این اعتبارنامه تعیین‌کننده تجارت، کارمند، صلاحیت‌ها، شعبه‌ها و سهمیه است.

ساختن اعتبارنامه برای MCP#

  1. تنظیمات > یکپارچه‌سازی‌های API را باز کنید.
  2. یک اعتبارنامه با نام کلاینت بسازید، برای مثال Claude Desktop.
  3. صلاحیت‌هایی را که دستیار نیاز دارد انتخاب کنید. برای پرسش‌های عمومی تجارت، هر پنج صلاحیت خواندن را انتخاب کنید.
  4. کل تجارت را برگزینید، یا به شعبه‌ای که دستیار باید ببیند محدودش کنید.
  5. سرّ را در پیکربندی کلاینت کپی کنید.

کلاینتی که فقط باید به پرسش‌های فروش پاسخ دهد، تنها sales:read لازم دارد. اعطای همه‌چیز «برای احتیاط» دایره‌ی آنچه دستیار می‌تواند فاش کند را گسترش می‌دهد.

پیکربندی کلاینت#

تنظیممقدار
URLhttps://<app-host>/mcp/business
سرصفحهAuthorization: Bearer <token>
سرصفحهAccept: application/json, text/event-stream
سرصفحهContent-Type: application/json
سرصفحه اختیاریX-Business-Branch: <branch-id>

توکن را در field سرّ کلاینت یا یک متغیر محیطی نگهداری کنید. آن را در پرامپت، پیام چت یا فایل پیکربندی مشترک نچسبانید.

نگاشت صلاحیت‌ها#

صلاحیتابزارمجوز صفحه لازم
products:readproductsinventory.products.read
stock:readstockinventory.branches.read
purchases:readpurchasespurchase.purchases.read
orders:readorderssale.orders.read
sales:readsalessale.sales.read

فراخوانی ابزار زمانی شکست می‌خورد که صلاحیت روی اعتبارنامه نباشد یا نقش زنده‌ی کارمند دیگر آن صفحه را ندهد. هر دو بررسی لازم‌اند، دقیقاً مانند API HTTP.

بازبررسی زنده#

هر درخواست MCP این موارد را دوباره می‌سنجد:

  1. اعتبارنامه فعال است و به کاربر همان توکن تعلق دارد.
  2. تجارت وجود دارد و فعال است.
  3. کاربر هنوز عضویت کارمندی در تجارت دارد.
  4. کارمند هنوز مجوز صفحه‌ی پشت صلاحیت ابزار را دارد.
  5. شعبه درخواست‌شده داخل دامنه اعتبارنامه است.

اگر کارمند اخراج، منتقل یا تنزل یابد، فراخوانی بعدی ابزار شکست می‌خورد. فراتر از خودِ اعتبارنامه، چیزی برای لغو دستی وجود ندارد.

دامنه شعبه در گفت‌وگوها#

دامنه اعتبارنامهرفتار
کل تجارتمی‌تواند هر شعبه فعال را بخواند؛ برای باریک‌تر کردن branch_id می‌فرستد
یک شعبه اعطاشدهشعبه خودکار حل می‌شود؛ branch_id اختیاری است
چند شعبه اعطاشدهbranch_id یا X-Business-Branch لازم است

زیرا ممکن است دستیار درباره شعبه‌ای بپرسد که شما منظورتان نبوده، سرصفحه را روی شعبه‌ای که کلاینت باید استفاده کند، ثابت کنید. این دامنه را صریح می‌سازد و از 422 branch_required در میان یک گفت‌وگو جلوگیری می‌کند.

لغو و گردش#

اقداماثر بر کلاینت MCP
گردش سرّکلاینت باید با سرّ تازه به‌روز شود؛ توکن کهنه از کار می‌ایستد
لغوهر فراخوانی ابزار با 401 شکست می‌خورد تا اعتبارنامه تازه پیکربندی شود
تغییر صلاحیتابزارهای متأثر شکست می‌خورند؛ دیگران به کار ادامه می‌دهند
تغییر دامنه شعبهفراخوانی‌های بیرون از دامنه با 403 شکست می‌خورند

گردش‌ها را در یک پنجره نگهداری برنامه‌ریزی کنید؛ هیچ دوره بخشایشی که هر دو سرّ در آن کار کنند وجود ندارد.

رهنمودهای امنیتی#

  • برای هر کلاینت هوش مصنوعی یک اعتبارنامه مستقل استفاده کنید، نه اشتراکی.
  • تنها صلاحیت‌های لازم برای هدف دستیار را اعطا کنید.
  • آن را به کوچک‌ترین مجموعه شعبه‌ای که معقول است محدود کنید.
  • توکن را در مخزن اسرار کلاینت نگه دارید، نه در قالب پرامپت.
  • last_used_at و رویدادهای درخواست را منظم مرور کنید.
  • هنگام بازنشسته شدن یک لپ‌تاپ، کانتینر یا پروفایل کلاینت، اعتبارنامه را لغو کنید.

صفحات مرتبط#