Access Tags
Ograničite stavke baze znanja na ovlaštene posjetitelje — provodi se na našim poslužiteljima, a ne putem UI
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
- Vi označavate stavke baze znanja - na stranici Access Tags ili izravno putem API-ja; stavke bez oznaka i dalje rade za sve
- 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
- 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
- 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 razgovoreNapomena: Access Tags dio je Enterprise ugovora. Pišite na [email protected] i sve ćemo vam objasniti.