Vodič i uvid

BYOK Provider-Key Onboarding for AI API Gateways: Provjerite vjerodajnice korisnika prije usmjeravanja prometa

Praktičan dizajn za provjeru vjerodajnica OpenAI, Anthropic, Gemini i Azure OpenAI koje je dostavio korisnik prije nego AI API pristupnik pošalje proizvodni promet kroz njih.

Nemojte tretirati BYOK onboarding kao tekstni okvir koji prihvaća uzvodni API ključ i odmah omogućuje usmjeravanje. U produkcijskom AI API pristupniku, vjerodajnice koje dostavlja korisnik trebaju tijek rada u kontrolnoj ravnini: prikupite vezanje davatelja, stavite ključ u karantenu, pokrenite sonde specifične za davatelja, izradite matricu mogućnosti i tek onda priložite vjerodajnicu politici usmjeravanja stanara.

Problem s čitačem je operativni: korisnik zalijepi OpenAI, Anthropic, Gemini ili Azure OpenAI vjerodajnicu koja izgleda valjano, ali prvi stvarni zahtjev ne uspijeva jer ključ pripada pogrešnom projektu, nema pristup modelu, ne može nazvati odabranu krajnju točku, ima slabu kvotu ili ne izlaže podatke o korištenju potrebne za naplatu i usklađivanje. Gateway bi trebao otkriti ta ograničenja prije nego što korisnički promet ovisi o njima.

Dizajniraj BYOK vjerodajnicu kao objekt kontrolne ravnine s praćenjem stanja

BYOK vjerodajnica trebala bi biti odvojena od ključa koji je izdao pristupnik koji koriste aplikacije. Aplikacije bi trebale pozivati ​​pristupnik sa stabilnim virtualnim ključem, dok pristupnik preslikava tog stanara, plan proizvoda, profil modela i politiku na verificiranu uzvodnu vjerodajnicu. To odvajanje održava integraciju aplikacije stabilnom kada korisnik rotira uzvodni ključ, promijeni projekte pružatelja usluga ili izgubi sposobnost određenog modela.

Najmanje modelirajte uzvodnu vjerodajnicu sa ovim stanjima:

  • predano: primljeno od strane kontrolne razine, ali još nije upotrebljivo.
  • u karanteni: pohranjeno u trezoru i blokirano od prometa uživo dok se izvode sonde.
  • provjereno: dopušteno za određene sposobnosti koje su prošle provjeru.
  • degradirano: još uvijek se može koristiti za određeni promet, ali jedna ili više mogućnosti, signali kvota ili očekivanja izvješća o korištenju nisu uspjela.
  • suspendirano: privremeno blokirano nakon pogreške autentifikacije, dopuštenja, kvote, naplate ili pravila.
  • rotation-required: još uvijek poznat pristupniku, ali se mora zamijeniti prije nastavka proizvodne upotrebe.
  • opozvano: uklonjeno iz usmjeravanja i više se ne prihvaća kao zamjena.

Ovaj stroj stanja važan je za timove koji grade multi-provider LLM API gateway, jer jedna normalizirana oznaka "važeći ključ" skriva ponašanje specifično za pružatelja. Gateway mora znati koje su krajnje točke, modeli, regije, modaliteti i načini izvješćivanja sigurni za svakog stanara.

Prikupite obvezujuća polja pružatelja usluga prije traženja tajne

Obrazac za uključivanje trebao bi tražiti kontekst usmjeravanja koji nije tajni prije ili uz tajni. Taj kontekst sprječava dvosmislena ispitivanja i proizvodi bolje poruke o pogrešci.

OpenAI

Prikupite željenu organizaciju i projekt, tražene profile modela i je li ključ korisnički ključ ili ključ računa usluge. Korisni verifikator trebao bi provjeriti vezanje projekta i dopuštenja jer OpenAI dokumentira kontrolu pristupa temeljenu na ulogama na razini organizacije i projekta, a API dopuštenja su regulirana tim modelom. Poziv kao što je popis modela može zahtijevati dozvole za čitanje modela od relevantnog ključa i uloge.

Za račune usluga, tretirajte opsege kao ograničenja, a ne kao neovisno ovlaštenje. OpenAI Opsezi ključeva servisnog računa mogu ograničiti ono što servisni račun može raditi, ali ne mogu dati dopuštenja izvan dodijeljene projektne uloge. U praktičnom smislu, ključ može izgledati uskog opsega i svejedno biti neuspješan jer uloga projekta ne dopušta traženi model ili krajnju točku.

Anthropic

Prikupite željeni ID radnog prostora kada korisnik ima više od jednog radnog prostora ili koristi tokove povezane s identitetom. Anthropic radni prostori mogu sadržavati članove, račune usluga, API ključeve i ograničenja resursa, a namijenjeni su odvajanju projekata, okruženja ili timova pod centraliziranom naplatom i administracijom.

Verifikator bi trebao sačuvati je li zahtjevu potrebno anthropic-workspace-id zaglavlje. Anthropic dokumentacija kaže da tijekovi ključa povezani s identitetom ili s više radnih prostora API mogu zahtijevati to zaglavlje. Također izbjegavajte pretpostavku da ključ s opsegom radnog prostora za vrijeme izvođenja može provjeriti ograničenja resursa na razini organizacije. Ključevi s opsegom radnog prostora nisu važeći za neke operacije administratora API na razini organizacije kao što je inspekcija ograničenja brzine radnog prostora.

Gemini

Prikupite dolazi li ključ iz AI Studija ili Google Cloud projekta, predviđeni kontekst projekta, dopuštene API-je i sva ograničenja koja korisnik očekuje. Dokumentacija ključa Google Gemini API kaže da je svaki ključ Gemini API povezan s Google Cloud projektom, a novi ključevi AI Studio kreiraju se kao ključevi za autentifikaciju. Također kaže da su neograničeni standardni ključevi odbijeni od strane Gemini API kao dio udaljavanja od nesigurnih neograničenih ključeva.

Uključno korisničko sučelje trebalo bi označavati nesigurne neograničene standardne ključeve umjesto poticanja korisnika da ublaže ograničenja dok ispitivanje ne prođe. Google Cloud API-key smjernice preporučuju API ograničenja, izbjegavanje ključeva u parametrima upita, brisanje nepotrebnih ključeva i nepredavanje ključeva u repozitorije. Gemini ključevi za autentifikaciju posebna su proizvodna iznimka jer Gemini API ne stvara Google resurse projekta u oblaku, ali bi verifikator ipak trebao zabilježiti vrstu ključa i položaj ograničenja.

Azure OpenAI

Prikupite krajnju točku, naziv implementacije, API verziju, regiju i kontekst pretplate ako to korisnik može pružiti. Azure OpenAI usmjerava kroz implementacije koje su izradili korisnici, tako da generički naziv modela nije dovoljan. Ključ može biti važeći za resurs dok zahtijevani naziv implementacije nedostaje, u drugoj regiji ili vezan za verziju modela koju pristupnik ne očekuje.

Azure OpenAI kvota se dodjeljuje po pretplati, regiji, modelu i vrsti implementacije u TPM jedinicama. Dodijeljeni TPM preslikava ograničenja stope implementacije, dok se RPM također provodi. Runtime odgovori mogu otkriti korisna zaglavlja ograničenja brzine kao što su preostali zahtjevi, preostali tokeni i retry-after-ms. Hvatajte te signale tijekom sondi i praćenja vremena izvođenja.

Pokreni provjeru u slojevima

Dobar paket prije leta počinje jeftino i niskorizično, a zatim koristi jednu minimalnu naplativu sondu samo ako korisnik pristane. Neki pružatelji usluga ne izlažu dovoljno introspekcije putem ključeva za vrijeme izvođenja, pa bi uspješan rezultat integracije trebao uključivati razinu pouzdanosti, a ne samo prolaz ili pad.

1. Statičke provjere

Provjerite očite probleme s formatiranjem, polja koja nedostaju, nekompatibilne oblike krajnjih točaka, nepodržane regije i neispravne nazive implementacije prije nego nazovete pružatelja usluga. Statičke provjere nikada ne bi trebale bilježiti neobrađenu tajnu. Umjesto toga pohranite otisak prsta, izvor stvaranja, ID stanara, pružatelja usluga i referencu trezora.

Primjeri:

  • Azure krajnja točka ne odgovara očekivanom uzorku URL-a resursa.
  • Naziv implementacije Azurea je prazan iako se traženi profil modela preslikava na Azure OpenAI.
  • Anthropic ID radnog prostora nedostaje za put uključivanja za više radnih prostora.
  • Gemini ključ je označen kao neograničeni standardni ključ kada su potrebna ograničenja.
  • Traženi profil uključuje generiranje slike, ali adapter davatelja ne podržava taj modalitet za BYOK vjerodajnice.

2. Niskorizične sonde za čitanje

Koristite sonde samo za čitanje tamo gdje ih davatelj dopušta. Poziv popisa modela, provjera metapodataka implementacije ili krajnja točka sposobnosti računa mogu otkriti pogreške autentifikacije, povezivanja projekta i dopuštenja bez generiranja izlaza modela. Zabilježite normalizirane rezultate i neobrađene statusne kodove pružatelja usluga.

Preporučeni normalizirani ishodi uključuju:

  • auth_failed: nevažeća, opozvana, istekla ili onemogućena vjerodajnica.
  • wrong_project_or_workspace: važeći ključ, ali nije vezan za planirani projekt ili radni prostor.
  • permission_denied: autentificirana, ali nedostaje krajnja točka, model ili administratorska dozvola.
  • model_unavailable: ključ radi, traženi model ili implementacija ne.
  • quota_unknown: vrijeme izvođenja radi, ali se kvota ne može provjeriti.
  • usage_reporting_unavailable: pristupnik ne može uskladiti korištenje na strani pružatelja putem isporučene vjerodajnice.

3. Probe minimalnog zaključivanja

Barem jedna stvarna sonda zaključivanja obično je potrebna za svaki zatraženi profil modela, jer navođenje modela nije isto što i dopuštenje za njegovo pokretanje. Zatražite eksplicitni pristanak korisnika, postavite mali proračun za ispitivanje i upotrijebite najjeftiniju krajnju točku koja koristi potrebne mogućnosti.

Neka sonde budu determinističke i dosadne. Za tekstualni profil pošaljite kratki upit s niskim izlaznim ograničenjem. Za strujanje provjerite vraća li pružatelj stream događaje i konačne metapodatke o korištenju gdje se očekuje. Za profile sposobne za alat, koristite sintetičku definiciju alata i potvrdite prihvaća li pružatelj shemu alata. Za viziju upotrijebite sićušnu poznatu testnu sliku ako pružatelj i pravila to dopuštaju. Izbjegavajte ispitivanja koja pohranjuju osjetljive korisničke podatke ili zahtijevaju upite specifične za poslovanje.

4. Negativni testovi

Negativni testovi dokazuju da su granice pravila stvarne. Ako je zakupcu dopušteno samo korištenje definiranog profila modela, verifikator bi trebao isprobati jasno nedopušteni model, krajnju točku, alat ili regiju i potvrditi da ga pristupnik blokira prije nego što ga davatelj vidi. Ovo su testovi pravila pristupnika, a ne testovi zlouporabe pružatelja usluga.

Ovo je posebno važno za postavke prodavača i SaaS gdje AI API opskrba korisnika automatski stvara nizvodne ključeve. Uzlazni ključ koji dostavlja korisnik ne bi trebao zaobići pravila pristupnika stanara samo zato što ima šira dopuštenja pružatelja usluga.

Pohrani matricu mogućnosti, a ne Booleovu

Izlaz integracije trebao bi biti matrica mogućnosti priložena verziji vjerodajnica. Ta bi se matrica trebala moći postavljati putem stranica za usmjeravanje, podršku, naplatu i statusne stranice za korisnike.

Praktična matrica uključuje:

  • Dobavljač, verzija vjerodajnice, referenca trezora, stanar i okruženje.
  • Promatrana organizacija, projekt, radni prostor, krajnja točka, regija ili vezivanje implementacije gdje je dostupno.
  • Podržane krajnje točke: chat, odgovori, poruke, ugradnje, serije, stvarno vrijeme, slike, zvuk ili ekvivalenti specifični za pružatelja usluga.
  • Podržani modeli i nazivi implementacije.
  • Podržane značajke zahtjeva: strujanje, alati, JSON način rada, strukturirani izlaz, vizija, zvuk, brzo predmemoriranje, skupni poslovi.
  • Zaglavlja promatranog ograničenja brzine i zaglavlja za ponovni pokušaj.
  • Poznati izvor kvote: administrator API, zaglavlja vremena izvođenja, deklarirano od strane korisnika ili nepoznato.
  • Način izvješća o korištenju: dostupno izvješće davatelja usluga, mjerenje samo na pristupniku, djelomično usklađivanje ili nepodržano.
  • Povjerljivost verifikacije: duboka, plitka, samo za vrijeme izvođenja ili deklarirana od strane korisnika.
  • Posljednja uspješna sonda, zadnja neuspješna sonda i neobrađeni dokaz pogreške.

Usmjeravanje bi trebalo iskoristiti ovu matricu. Ako matrica kaže da ključ podržava tekstualno zaključivanje, ali ne i skupne poslove, pristupnik bi trebao dopustiti tekstualni promet i odbiti skupni promet s jasnom porukom upućenom korisniku. Ako se kvota ne može provjeriti, ali runtime sonde rade, vjerodajnica se može označiti kao provjerena s ograničenom pouzdanošću umjesto da se pretvara da pristupnik ima punu vidljivost kapaciteta.

Mapirajte rezultate provjere u pravila usmjeravanja

Gateway ne bi trebao usmjeravati izravno od "pružatelja odabranog stanara" do "koristi ovu tajnu." Usmjeravanje od pravila stanara do profila modela, od profila modela do zahtjeva za mogućnostima i od zahtjeva do prihvatljivih verzija vjerodajnica.

Na primjer:

tenant: acme-prod
virtual_key: mgk_live_...
model_profile: support-chat-standard
requirements:
  endpoint: chat
  provider_candidates: [openai, anthropic, azure_openai]
  features: [streaming, tools]
  max_region: customer_approved_regions
  usage_mode: gateway_metered_with_provider_reconciliation_preferred
eligible_credentials:
  - byok_openai_project_key_v3: verified, tools=true, streaming=true, usage_report=partial
  - byok_azure_openai_v2: degraded, deployment_found=true, quota_low=true
routing_decision:
  primary: byok_openai_project_key_v3
  fallback: none unless customer permits provider-managed spillover

Ovaj sloj pravila također štiti objedinjenu AI API naplatu. BYOK može oslabiti centraliziranu naplatu ako pristupnik jednostavno propušta zahtjeve i kasnije vjeruje fakturama dobavljača. Čak i kada su izvješća o korištenju na strani pružatelja nedostupna, pristupnik bi trebao bilježiti korištenje na razini stanara, ID-ove zahtjeva, profil modela, normalizirane brojeve tokena gdje su dostupni, pouzdanost usklađivanja i sve nepodržane načine izvješćivanja.

Rješavanje kvarova jezikom upućenim korisniku

Neobrađene pogreške dobavljača korisne su za podršku, ali većini korisnika trebaju izravne upute za ispravljanje. Pohranite neobrađeni kôd pogreške i zaglavlja interno, a zatim prevedite grešku u stabilnu poruku.

Rezultat verifikatoraPoruka okrenuta korisnikuVjerojatna radnja
wrong_workspaceKljuč je važeći, ali nije vezan za odabrani radni prostor.Odaberite ispravan radni prostor ili stvorite ključ s opsegom radnog prostora.
missing_model_permissionKljuč ne može koristiti traženi model.Odobrite pristup modelu ili odaberite drugi profil modela.
deployment_not_foundNaziv implementacije Azure OpenAI nije pronađen na ovoj krajnjoj točki.Provjerite krajnju točku, regiju, naziv implementacije i API verziju.
quota_too_lowVjerodajnica radi, ali promatrana kvota je ispod odabranog proizvodnog profila.Povećajte kvotu ili odaberite profil niže propusnosti.
usage_reporting_unavailableKljuč može izvoditi zaključke, ali izvješća o korištenju davatelja usluga ne mogu se uskladiti putem ove vjerodajnice.Koristite mjerenje samo na pristupniku ili omogućite administratorski pristup/pristup izvješćivanju.
unsafe_key_typeVrsta ključa ili položaj ograničenja nije prihvaćen za proizvodno usmjeravanje.Stvorite ograničeni ključ prikladan za proizvodnju.

Ponovna provjera vjerodajnica nakon uključivanja

Uspješan pregled prije leta je snimka, a ne jamstvo. Projektne uloge, politika radnog prostora, kvota, stanje naplate, dostupnost modela i regionalni kapacitet mogu se promijeniti nakon uključivanja. Gateway bi trebao pokretati zakazane provjere zdravlja i ponovne provjere vođene događajima.

Pokreni ponovnu provjeru nakon:

  • 401 ili greške u autentifikaciji davatelja.
  • 403 ili odgovori odbijeni za dopuštenje.
  • 404 odgovori modela, implementacije ili endpoint-not-found.
  • 429, odgovori premašili kvotu ili ograničenje brzine izvan uobičajenih obrazaca prometa.
  • Pogreške u naplati, organizaciji, radnom prostoru ili projektu pružatelja usluga.
  • Klijent mijenja tražene profile modela, regije, alate ili politiku podataka.

Nemojte odmah suspendirati cijelog zakupca kada se jedna mogućnost pokvari. Ako strujanje ne uspije, ali zaključivanje bez strujanja i dalje radi, označite sposobnost strujanja smanjenom i usmjerite prihvatljiva radna opterećenja bez strujanja ako to pravila dopuštaju. Ako nedostaje jedna implementacija Azurea, blokirajte tu implementaciju umjesto svih vjerodajnica davatelja usluga korisnika.

Izrada rotacije kao paralelnog tijeka rada provjere

Rotacija ne bi trebala biti slijepo prepisivanje. Izradite novu verziju vjerodajnica, pohranite je u karantenu, pokrenite iste sonde kao i izvorna integracija i automatski promijenite usmjeravanje tek nakon što prođe provjera. Čuvajte stari ključ u kratkom vremenskom roku samo ako korisnik to izričito dopusti i pravila dopuštaju daljnju pohranu.

Radni tijek sigurne rotacije izgleda ovako:

  1. Kupac dostavlja zamjenska vjerodajna i obvezujuća polja.
  2. Gateway pohranjuje tajnu kao novu verziju vjerodajnice u karanteni.
  3. Verifikator pokreće statičke provjere, sonde čitanja, sonde zaključivanja i testove pravila.
  4. Matrika mogućnosti uspoređuje se s aktivnom verzijom.
  5. Klijent vidi bilo kakve regresije, kao što je nedostatak podrške za seriju ili niža pouzdanost kvote.
  6. Gateway prebacuje usmjeravanje na novu verziju u jednom ažuriranju kontrolne razine.
  7. Stara verzija se odmah povlači ili zadržava za kratko, izričito vrijeme vraćanja.

Korak usporedbe je važan. Zamjenski ključ koji može pozvati osnovni tekstualni model i dalje može biti regresija ako izgubi podršku alata, izvješćivanje o korištenju, regionalnu kvotu ili pristup produkcijskoj implementaciji.

Kompromisi za eksplicitnost

Provjera može stvoriti male troškove davatelja usluga. Preporuka je da zatražite pristanak, prikažete maksimalni proračun za ispitivanje i koristite minimalne upite i izlazna ograničenja. Nemojte skrivati naplative sonde unutar "provjere valjanosti".

Administratorska introspekcija poboljšava povjerenje, ali povećava radijus eksplozije. Neki korisnici će dati administratorske vjerodajnice ili vjerodajnice za izvješćivanje za dublju provjeru. Drugi će dati samo ključeve vremena izvođenja. Podržite oboje, ali jasno označite dobiveno povjerenje.

Semantika pružatelja usluga neće se čisto normalizirati. Jedan statusni enum je koristan za tokove proizvoda, ali timovi za podršku trebaju neobrađene kodove pružatelja usluga, zaglavlja, ID-ove zahtjeva i dokaze na razini adaptera. Sačuvajte i normalizirane i neobrađene zapise.

BYOK mijenja odgovornost za naplatu. BYOK korisnicima daje kontrolu ugovora davatelja usluga, ali može smanjiti sposobnost pristupnika da uskladi fakture davatelja usluga. Pristupnik bi trebao otkriti je li naplata usklađena s pružateljem usluge, mjerena putem pristupnika, djelomična ili deklarirana od strane korisnika.

Strogo uključivanje usporava neke postavke vođene prodajom. Ograničeni mod sandboxa može pomoći, ali bi trebao biti jasno označen, ograničen i blokiran za automatsku promociju proizvodnje. Usmjeravanje proizvodnje treba zahtijevati provjerenu sposobnost i mapiranje pravila.

Kontrolni popis za implementaciju

  • Stvorite BYOK objekt vjerodajnica s eksplicitnim stanjima životnog ciklusa i nepromjenjivim verzijama vjerodajnica.
  • Prikupite obvezujuća polja specifična za pružatelja usluga prije verifikacije.
  • Pohranjujte tajne samo u trezor vjerodajnica; zapisnik otisaka prstiju i referenci trezora, a ne neobrađenih ključeva.
  • Pokreni statičke provjere prije poziva davatelja usluga.
  • Pokrenite sonde čitanja gdje je dopušteno i sačuvajte neobrađene dokaze pružatelja usluga.
  • Pokrenite jedno ispitivanje minimalnog zaključivanja po traženom profilu modela uz pristanak korisnika i proračun za ispitivanje.
  • Pokrenite negativne testove pravila pristupnika za nedopuštene modele, alate, krajnje točke i regije.
  • Održavajte matricu sposobnosti s razinom pouzdanosti, a ne Booleovim.
  • Usmjeravanje kroz pravila zakupca i zahtjeve profila modela, a ne izravno kroz odabranu tajnu.
  • Izložite poruke o neuspjehu upućene korisnicima s određenim koracima za ispravljanje.
  • Zakažite provjere ispravnosti i pokrenite ponovne provjere zbog pogrešaka u vremenu izvođenja.
  • Implementirajte rotaciju kao paralelnu provjeru nakon koje slijedi prekidač atomskog usmjeravanja.

Zaključak

Najsigurniji tijek integracije BYOK-a je verifikator, a ne obrazac. Ključ dobavljača koji je dostavio korisnik trebao bi ući u karantenu, dokazati svoje vezanje, dopuštenja, pristup modelu, signale kvote, ponašanje krajnje točke i ograničenja izvješćivanja, a zatim postati prihvatljiv samo za mogućnosti koje stvarno podržava.

Praktična preporuka je pohraniti provjeru kao matricu mogućnosti, usmjeriti kroz pravila zakupca i nastaviti s ponovnim provjerama nakon što započne proizvodni promet. Predviđanje je jednostavno: kako tipovi ključeva pružatelja usluga, kontrole radnog prostora, regionalne kvote i dopuštenja specifična za model postaju sve precizniji, pristupnici koji tretiraju BYOK kao jednokratni tajni prijenos vidjet će više kvarova u proizvodnji koji se mogu izbjeći. Gatewayi koji provjeru vjerodajnica čine dijelom kontrolne razine u početku će sporije uključivati ​​korisnike, ali s manje iznenađenja nakon što promet započne.

Povezana literatura

FAQ

Često postavljana pitanja

Treba li BYOK vjerodajnicama dopustiti usmjeravanje prometa odmah nakon podnošenja?
Ne. Novopodnesena vjerodajnica trebala bi biti u karanteni dok se ne završe statičke provjere, sonde pružatelja, testovi profila modela i provjere pravila stanara. Ako je ponuđen ograničeni mod sandboxa, on bi trebao biti ograničen i jasno odvojen od proizvodnog usmjeravanja.
Što ako kupac pruži samo ključ za vrijeme izvođenja, a ne administratorski pristup?
Gateway i dalje može izvoditi plitku provjeru, kao što su provjere autentičnosti, dopuštene sonde čitanja, sonde minimalnog zaključivanja i hvatanje zaglavlja vremena izvođenja. Rezultat bi trebao biti označen kao samo vrijeme izvođenja ili plitka pouzdanost jer kvota i vidljivost izvješća o korištenju mogu biti nepotpuni.
Treba li provjera biti samo jedan prolaz ili stalni proces?
Trebalo bi biti u tijeku. Uloge davatelja, pravila radnog prostora, kvota, status naplate, pristup modelu i implementacije mogu se promijeniti. Zakažite provjere ispravnosti i pokrenite ponovne provjere nakon autentifikacije, dopuštenja, modela nije pronađen, kvote i pogrešaka naplate davatelja usluga.
Kako bi se pristupnik trebao nositi s troškovima davatelja usluga uzrokovanim provjeravanjem?
Zatražite izričit pristanak korisnika, postavite mali proračun za ispitivanje, koristite najjeftiniju prikladnu krajnju točku, ograničite izlazne tokene i bilježite upotrebu ispitivanja odvojeno od uobičajenog prometa aplikacije.