Verslui Įmonėms Sprendimai Programėlės Kainos Kūrėjai Blogas Dokumentacija Paleisti darbo erdvę
Blogas / AI agentai operacijoms

Kaip saugiai suteikti AI agentui prieigą prie verslo duomenų

Techniniams įkūrėjams ir finansų vadovams, kurie juos patvirtina. Architektūra, kuri užtikrina agento prieigos saugumą, penki kontrolės mechanizmai ir kur kiekvienas iš jų yra, ko reikalauja protokolas ir pagrindiniai agentų tiekėjai, ir kontrolinis sąrašas, kurį reikia patikrinti bet kuriai sistemai.

8 min skaitymasAtnaujinta 2026 m. rugsėjo 4 d.Sois inžinerija, komanda, kuri kuria platformą

Maža serverių patalpa matoma pro stiklines duris: viena lentyna su tvarkingais laidais, raktų seifas ant sienos, užrašų lenta ant kabliuko, vėsi mėlyna šviesa
Trumpas atsakymas

Saugus būdas suteikti AI agentui prieigą prie verslo duomenų yra padaryti agentą verslo sistemos klientu, o ne vartotoju su slaptažodžiu. Agentas prisijungia kaip pavadintas asmuo per standartinį prisijungimą, jam siūlomi tik tie įrankiai, kuriuos leidžia to asmens vaidmuo, kiekvienas skambutis vėl patikrinamas sistemos, kai jis vykdomas, yra apribotas, kiek gali išleisti, ir palieka kiekvieno veiksmo žurnalą, priskirtą tam asmeniui. Kai bet kuris iš šių patikrinimų negali būti atliktas, prieiga yra atmetama, o ne laikoma savaime suprantama.

Nieko iš to nėra užklausos tekste. Nurodymai modeliui yra naudingi elgesiui ir nenaudingi saugumui, nes modelį galima išvesti iš jų per dokumentą, kurį jis skaito. Kontrolės turi būti taikomos sistemos, laikomos duomenis, kiekviename skambutyje, nepriklausomai nuo to, ką agentas mano, kad jam buvo pasakyta.

Architektūra: agentas yra klientas, sistema yra autoritetas

Pradėkite nuo formos, nes dauguma klaidų yra formos klaidos. Žmogus prašo savo agento kažko. Agentas nusprendžia, kuriuos įrankius naudoti. Kiekvienas skambutis praeina per leidimų sluoksnį, kuris priklauso verslo sistemai, o ne agentui, ir tik tada pasiekia modulį, pvz., finansus ar CRM. Agentas niekada neliečia duomenų bazės, niekada neturi duomenų bazės akreditacijos ir niekada nemato įrankio, kurio jo asmuo negalėtų naudoti.

Jūs
Jūsų agentas
Sois leidimų sluoksnis
FinansaiCRMŽmogiškieji ištekliaiDokumentai

Prašymas pereina iš asmens į jo agentą, tada per leidimų sluoksnį, prieš pasiekdamas bet kurį modulį. Sluoksnis filtruojasi, ką agentui siūloma, ir tikrina, ką jis skambina. Agentas gali naudoti tik tuos įrankius, kuriuos jo asmuo gali naudoti, ant įrašų, kuriuos jo asmuo gali matyti.

Pagrindinė principo esmė yra viena sakinio: agentas veikia su to asmens, kurį jis atstovauja, autoritetu ir niekada daugiau. Viskas kitas šiame straipsnyje yra būdas padaryti šį sakinį tiesa esant spaudimui, kai modelis yra neteisingas, kai dokumentas, kurį jis skaito, turi nurodymus, arba kai tokenas nuteka.

OWASP Top 10 LLM programoms nurodo nesėkmę, kurią ši architektūra užkerta: per didelė agentūra, kurią ji skaidoma į per didelę funkcionalumą (įrankiai, viršijantys darbo poreikius), per didelius leidimus (daugiau prieigos žemyn, nei būtina) ir per didelę autonomiją (jokio nepriklausomo patikrinimo prieš didelės įtakos veiksmą). Jos švelninimai skamba kaip leidimų sluoksnio specifikacija: vykdyti vartotojo kontekste, sumažinti įrankių ir jų leidimų skaičių, taikyti autorizaciją žemyn esančioje sistemoje, o ne pasikliauti modeliu, ir reikalauti asmens patvirtinimo didelės įtakos veiksmams.

Penki kontrolės mechanizmai ir kur kiekvienas iš jų yra

Kontrolės nėra naujos; tai yra kontrolės, kurias jau taikote asmeniui, turinčiam sistemos prieigą, taikomos klientui, kuris veikia to asmens vardu. Lentelėje nurodoma, ką kiekvienas atsako, kur ji taikoma ir kaip atrodo nesėkmė, kai jos trūksta. Vietos stulpelis yra svarbus. Kontrolė, taikoma užklausoje, yra pasiūlymas.

KontrolėKą ji nustatoTaikoma kurKlaida, kai trūksta
TapatybėKam atstovauja agentasPrisijungimas per OAuth; šiam sistemai išduotas žetonas, susietas su konkrečiu vartotojuBendri paslaugų paskyros; veiksmai be savininko; nutekintas raktas, veikiantis visiems
ApimtisKą jis gali darytiĮrankiai, filtruojami pagal asmens vaidmenį prieš juos siūlant, ir vėl tikrinami kiekvieno skambučio metuAgentas, galintis skaityti atlyginimų sąrašą, nes jo asmuo kadaise reikėjo kontakto telefono numerio
BiudžetasKiek jis gali suvartotiIšlaidų lubos kiekvienai integracijai sistemos pačios AI; greičio apribojimai įrankių skambučiuoseBlogai suformuluota užduotis, kuri veikia visą naktį; neribota sąskaita
ŽurnalaiKą tai padarė, su kuo ir kas įvykoKiekvienas skambutis įrašomas su įvestimis ir rezultatu, priskiriamas asmeniuiNegalima peržiūrėti, atšaukti ar paaiškinti veiksmo po fakto
Uždaryti be leidimoKą daryti, kai patikra negali būti atliktaAtmesti, su klaida, apie kurią agentas gali praneštiNeaiškumai sprendžiami agento naudai; modelis nusprendžia savo autoritetą
Patvirtinimas rašymamsAr asmuo tai mato prieš tai, kai tai įvykstaKlientas klausia prieš svarbius veiksmus; sistema pažymi, kurie įrankiai yra svarbūsPinigai išsiųsti, įrašai ištrinti arba žinutės paskelbtos remiantis neteisingai suprasta instrukcija

Šešios eilutės penkiems valdymams plius vienas, kurį pateikia patys agentų klientai. Penki iš šešių yra įgyvendinami verslo sistemos arba kliento, o nė vienas - modelio.

Tapatybė: prisijungti kaip asmuo, per OAuth, niekada su bendru raktu

Model Context Protocol autorizacijos specifikacija yra tiksli šiuo klausimu. Nuotolinis serveris veikia kaip OAuth 2.1 išteklių serveris; klientas gauna tokeną per standartinį autorizacijos srautą su PKCE; klientas turi nurodyti, kuriam serveriui tokenas skirtas, naudodamas išteklių parametrą; ir serveris turi patvirtinti, kad kiekvienas tokenas buvo išduotas jam konkrečiai, atmesti viską kitą. Specifikacija aiškiai draudžia tokenų perdavimą, kai serveris priima tokeną, kurio jis neišdavė, ir perduoda jį toliau, nes tai sunaikina tiek audito taką, tiek pasitikėjimo ribą.

Praktikoje tai reiškia, kad "prisijunkite vieną kartą, jokio žetono, kurį reikia įklijuoti". Asmuo prideda darbo erdvės adresą prie savo agento, yra nukreipiamas į įprastą prisijungimo puslapį, patvirtina ryšį, o agentas gauna žetoną, kuris jį identifikuoja ir veikia tik prieš tą darbo erdvę. Anthropic rekomendacija pritaikytoms jungtims Claude yra peržiūrėti, kokius apimtis serveris prašo, apriboti jas, kur įmanoma, ir jungtis tik prie patikimų serverių. Tiekėjas, kuris vietoj to prašo įklijuoti įmonės API raktą į agento konfigūraciją, praleido pirmąjį kontrolės tašką ir padarė kitus keturis daug sunkesnius.

Apimtis: filtruoti prieš siūlant, patikrinti dar kartą vykdant

Agentas sužino, ką gali daryti, paprašydamas serverio įrankių sąrašo. Teisingas dizainas atsako į šį klausimą kiekvienam asmeniui: buhalterio agento gautas sąrašas skiriasi nuo direktoriaus agento gauto sąrašo, o nė viename nėra įrankių moduliams, kurių jų vaidmuo nemato. Tai yra OWASP patarimas, kaip sumažinti funkcionalumą, ir jis turi antrą pranašumą: modelis, kuriam niekada nebuvo parodytas įrankis, negali būti priverstas jį vadinti.

Sąrašo filtravimas pats savaime nepakanka, nes vaidmenys keičiasi, sesijos išlieka, o klientai kaupia duomenis. Tas pats patikrinimas turi būti vykdomas vėl, kai kiekvienas skambutis atvyksta, atsižvelgiant į asmens teises tuo momentu. Žemiau pateiktas įrankių sąrašas, atitinkantis protokolo apibrėžimą, skirtas vaidmeniui, kuris gali skaityti sąskaitas, bet negali registruoti mokėjimų. Trūkstamas įrankis yra esminis.

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "tools": [
      { "name": "searchInvoices",
        "description": "Search invoices by number, reference, contact, amount, status, date range.",
        "inputSchema": { "type": "object", "properties": { "query": { "type": "string" }, "outstanding_only": { "type": "boolean" } } },
        "annotations": { "readOnlyHint": true } },
      { "name": "getInvoice",
        "description": "Read one invoice in full: status, totals, dates, contact and lines.",
        "inputSchema": { "type": "object", "properties": { "invoice_id": { "type": "string" } }, "required": ["invoice_id"] },
        "annotations": { "readOnlyHint": true } }
    ]
  }
}

// recordPayment, sendInvoiceReminders and deleteInvoice exist in the system.
// They are not in this list because this person's role cannot use them.
// If the agent calls one anyway, the server answers with a permission error.

Įrankių/sąrašo atsakymas, atitinkantis MCP specifikaciją, su įrankių pavadinimais iš Sois apskaitos modulio. Specifikacijoje taip pat nurodoma, kad klientai turi laikyti tokias anotacijas kaip readOnlyHint nepatikimomis, nebent serveris yra patikimas, todėl dar viena priežastis, kodėl taisyklę turi vykdyti serveris, o ne anotacija.

Įvesties injekcija: duomenys gali atsakyti

Grėsmė, specifinė agentams, yra ta, kad duomenys, kuriuos jie skaito, gali turėti nurodymų. El. laiškas iš kliento, kuris baigiasi eilute, nurodančia agentui persiųsti tiekėjų sąrašą į išorinę adresą; dokumentas, kuris nurodo pažymėti kiekvieną apmokėtą sąskaitą. Modelis gali arba gali nesilaikyti, ir joks nurodymas negali garantuoti, kad taip nebus, todėl nurodymų injekcija yra pirmoje OWASP sąrašo vietoje ir todėl tiek Anthropic, tiek OpenAI apie tai įspėja savo jungčių gairėse.

The defence is the architecture, not the model. An agent that is only offered the tools its person can use cannot forward what its person cannot see. A call to mark invoices paid is checked by the system against the person's permissions, not against the model's belief that it was asked to. Consequential tools are marked so that the client asks a person first: ChatGPT currently requires manual confirmation in a conversation before write actions, and OpenAI's guidance is to keep approval on for tools that modify data; Claude asks for approval per tool and advises reserving "allow always" for trusted servers. And the log records the attempt, so an injection that was blocked is visible afterwards rather than silent.

Biudžetas ir žurnalai: padarykite agento darbą tokį pat patikrinamą kaip žmogaus.

Biudžetas yra svarbus dviem priežastims. Akivaizdi priežastis yra kaina: agentas, gavęs neaiškų rezultatą, nuolat naudosis įrankiais, kol kas nors jį sustabdys, o OWASP nurodo, kad neribota vartojimas yra savarankiška rizika. Subtilesnė priežastis yra poveikio zona: ribojimas kiekvienai integracijai apriboja, kiek pažeistas ar pasimetęs agentas gali padaryti, kol žmogus tai pastebės. Kai asmens agentas atlieka mąstymą, AI kaina tenka jam; kai sistemos agentas tai daro, ribojimas turėtų būti nustatytas kiekvienai integracijai ir matomas kiekvienai veiklai.

Žurnalai paverčia viską iš pažado į tai, ką galite audituoti. Kiekvienas skambutis turėtų fiksuoti, už ką agentas veikė, kokį įrankį, įvestis, rezultatą ir laiką, toje pačioje vietoje, kur sistema fiksuoja, ką žmonės darė. Išbandymas yra tai, ar finansų vadovas gali sužinoti, ką agentas padarė kliento sąskaitoje praėjusį mėnesį, taip pat lengvai, kaip gali sužinoti apie kolegą. MCP specifikacija prašo klientų registruoti įrankių naudojimą audito tikslais; verslo sistema neturėtų remtis klientu dėl to, nes klientas nėra įrašų sistema.

Patikrinimo sąrašas, kurį galite naudoti bet kuriai sistemai.

Pateikite tai bet kuriam tiekėjui, įskaitant mus. Kiekvienas yra taip arba ne, ir kiekvienas turi testą, o ne klausimą, kurį reikia užduoti.

  1. Agentas prisijungia kaip pavadintas asmuo per OAuth, neturint bendro įmonės rakto, kurį būtų galima įklijuoti. Išbandykite: prisijunkite iš išorinio MCP kliento ir pažiūrėkite, ko prašo prisijungimo puslapis.
  2. Įrankių sąrašas skiriasi priklausomai nuo vaidmens. Testas: prisijunkite kaip ribotas vartotojas ir kaip administratorius ir palyginkite, ką siūlo agentas.
  3. Patikrinimas kartojamas, kai įrankis veikia. Testas: pašalinkite leidimą iš prijungto vartotojo sesijos viduryje ir bandykite veiksmą dar kartą.
  4. Prieiga uždaroma. Testas: iškvieskite įrankį, kurio vaidmuo neturėtų turėti, ir patvirtinkite, kad gaunate atsisakymą, o ne rezultatą.
  5. Išlaidos gali būti ribojamos pagal integraciją ir matomos pagal veiksmą. Testas: nustatykite mažą ribą ir stebėkite, kaip ji įsigalioja.
  6. Kiekvienas veiksmas registruojamas pagal asmenį, su įvestimis ir rezultatu, kur sistema registruoja viską kitą. Testas: perskaitykite žurnalą už neseniai atliktą veiksmą.
  7. Pasekmių įrankiai pažymėti patvirtinimui taigi klientas klausia asmens. Testas: paprašykite agento pervesti pinigus arba ištrinti įrašą ir patvirtinkite, kad pirmiausia esate paklaustas.

Sois yra viena sistema, sukurta šiam sąrašui perduoti, o straipsnio viršuje esanti forma yra jos forma. Darbo erdvė yra MCP serveris; bet kuris MCP klientas prisijungia pridėdamas darbo erdvės adresą ir prisijungdamas vieną kartą per OAuth; įrankiai filtruojami pagal vaidmenį prieš juos siūlant ir dar kartą tikrinami, kai jie veikia; prieiga uždaroma; išlaidos gali būti ribojamos pagal integraciją; kiekviena veika registruojama; ir platformoje sukurti tinklai turi savo duomenų bazę, saugyklą, domenus ir raktus. Vis tiek patikrinkite sąrašą. Sąrašo vertė yra ta, kad ji nepasitiki niekieno žodžiu.

Klausimai, kuriuos žmonės užduoda

Ar saugu prijungti Claude arba ChatGPT prie mano apskaitos duomenų?

Tai saugu, kai duomenis laikanti sistema taiko kontrolę: agentas prisijungia kaip jūs per OAuth, jam siūlomi tik tie įrankiai, kuriuos leidžia jūsų vaidmuo, jis dar kartą tikrinamas kiekviename skambutyje, o kiekviena veika registruojama. Abu tiekėjai taip pat prašo patvirtinimo prieš pasekmių veiksmus. Jei sistema siūlo tik bendrą API raktą, atsakymas yra ne.

Ar sistemos pranešimas gali sustabdyti agentą nuo duomenų nutekėjimo?

Ne. Pranešimas formuoja elgesį; jis nieko neįgyvendina. Duomenys, kuriuos agentas skaito, gali turėti instrukcijų, kurios jį apeina. Veiksmas turi būti toks, kurio sistema atsisakytų, nepriklausomai nuo to, ką modelis mano, kad buvo paprašyta.

Koks skirtumas tarp įrankių filtravimo ir leidimų tikrinimo?

Filtravimas nusprendžia, ką agentui rodyti, kai jis prašo įrankių sąrašo. Tikrinimas nusprendžia, ar konkretus skambutis leidžiamas tuo momentu, kai jis atvyksta. Jums reikia abiejų: filtravimas sumažina tai, ką modelis gali būti įtikintas daryti, o tikrinimas pagauna viską, ko filtravimas nepastebėjo.

Kas moka už AI, kai mano pats agentas atlieka mąstymą?

Mokate jūs, per savo agento prenumeratą. Tokiu būdu sukurta sistema neįgyvendina jokio AI jūsų vardu tokiu atveju ir neturėtų už tai imti jokių mokesčių. Išlaidų ribos taikomos sistemos pačiam agentui, kai naudojate tą vietoj.

Šaltiniai
  1. Model Context Protocol specifikacija: autorizacija OAuth 2.1, PKCE, išteklių parametras, žetono auditorijos patvirtinimas ir žetono perdavimo draudimas
  2. OWASP 10 geriausių praktikų LLM programoms: LLM06 Pernelyg didelė agentūra pernelyg didelė funkcionalumas, leidimai ir autonomija, taip pat leidimų sluoksnio taikomos priemonės
  3. Anthropic: pradėkite naudoti pritaikytus jungiklius su nuotoliniu MCP OAuth prisijungimas, ribojant prašomas sritis, patvirtinimas pagal įrankius, prisijungimas tik prie patikimų serverių, įspėjimas apie užklausų injekciją
  4. Sois: saugumas ir leidimų sluoksnis penki kontrolės mechanizmai, kaip juos įgyvendina platforma: vaidmenų filtravimas, patikrinimai vykdymo metu, uždaryti nesėkmių atveju, išlaidų ribos, žurnalo vedimas, nuomininkų izoliacija

Šis straipsnis peržiūrimas, kai keičiasi jame aprašyti produktai. Kita suplanuota peržiūra: 2026 m. gruodžio 4 d..

Pradėti

Prijunkite savo agentą prie Sois.

Jūsų darbo erdvė yra MCP serveris. Nurodykite Claude, ChatGPT, Cursor arba bet kurį MCP klientą ir dirbkite pagal savo teises.

  • Pradėti nemokamai
  • Pasirinkite savo agentą
  • Nėra tiekėjo užrakinimo