AI Agents Wanahitaji Mipaka, Sio Funguo Kuu
Kumpa AI agent ufikiaji wa programu yako kupitia MCP ni hatari. Unamkabidhi mkusanyiko wa funguo na kutumaini kuwa watafungua milango fulani tu. Imani hiyo ni hatari ya kiusalama.
Unapounda zana za MCP kwa ajili ya programu ya Laravel ya multi-tenant, lazima utatue tatizo moja: jinsi ya kumruhusu agent aendeshe programu bila kufikia data ya mtu mwingine.
Kila zana ya MCP hufanya kazi kama endpoint. Agent huita zana, na seva yako huendesha kodi. Katika mpangilio wa multi-tenant, kila zana lazima ijibu maswali mawili:
- Je, unaruhusiwa kufanya hili?
- Je, unaruhusiwa kukifanya hapa?
Ukipuuza haya, unatengeneza tundu la kiusalama.
Maombi ya wavuti (Web requests) hutumia sessions kushughulikia multi-tenancy. Zana za MCP hutumia tokens. Hakuna session wala middleware ya kuweka muktadha wa tenant wa sasa. Ukitegemea global scopes zinazotafuta "current org" kwenye session, hazitapata kitu. Query ambayo inapaswa kuwa na vizuizi inaweza kurudisha kila mstari kwenye hifadhidata yako.
Ninatumia sheria hizi nne ili kuwa salama:
- Explicit filtering: Usitegemee kamwe ambient scope chini ya token auth. Tumia trait moja kuchuja kwa shirika (organization) kila wakati.
- Use UUIDs: Usitumie kamwe auto-increment IDs. Tumia utambulisho usiotabirika ili agents wasiweze kukisia rekodi nyingine.
- Reuse permissions: Usitengeneze seti mpya za ruhusa kwa ajili ya agents. Tumia ability strings zilezile ambazo programu yako ya wavuti inazitumia.
- Mark side effects: Tumia annotations kuweka lebo kwenye zana kama read-only au write-enabled.
Kwa kutumia trait moja kwa ajili ya utafutaji wa shirika (organization lookups), unatengeneza sehemu moja ya ukaguzi (audit). Ikiwa utafutaji huo unarudisha null, zana inamwambia agent kuwa rekodi haijapatikana. Agent hapati taarifa yoyote kuhusu tenants wengine.
Hili si tatizo la AI. Ni tatizo la multi-tenancy na authorization. MCP inafanya iwe rahisi kuweka programu yako wazi, hivyo lazima uwe na nidhamu kuhusu mipaka yako.
Agent anapaswa kufanya kile tu ambacho binadamu anaweza kufanya, ndani ya tenant wake mwenyewe, na wala si zaidi.
Optional learning community: https://t.me/GyaanSetuAi
