Tillbaka till instrumentpanelen

Dokumentation

Lär dig hur du använder Asyntai

Access Tags

Begränsa kunskapsobjekt till behöriga besökare — upprätthålls på våra servrar, inte av AI:n

Gå till Access Tags
Enterprise

Översikt

Allt innehåll är inte för alla: dokument enbart för medlemmar, regionspecifikt material, resurser för betalda nivåer. Med Access Tags betjänar en enda chattbot olika målgrupper säkert. Du sätter en tagg på ett kunskapsobjekt och från det ögonblicket är objektet osynligt för varje besökare — utom de vars sida visar upp den taggen, signerad av din egen server. Begränsningen upprätthålls i vår hämtningsfråga, innan AI-modellen ens är inblandad. En besökare utan taggen kan inte locka fram innehållet med fyndiga frågor, för för dem hämtades det aldrig.

Hur det fungerar

  1. Du taggar kunskapsobjekt - på Access Tags-sidan eller direkt via API:t; objekt utan taggar fortsätter fungera för alla
  2. Din server signerar varje besökares taggar - när en inloggad medlem laddar din sida avgör din backend deras rättigheter och signerar dem med en hemlig nyckel som bara du har
  3. Widgeten skickar det signerade intyget - det följer med varje chattmeddelande; webbläsaren transporterar det bara och kan inte ändra det utan att bryta signaturen
  4. Vi verifierar och filtrerar - en giltig signatur låser upp objekt med matchande taggar; ett saknat, manipulerat eller utgånget intyg innebär att besökaren bara får offentligt innehåll

Så ställer du in det

Slå på funktionen på Access Tags-sidan i din instrumentpanel — en signeringsnyckel genereras automatiskt. Förvara den enbart på din server; vem som helst som har den kan skapa giltiga intyg.

Tagga ditt innehåll antingen på samma sida eller när du skickar objekt via API:t:

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

Låt sedan din server skriva ut det signerade intyget bredvid widget-snippetet. Meddelandet som signeras är den kommaseparerade tagglistan, sammanfogad med ett lodrätt streck med utgångstiden när du använder en:

<?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>

Samma signatur i Node.js och Python:

// 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()

Utan utgångstid signerar du bara taggsträngen i sig. Med en slutar ett intyg fungera i samma stund som den passeras — användbart när rättigheter kan återkallas, eftersom besökaren måste ladda om en sida du kontrollerar för att få ett färskt intyg.

Vad som garanteras

  • Upprätthållande på serversidan - filtret körs inuti vår databasfråga vid hämtning; för obehöriga besökare saknas taggade objekt i AI:ns kontext, så det finns inget som kan läcka
  • Fail-closed överallt - ingen signatur, fel signatur, utgånget intyg, avstängd funktion, nedgraderad plan: i varje sådant fall får besökaren bara offentligt innehåll, aldrig mer
  • Webbläsaren kan inte förfalska åtkomst - att redigera taggarna i utvecklarverktygen bryter signaturen; bara din server har nyckeln
  • Din rättighetslogik förblir din - vi får aldrig veta hur du avgör vem som får vilken tagg; vi verifierar bara att din server har intygat det

Bra att veta

  • Access Tags är auktorisering, User Context är personalisering - använd User Context för att berätta för AI:n om medlemmen; använd Access Tags för att styra vilken kunskap AI:n får använda
  • Crawlat webbplatsinnehåll är alltid offentligt - det kommer från din offentliga webbplats, så det finns inget att begränsa; taggar gäller text-, fil- och API-objekt
  • En besökare behöver bara en matchande tagg - ett objekt med två taggar är tillgängligt för en besökare som bär någon av dem
  • Att generera om nyckeln ogiltigförklarar alla gamla intyg - gör det om nyckeln kan ha läckt och uppdatera sedan dina sidor så att de signerar med den nya
  • Taggnamnen väljer du själv - upp till 20 per objekt, 50 tecken vardera, utan kommatecken eller lodräta streck; de syns aldrig i chatten som besökarna ser

Passar ihop med User Context: den ena funktionen styr vilken kunskap AI:n får använda för den här besökaren, den andra berättar för AI:n vem besökaren är.

Användarkontext Skicka inloggad användardata till din AI-chattbot för personliga konversationer

Obs! Access Tags ingår i ett Enterprise-avtal. Mejla [email protected] så förklarar vi allt.