ایجنٹ گارڈ ریلز اور رن ٹائم LDAP کنفیگریشن

آج میں نے دو مختلف مسائل پر کام کیا۔ دونوں کا مقصد ایک ہی تھا: حدود کو واضح اور کنٹرول کرنے میں آسان بنانا۔

پہلے کام میں ایک AI ایجنٹ کے لیے MCP ٹولز بنانا شامل تھا۔ میں چاہتا تھا کہ ایجنٹ ایونٹس کی فہرست بنا کر، ان کی تیاری چیک کر کے، اور اپ ڈیٹس شائع کر کے ایک ایونٹس پلیٹ فارم کو مینیج کر سکے۔

چیلنج یہ ہے کہ MCP ٹولز ٹوکن آتھنٹیکیشن استعمال کرتے ہیں۔ اس کا مطلب ہے کہ ان میں وہ سیشن سیاق و سباق (session context) نہیں ہوتا جو ایک عام ویب ریکویسٹ میں ہوتا ہے۔ اگر آپ گلوبل ٹیننٹ اسکوپ پر بھروسہ کرتے ہیں، تو سسٹم ہر تنظیم کا ڈیٹا واپس کر سکتا ہے۔

میں نے اسے تین اصولوں کے ذریعے حل کیا:

  • ہر کوئری میں واضح طور پر تنظیم (organization) کے ذریعے فلٹر کریں۔ گلوبل اسکوپ پر بھروسہ نہ کریں۔
  • ویب ایپ کی طرح ہی پرمیشن اسٹرنگز استعمال کریں۔ ایک ایجنٹ کے پاس اس انسان سے زیادہ طاقت نہیں ہونی چاہیے جو اسے استعمال کر رہا ہے۔
  • آٹو انکریمنٹ آئی ڈیز کے بجائے لک اپس کے لیے UUIDs استعمال کریں۔

ہر ٹول کو ایک غیر قابل اعتماد اینڈ پوائنٹ سمجھیں۔ اپنی لاجک ایسی جگہ رکھیں جہاں آپ اسے ایک ہی جگہ پر ٹیسٹ کر سکیں۔

دوسرے کام میں ایک آئیڈنٹیٹی پورٹل شامل تھا۔ میں نے LDAP سیٹنگز کو اسٹیٹک فائلز سے منتقل کر کے سیٹنگز UI میں ڈال دیا۔ اب ایڈمنز نئی ڈیپلائمنٹ کے بغیر ہوسٹ، پورٹ، اور کریڈنشلز تبدیل کر سکتے ہیں۔

میں نے کنکشن ٹائم آؤٹس اور SASL آپشنز پر کنٹرول بھی شامل کیا۔ اس سے JSON کے ساتھ ایک تکنیکی رکاوٹ پیدا ہوئی۔

جب آپ JSON میں انٹیجر کیز (integer keys) اسٹور کرتے ہیں، تو ڈی کوڈ کرنے پر وہ اسٹرنگز کے طور پر واپس آتی ہیں۔ LDAP فنکشنز کو انٹیجر کیز کی ضرورت ہوتی ہے۔ مجھے ان کیز کو استعمال کرنے سے پہلے دوبارہ انٹیجر میں تبدیل کرنے کے لیے ایک میپر لکھنا پڑا۔

اسے محفوظ رکھنے کے لیے، میں نے دو گارڈ ریلز شامل کیں:

  • بائنڈ پاس ورڈز کو محفوظ حالت (at rest) میں انکرپٹ کریں۔ سیکرٹس کو کبھی بھی کیش میں پلین ٹیکسٹ کے طور پر نہ رکھیں۔
  • سیو کرنے سے پہلے JSON فیلڈز کی تصدیق کریں۔ ایک غلط کنفیگریشن کو سیو کرنے کے مرحلے پر ہی فیل ہو جانا چاہیے، نہ کہ اس وقت جب صارف کا اکاؤنٹ لاک ہو جائے۔

میں نے کنکشنز کی ٹیسٹنگ اور سیونگ دونوں کے لیے ایک ہی اسمبلر استعمال کیا۔ اس سے یہ یقینی بنتا ہے کہ جس کنکشن کو آپ ٹیسٹ کرتے ہیں، وہی بالکل ویسا ہی سیو ہوتا ہے جو آپ نے سیو کیا ہے۔

انجینئرنگ کا مطلب صرف فیچر بنانا نہیں ہے۔ انجینئرنگ گارڈ ریلز بنانے کا نام ہے۔

ماخذ: https://dev.to/nasrulhazim/dev-log-2026-06-24-agent-guardrails-and-runtime-ldap-config-2hi5