AI ఏజెంట్లకు సరిహద్దులు అవసరం, మాస్టర్ కీలు కాదు
MCP ద్వారా మీ యాప్కు AI ఏజెంట్కు యాక్సెస్ ఇవ్వడం ప్రమాదకరం. మీరు ఒక కీరింగ్ (keyring) ఇచ్చి, వారు కేవలం కొన్ని తలుపులే తెరుస్తారని ఆశించడం వంటిది. ఆ నమ్మకమే ఒక సెక్యూరిటీ రిస్క్.
మల్టీ-టెనెంట్ (multi-tenant) Laravel యాప్ కోసం MCP టూల్స్ను నిర్మించేటప్పుడు, మీరు ఒక సమస్యను పరిష్కరించాలి: ఇతరుల డేటాను యాక్సెస్ చేయకుండా, ఒక ఏజెంట్ యాప్ను ఎలా నడపాలి?
ప్రతి MCP టూల్ ఒక ఎండ్పాయింట్గా (endpoint) పనిచేస్తుంది. ఏజెంట్ ఒక టూల్ను పిలిచినప్పుడు, మీ సర్వర్ కోడ్ను రన్ చేస్తుంది. మల్టీ-టెనెంట్ సెటప్లో, ప్రతి టూల్ ఈ రెండు ప్రశ్నలకు సమాధానం చెప్పాలి:
- మీరు ఇది చేయడానికి అనుమతించబడ్డారా?
- మీరు ఇక్కడ ఇది చేయడానికి అనుమతించబడ్డారా?
వీటిని మీరు విస్మరిస్తే, ఒక సెక్యూరిటీ హోల్ (security hole) సృష్టించినట్లవుతుంది.
వెబ్ రిక్వెస్ట్లు మల్టీ-టెనెన్సీని హ్యాండిల్ చేయడానికి సెషన్లను (sessions) ఉపయోగిస్తాయి. MCP టూల్స్ టోకెన్లను (tokens) ఉపయోగిస్తాయి. ప్రస్తుత టెనెంట్ కాంటెక్స్ట్ను (tenant context) సెట్ చేయడానికి అక్కడ సెషన్ లేదా మిడిల్వేర్ ఉండదు. మీరు సెషన్లో "current org" కోసం వెతికే గ్లోబల్ స్కోప్లపై (global scopes) ఆధారపడితే, అవి ఏమీ కనుగొనలేవు. పరిమితం చేయాల్సిన క్వెరీ (query), మీ డేటాబేస్లోని ప్రతి రో (row)ను తిరిగి ఇచ్చే అవకాశం ఉంది.
సురక్షితంగా ఉండటానికి నేను ఈ నాలుగు నియమాలను ఉపయోగిస్తాను:
- స్పష్టమైన ఫిల్టరింగ్ (Explicit filtering): టోకెన్ ఆథెంటికేషన్ (token auth) కింద యాంబియంట్ స్కోప్ (ambient scope) పై ఎప్పుడూ ఆధారపడకండి. ప్రతిసారీ ఆర్గనైజేషన్ ఆధారంగా ఫిల్టర్ చేయడానికి ఒకే ఒక
traitని ఉపయోగించండి. - UUIDలను ఉపయోగించండి: ఎప్పుడూ ఆటో-ఇంక్రిమెంట్ (auto-increment) IDలను ఉపయోగించకండి. ఏజెంట్లు ఇతర రికార్డులను ఊహించలేనంతగా, ఊహించలేని ఐడెంటిఫైయర్లను (unguessable identifiers) ఉపయోగించండి.
- పర్మిషన్లను తిరిగి ఉపయోగించండి: ఏజెంట్ల కోసం కొత్త పర్మిషన్ సెట్లను సృష్టించకండి. మీ వెబ్ యాప్ ఉపయోగించే అదే ఎబిలిటీ స్ట్రింగ్స్ను (ability strings) ఉపయోగించండి.
- సైడ్ ఎఫెక్ట్స్ (side effects) గుర్తించండి: టూల్స్ను
read-onlyలేదాwrite-enabledఅని లేబుల్ చేయడానికి అనోటేషన్లను (annotations) ఉపయోగించండి.
ఆర్గనైజేషన్ లుకప్ల (organization lookups) కోసం ఒకే ఒక traitని ఉపయోగించడం ద్వారా, మీరు ఆడిట్ చేయడానికి ఒకే ఒక చోటును సృష్టిస్తారు. ఒకవేళ లుకప్ nullని రిటర్న్ చేస్తే, రికార్డు కనుగొనబడలేదని టూల్ ఏజెంట్కు చెబుతుంది. దీనివల్ల ఏజెంట్కు ఇతర టెనెంట్ల గురించి ఎటువంటి సమాచారం లభించదు.
ఇది AI సమస్య కాదు. ఇది మల్టీ-టెనెన్సీ మరియు అథరైజేషన్ (authorization) సమస్య. MCP మీ యాప్ను సులభంగా ఎక్స్పోజ్ చేస్తుంది, కాబట్టి మీరు మీ సరిహద్దుల విషయంలో క్రమశిక్షణతో ఉండాలి.
ఒక ఏజెంట్ తన స్వంత టెనెంట్ పరిధిలో, ఒక మనిషి చేయగలిగిన పనిని మాత్రమే చేయాలి, అంతకంటే ఎక్కువ కాదు.
Optional learning community: https://t.me/GyaanSetuAi
