Token, ambiti e sicurezza
Come funzionano le connessioni di accesso (OAuth) e i token pat-isms: cosa può fare ciascuno, gli ambiti, la disconnessione, la scadenza e i limiti rigidi.
Un client MCP agisce come utente in uno di due modi: si accede e si approva (OAuth, l'impostazione predefinita), oppure si fornisce un token di accesso personale limitato dagli ambiti selezionati.
Accesso (OAuth)
Quando si aggiunge https://account.ismscopilot.com/v1/account/mcp a un client senza intestazione, il client richiede di accedere a ISMS Copilot. La pagina di consenso mostra l'indirizzo a cui vengono inviati i risultati e il nome che l'app ha assegnato a sé stessa. Approva solo se hai avviato la connessione dal tuo strumento AI personale.
Un Approva concede un set fisso:
| Può | Ambiti |
|---|---|
| Leggere il tuo account, gli spazi di lavoro, i documenti (metadati), le memorie e il profilo aziendale | account:read, workspaces:read, documents:read, memories:read, company_context:read |
| Porre domande a ISMS Copilot e leggere le risposte | conversations:create |
| Aggiornare il profilo aziendale e le memorie, e creare spazi di lavoro | company_context:write, memories:write, workspaces:write |
Una connessione di accesso non può mai creare, elencare o revocare chiavi API, e non può mai controllare o acquistare crediti API. Queste operazioni rimangono riservate ai token. Le sue risposte non contengono mai nemmeno campi di upgrade o acquisto come upgrade_url o extra_usage_buyable.
Le modifiche apportate da un'app con accesso sono etichettate in ISMS Copilot con il nome registrato dall'app: Added by OAuth app: <name> sulle memorie, Updated by OAuth app: <name> sul profilo aziendale e sugli spazi di lavoro. Il nome è scelto dall'app stessa, quindi consideralo un'indicazione, non una prova. Una modifica successiva dall'app web o da un token sostituisce l'etichetta.
Disconnetti: Impostazioni → App connesse, sotto Agent connessi. La prossima chiamata da quell'app viene rifiutata e il suo token di refresh smette di funzionare. Per riconnetterti, accedi e approva di nuovo.
Token di accesso personale (soluzione alternativa)
Utilizza un token per un client che non può accedere, per macchine CI e headless, o quando desideri un set di ambiti più ristretto rispetto a quelli concessi dall'accesso.
Prefisso e ciclo di vita
| Passo | Comportamento |
|---|---|
| Creazione | Impostazioni → App connesse → Crea token |
| Visualizzazione | Segreto completo mostrato una sola volta; inizia con pat-isms- |
| Archiviazione | Solo nella configurazione del client; mai nel commit su git |
| Revoca | Stessa pagina Impostazioni; ha effetto immediato |
| Scadenza | Opzionale al momento della creazione |
Ambiti (tipici)
Le etichette esatte nell'interfaccia utente possono variare leggermente; l'intento è:
Account
| Capacità | Lettura | Scrittura / azione |
|---|---|---|
| Informazioni account | sì | no |
| Spazi di lavoro | elenca (workspaces:read) | crea spazi di lavoro personali con create_workspace (workspaces:write) |
| Documenti | elenca solo i metadati (nessuno strumento get-by-ID) | no |
| Memorie | sì | crea / modifica se concesso |
| Contesto aziendale | get_company_context (company_context:read) | set_company_context (company_context:write), una sostituzione completa del profilo |
| Conversazioni | n/a | avvia e invia se concesso |
Model API (gruppo App connesse)
| Ambito | Scopo |
|---|---|
api_keys:read | Elenca i metadati delle chiavi sk-isms (nessun segreto) |
api_keys:write | Crea / revoca chiavi sk-isms tramite MCP |
api_credits:read | Legge il saldo dei crediti API prepagati |
api_credits:checkout | Crea un URL di Stripe Checkout per il ricarico (un umano paga nel browser) |
Questi ambiti non consentono a un pat-isms di effettuare inferenze. L'orchestratore utilizza comunque una chiave sk-isms separata per api.ismscopilot.com. Vedi Configura da Claude Code o Grok.
Concedi il set minimo necessario per il lavoro dell'orchestratore. Un token di sola lettura per uno spazio di lavoro non può avviare conversazioni.
Limiti rigidi (per progettazione)
- La creazione di spazi di lavoro è solo personale e soggetta a budget. Uno spazio di lavoro creato da un orchestratore non è condiviso con il tuo team, non eredita la Advanced Data Protection della tua organizzazione ed è limitato a 10 nuovi spazi di lavoro ogni 24 ore (ogni creazione conta, comprese quelle dell'app web e lo spazio di lavoro iniziale di un account nuovo). Imposta persona, istruzioni e condivisione del team nell'app web.
- Le scritture del contesto aziendale sono una sostituzione completa.
set_company_contextsovrascrive l'intero profilo con i campi che passi (nome azienda, settore, dimensione, paese della sede, ruolo privacy, tipi di dati, regione di hosting, stack tecnologico, note); un oggetto vuoto lo cancella. Leggilo prima conget_company_contextse vuoi modificare un solo campo. - Beyond è disponibile quando l'orchestratore passa
mode: "beyond"(Fast è l'impostazione predefinita). Piani a pagamento, 10 esecuzioni per giorno UTC (50 su Unlimited). Vedi Utilizzo della modalità Beyond. - Advanced Data Protection non può essere attivata/disattivata tramite il token. L'orchestratore può segnalare lo stato; la modifichi in Impostazioni → Protezione dati.
- Limiti di frequenza si applicano (dell'ordine di ~120 richieste/minuto per token; le conversazioni concorrenti sono limitate per account). Se raggiungi i limiti, rallenta e riprova.
pat-ismsda solo non esegue completamenti del Model API. Gli strumenti del Model API generanosk-ismse aprono la cassa per il checkout dei crediti; la fatturazione Embed partner rimane separata.
Checklist di sicurezza
- Assegna un nome ai token per dispositivo o scopo (
claude-laptop,cursor-ci). - Preferisci una scadenza breve per le macchine temporanee.
- Revoca quando un laptop viene perso o un segreto CI viene ruotato.
- Non inserire mai
pat-isms-…in repository pubblici, screenshot o ticket di supporto.
L'utilizzo viene conteggiato rispetto alla normale sottoscrizione chat e ai limiti del piano, non rispetto ai crediti prepagati API. Il tuo orchestratore legge comunque ogni risposta restituita come input, quindi il testo della risposta viene conteggiato anche verso il contesto e l'utilizzo dello strumento chiamante.