Gli agenti AI hanno bisogno di confini, non di chiavi universali

Dare a un agente AI l'accesso alla tua app tramite MCP è rischioso. Stai consegnando un portachiavi sperando che apra solo determinate porte. Quella fiducia è un rischio per la sicurezza.

Quando costruisci strumenti MCP per un'app Laravel multi-tenant, devi risolvere un problema: come permettere a un agente di guidare l'app senza accedere ai dati di qualcun altro.

Ogni strumento MCP agisce come un endpoint. Un agente chiama uno strumento e il tuo server esegue il codice. In una configurazione multi-tenant, ogni strumento deve rispondere a due domande:

  • Hai l'autorizzazione per farlo?
  • Hai l'autorizzazione per farlo qui?

Se trascuri questi passaggi, crei una falla nella sicurezza.

Le richieste web utilizzano le sessioni per gestire il multi-tenancy. Gli strumenti MCP utilizzano i token. Non c'è una sessione né un middleware per impostare il contesto del tenant corrente. Se ti affidi a global scope che cercano una "current org" in una sessione, non troveranno nulla. Una query che dovrebbe essere limitata potrebbe restituire ogni singola riga del tuo database.

Uso queste quattro regole per rimanere al sicuro:

  • Filtraggio esplicito: non affidarti mai allo scope ambientale sotto autenticazione tramite token. Usa un singolo trait per filtrare per organizzazione ogni volta.
  • Usa gli UUID: non usare mai ID auto-incrementanti. Usa identificatori non prevedibili in modo che gli agenti non possano indovinare altri record.
  • Riutilizza i permessi: non creare nuovi set di permessi per gli agenti. Usa le stesse stringhe di ability che utilizza la tua web app.
  • Segnala gli effetti collaterali: usa le annotazioni per etichettare gli strumenti come di sola lettura o abilitati alla scrittura.

Utilizzando un singolo trait per la ricerca dell'organizzazione, crei un unico punto da sottoporre ad audit. Se la ricerca restituisce null, lo strumento comunica all'agente che il record non è stato trovato. L'agente non riceve alcuna informazione sugli altri tenant.

Questo non è un problema di IA. È un problema di multi-tenancy e di autorizzazione. MCP rende facile esporre la tua app, quindi devi essere disciplinato riguardo ai tuoi confini.

Un agente dovrebbe fare esattamente ciò che può fare l'utente umano, all'interno del proprio tenant, e nient'altro.

Fonte: https://dev.to/nasrulhazim/giving-an-ai-agent-the-keys-without-giving-it-the-building-rbac-org-scoped-mcp-tools-in-laravel-43oi

Community di apprendimento opzionale: https://t.me/GyaanSetuAi