ఏజెంట్ గార్డ్రైల్స్ మరియు రన్టైమ్ LDAP కాన్ఫిగరేషన్
నేను ఈరోజు రెండు వేర్వేరు సమస్యలపై పనిచేశాను. రెండింటి లక్ష్యం ఒక్కటే: పరిధులు (boundaries) స్పష్టంగా ఉండటం మరియు వాటిని నియంత్రించడం సులభతరం చేయడం.
మొదటి పని ఒక AI agent కోసం MCP tools నిర్మించడం. ఈ ఏజెంట్ ఈవెంట్లను జాబితా చేయడం (listing events), సిద్ధంగా ఉన్నాయో లేదో తనిఖీ చేయడం (checking readiness) మరియు అప్డేట్లను పబ్లిష్ చేయడం ద్వారా ఒక ఈవెంట్ ప్లాట్ఫామ్ను నిర్వహించాలని నేను అనుకున్నాను.
ఇక్కడ సవాలు ఏమిటంటే, MCP tools టోకెన్ అథెంటికేషన్ (token authentication) ఉపయోగిస్తాయి. అంటే, ఒక సాధారణ వెబ్ రిక్వెస్ట్కు ఉండే సెషన్ కాంటెక్స్ట్ (session context) వీటికి ఉండదు. మీరు గ్లోబల్ టెనెంట్ స్కోప్ (global tenant scope) పై ఆధారపడితే, సిస్టమ్ ప్రతి సంస్థకు చెందిన డేటాను తిరిగి ఇచ్చే అవకాశం ఉంది.
నేను దీనిని మూడు నియమాలతో పరిష్కరించాను:
- ప్రతి క్వరీలోనూ సంస్థ (organization) ఆధారంగా స్పష్టంగా ఫిల్టర్ చేయండి. గ్లోబల్ స్కోప్ మీద ఆధారపడకండి.
- వెబ్ యాప్లో ఉపయోగించే అదే permission strings ఉపయోగించండి. ఏజెంట్కు దానిని ఉపయోగించే మనిషి కంటే ఎక్కువ అధికారాలు ఉండకూడదు.
- auto-increment IDs కి బదులుగా లుకప్ల కోసం UUIDs ఉపయోగించండి.
ప్రతి టూల్ను ఒక అన్ట్రస్టెడ్ ఎండ్పాయింట్గా (untrusted endpoint) పరిగణించండి. మీ లాజిక్ను ఒకే చోట పరీక్షించగలిగేలా ఉంచండి.
రెండవ పని ఒక ఐడెంటిటీ పోర్టల్కు సంబంధించినది. నేను LDAP సెట్టింగ్లను స్టాటిక్ ఫైల్స్ నుండి సెట్టింగ్స్ UI లోకి మార్చాను. ఇప్పుడు అడ్మిన్లు కొత్త డిప్లాయ్మెంట్ (deployment) లేకుండానే host, port మరియు credentials మార్చుకోవచ్చు.
నేను కనెక్షన్ టైమౌట్లు (connection timeouts) మరియు SASL ఆప్షన్లపై నియంత్రణను కూడా జోడించాను. ఇది JSON తో ఒక సాంకేతిక అడ్డంకిని (technical hurdle) సృష్టించింది.
మీరు JSONలో integer keys ని స్టోర్ చేసినప్పుడు, వాటిని డీకోడ్ చేసినప్పుడు అవి స్ట్రింగ్స్గా (strings) వస్తాయి. LDAP ఫంక్షన్లకు integer keys అవసరం. కాబట్టి, వాటిని ఉపయోగించే ముందు తిరిగి integerలుగా మార్చడానికి నేను ఒక mapper రాయాల్సి వచ్చింది.
దీనిని సురక్షితంగా ఉంచడానికి, నేను రెండు గార్డ్రైల్స్ను జోడించాను:
- bind passwordsలను ఎన్క్రిప్ట్ చేయండి. సీక్రెట్స్ను (secrets) ఎప్పుడూ క్యాచీ (cache)లో ప్లెయిన్ టెక్స్ట్గా ఉంచకండి.
- సేవ్ చేసే ముందు JSON ఫీల్డ్లను వాలిడేట్ చేయండి. తప్పుడు కాన్ఫిగరేషన్ సేవ్ చేసే దశలోనే ఫెయిల్ అవ్వాలి, యూజర్ లాక్ అవుట్ అయ్యే సమయానికి కాదు.
కనెక్షన్లను పరీక్షించడానికి మరియు సేవ్ చేయడానికి నేను ఒకే అసంబ్లర్ను (assembler) ఉపయోగించాను. దీనివల్ల మీరు పరీక్షించిన కనెక్షన్, మీరు సేవ్ చేసే కనెక్షన్తో ఖచ్చితంగా సరిపోలుతుంది.
ఇంజనీరింగ్ అంటే కేవలం ఫీచర్ను నిర్మించడం మాత్రమే కాదు. ఇంజనీరింగ్ అంటే గార్డ్రైల్స్ను నిర్మించడం.
Source: https://dev.to/nasrulhazim/dev-log-2026-06-24-agent-guardrails-and-runtime-ldap-config-2hi5
