Natrag na nadzornu ploču

Dokumentacija

Naučite kako koristiti Asyntai

Access Tags

Ograničite stavke baze znanja na ovlaštene posjetitelje — provodi se na našim poslužiteljima, a ne putem UI

Idi na Access Tags
Enterprise

Pregled

Nije sav sadržaj za svakoga: dokumenti samo za članove, materijali za određenu regiju, resursi plaćenih razina. S Access Tags jedan chatbot sigurno poslužuje različite publike. Stavite oznaku na stavku baze znanja i od tog trenutka stavka je nevidljiva svakom posjetitelju — osim onima čija stranica priloži tu oznaku, potpisanu vašim vlastitim poslužiteljem. Ograničenje se provodi u našem upitu za dohvaćanje, prije nego što se model UI uopće uključi. Posjetitelj bez oznake ne može izvući sadržaj domišljatim pitanjima, jer za njega nikada nije ni dohvaćen.

Kako funkcionira

  1. Vi označavate stavke baze znanja - na stranici Access Tags ili izravno putem API-ja; stavke bez oznaka i dalje rade za sve
  2. Vaš poslužitelj potpisuje oznake svakog posjetitelja - kad prijavljeni član učita vašu stranicu, vaš backend određuje njegova prava i potpisuje ih tajnim ključem koji imate samo vi
  3. Widget šalje potpisanu potvrdu - putuje sa svakom porukom u chatu; preglednik je samo prenosi i ne može je izmijeniti a da ne pokvari potpis
  4. Mi provjeravamo i filtriramo - valjani potpis otključava stavke s odgovarajućim oznakama; nedostajuća, izmijenjena ili istekla potvrda znači da posjetitelj dobiva samo javni sadržaj

Postavljanje

Uključite značajku na stranici Access Tags u nadzornoj ploči — ključ za potpisivanje generira se automatski. Čuvajte ga samo na svom poslužitelju; tko god ga ima, može stvarati valjane potvrde.

Označite sadržaj na istoj stranici ili pri slanju stavki putem API-ja:

POST /api/v1/knowledge/text/
{
  "title": "Members-only price list",
  "content": "...",
  "website_id": "123",
  "access_tags": ["premium"]
}

Zatim neka vaš poslužitelj ispiše potpisanu potvrdu pokraj isječka widgeta. Potpisuje se popis oznaka odvojenih zarezima, spojen okomitom crtom s vremenom isteka kad ga koristite:

<?php
$tags    = "members,premium";          // this visitor's entitlements
$expires = time() + 3600;              // unix seconds, optional but recommended
$sig     = hash_hmac("sha256", $tags . "|" . $expires, $SECRET);
?>
<script>
window.Asyntai = window.Asyntai || {};
window.Asyntai.accessTags = "<?php echo $tags; ?>";
window.Asyntai.accessTagsExpires = "<?php echo $expires; ?>";
window.Asyntai.accessTagsSignature = "<?php echo $sig; ?>";
</script>

Isti potpis u Node.js i Pythonu:

// Node.js
const crypto = require("crypto");
const sig = crypto.createHmac("sha256", SECRET)
                  .update(tags + "|" + expires).digest("hex");

# Python
import hmac, hashlib
sig = hmac.new(SECRET.encode(), f"{tags}|{expires}".encode(),
               hashlib.sha256).hexdigest()

Bez vremena isteka potpišite samo sam niz oznaka. S njim potvrda prestaje vrijediti u trenutku isteka — korisno kad se prava mogu oduzeti, jer posjetitelj mora ponovno učitati stranicu koju vi kontrolirate da bi dobio svježu potvrdu.

Što je zajamčeno

  • Provedba na strani poslužitelja - filtar radi unutar našeg upita prema bazi pri dohvaćanju; za neovlaštene posjetitelje označene stavke ne ulaze u kontekst UI, pa nema što procuriti
  • Posvuda fail-closed - nema potpisa, pogrešan potpis, istekla potvrda, isključena značajka, snižen plan: u svakom od tih slučajeva posjetitelj dobiva samo javni sadržaj, nikada više
  • Preglednik ne može krivotvoriti pristup - uređivanje oznaka u razvojnim alatima kvari potpis; ključ ima samo vaš poslužitelj
  • Vaša logika prava ostaje vaša - nikada ne saznajemo kako odlučujete tko dobiva koju oznaku; provjeravamo samo da je vaš poslužitelj to potvrdio

Dobro je znati

  • Access Tags je autorizacija, User Context personalizacija - upotrijebite User Context da UI ispričate o članu; upotrijebite Access Tags da kontrolirate iz kojeg znanja UI smije crpsti
  • Indeksirani sadržaj weba uvijek je javan - dolazi s vaše javne stranice, pa nema što ograničavati; oznake vrijede za tekstualne, datotečne i API stavke
  • Posjetitelju je dovoljna jedna odgovarajuća oznaka - stavka s dvije oznake dostupna je posjetitelju koji nosi bilo koju od njih
  • Ponovno generiranje ključa poništava sve stare potvrde - učinite to ako je ključ možda procurio, a zatim ažurirajte stranice da potpisuju novim
  • Nazive oznaka birate vi - do 20 po stavci, svaka 50 znakova, bez zareza i okomitih crta; nikad se ne pojavljuju u chatu koji posjetitelji vide

Uklapa se s User Context: jedna značajka kontrolira koje znanje UI smije koristiti za ovog posjetitelja, druga UI govori tko je posjetitelj.

Korisnički kontekst Proslijedite podatke prijavljenog korisnika svom AI chatbotu za personalizirane razgovore

Napomena: Access Tags dio je Enterprise ugovora. Pišite na [email protected] i sve ćemo vam objasniti.