AI এজেন্টদের সীমানা প্রয়োজন, মাস্টার কি নয়
MCP-এর মাধ্যমে আপনার অ্যাপে একটি AI এজেন্টকে অ্যাক্সেস দেওয়া ঝুঁকিপূর্ণ। আপনি একটি চাবির রিং হস্তান্তর করছেন এবং আশা করছেন যে তারা কেবল নির্দিষ্ট কিছু দরজা খুলবে। সেই বিশ্বাসটি একটি security risk।
একটি multi-tenant Laravel অ্যাপের জন্য MCP টুল তৈরি করার সময়, আপনাকে একটি সমস্যার সমাধান করতে হবে: কীভাবে অন্য কারো ডেটা অ্যাক্সেস না করেই একজন এজেন্টকে অ্যাপটি পরিচালনা করতে দেবেন।
প্রতিটি MCP টুল একটি endpoint হিসেবে কাজ করে। একজন এজেন্ট একটি টুল কল করে এবং আপনার সার্ভার কোড রান করে। একটি multi-tenant সেটআপে, প্রতিটি টুলকে দুটি প্রশ্নের উত্তর দিতে হবে:
- আপনি কি এটি করার অনুমতিপ্রাপ্ত?
- আপনি কি এখানে এটি করার অনুমতিপ্রাপ্ত?
আপনি যদি এগুলো এড়িয়ে যান, তবে আপনি একটি security hole তৈরি করবেন।
Web request গুলো multi-tenancy হ্যান্ডেল করার জন্য session ব্যবহার করে। MCP টুলগুলো token ব্যবহার করে। এখানে কোনো session নেই এবং বর্তমান tenant context সেট করার জন্য কোনো middleware নেই। আপনি যদি এমন global scope-এর ওপর নির্ভর করেন যা session-এ "current org" খোঁজে, তবে সেগুলো কিছুই খুঁজে পাবে না। একটি query যা সীমাবদ্ধ থাকা উচিত ছিল, তা আপনার ডেটাবেসের প্রতিটি row রিটার্ন করে দিতে পারে।
নিরাপদ থাকতে আমি এই চারটি নিয়ম ব্যবহার করি:
- Explicit filtering: token auth-এর অধীনে ambient scope-এর ওপর কখনোই নির্ভর করবেন না। প্রতিবার organization অনুযায়ী ফিল্টার করতে একটি single trait ব্যবহার করুন।
- Use UUIDs: কখনোই auto-increment ID ব্যবহার করবেন না। এমন unguessable identifier ব্যবহার করুন যাতে এজেন্টরা অন্য রেকর্ডগুলো অনুমান করতে না পারে।
- Reuse permissions: এজেন্টদের জন্য নতুন permission set তৈরি করবেন না। আপনার web app যে ability strings ব্যবহার করে সেটিই ব্যবহার করুন।
- Mark side effects: টুলগুলোকে read-only বা write-enabled হিসেবে লেবেল করতে annotations ব্যবহার করুন।
Organization lookup-এর জন্য একটি single trait ব্যবহার করার মাধ্যমে, আপনি অডিটের জন্য একটি নির্দিষ্ট জায়গা তৈরি করেন। যদি lookup-টি null রিটার্ন করে, তবে টুলটি এজেন্টকে জানাবে যে রেকর্ডটি পাওয়া যায়নি। এজেন্ট অন্য tenant সম্পর্কে কোনো তথ্য পাবে না।
এটি কোনো AI সমস্যা নয়। এটি একটি multi-tenancy এবং authorization সমস্যা। MCP আপনার অ্যাপকে এক্সপোজ করা সহজ করে তোলে, তাই আপনার সীমানা বা boundaries সম্পর্কে আপনাকে সুশৃঙ্খল হতে হবে।
একজন এজেন্টকে ঠিক ততটুকুই করা উচিত যা একজন মানুষ তার নিজস্ব tenant-এর মধ্যে করতে পারে, তার বেশি নয়।
Optional learning community: https://t.me/GyaanSetuAi
