Access Tags
Rajaa tietämyskohteet valtuutetuille kävijöille — valvotaan palvelimillamme, ei tekoälyn toimesta
Yleiskatsaus
Kaikki sisältö ei ole kaikille: vain jäsenille tarkoitetut asiakirjat, aluekohtainen materiaali, maksullisten tasojen resurssit. Access Tagsin avulla yksi chatbot palvelee eri yleisöjä turvallisesti. Lisäät tunnisteen tietämyskohteeseen, ja siitä hetkestä kohde on näkymätön jokaiselle kävijälle — paitsi niille, joiden sivu esittää kyseisen tunnisteen, oman palvelimesi allekirjoittamana. Rajoitus valvotaan hakukyselyssämme, ennen kuin tekoälymalli on edes mukana. Kävijä ilman tunnistetta ei voi kaivaa sisältöä esiin ovelilla kysymyksillä, koska sitä ei koskaan haettu hänelle.
Miten se toimii
- Sinä merkitset tietämyskohteet - Access Tags -sivulla tai suoraan API:n kautta; merkitsemättömät kohteet toimivat edelleen kaikille
- Palvelimesi allekirjoittaa jokaisen kävijän tunnisteet - kun kirjautunut jäsen lataa sivusi, taustajärjestelmäsi päättää hänen oikeutensa ja allekirjoittaa ne salaisella avaimella, joka on vain sinulla
- Widget lähettää allekirjoitetun todisteen - se kulkee jokaisen chat-viestin mukana; selain vain kuljettaa sitä eikä voi muuttaa sitä rikkomatta allekirjoitusta
- Me tarkistamme ja suodatamme - kelvollinen allekirjoitus avaa kohteet, joiden tunnisteet täsmäävät; puuttuva, peukaloitu tai vanhentunut todiste tarkoittaa, että kävijä saa vain julkista sisältöä
Käyttöönotto
Kytke toiminto päälle hallintapaneelin Access Tags -sivulla — allekirjoitusavain luodaan automaattisesti. Säilytä se vain palvelimellasi; kuka tahansa sen haltija voi luoda kelvollisia todisteita.
Merkitse sisältösi joko samalla sivulla tai lähettäessäsi kohteita API:n kautta:
POST /api/v1/knowledge/text/
{
"title": "Members-only price list",
"content": "...",
"website_id": "123",
"access_tags": ["premium"]
}
Anna sitten palvelimesi tulostaa allekirjoitettu todiste widget-koodinpätkän viereen. Allekirjoitettava viesti on pilkuin eroteltu tunnisteluettelo, yhdistettynä pystyviivalla vanhenemisaikaan, jos käytät sellaista:
<?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>
Sama allekirjoitus Node.js:llä ja Pythonilla:
// 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()
Ilman vanhenemisaikaa allekirjoita pelkkä tunnistemerkkijono. Sen kanssa todiste lakkaa toimimasta vanhenemishetkellä — hyödyllistä, kun oikeuksia voidaan perua, sillä kävijän on ladattava hallitsemasi sivu uudelleen saadakseen tuoreen todisteen.
Tunnisteiden logiikka
Kohteen tunnisteet yhdistyvät JA-ehdolla: kohde on noudettavissa vain, kun jokainen sen tunniste esiintyy kävijän todisteessa. Kävijän todiste voi kantaa kuinka monta oikeutta tahansa, ja täsmäytys tehdään kaikkiin yhtä aikaa.
| Kohteen tunnisteet | Kävijän todiste | Tulos |
|---|---|---|
(none) | mikä tahansa | Näkyvä — tunnisteettomat kohteet ovat julkisia |
north | north, premium | Näkyvä |
north, premium | north | Piilotettu — todisteesta puuttuu premium |
north, premium | north, premium, extra | Näkyvä — ylimääräiset oikeudet eivät haittaa |
JA on tarkoituksellinen. «Vähintään yksi» -täsmäytyksessä toinen tunniste kohteessa laajentaisi sitä, kuka sen näkee, joten dokumentin rajaaminen kahdelle ryhmälle julkaisisi sen tosiasiassa kokonaan molemmille. «Kaikki»-täsmäytyksessä jokainen lisätty tunniste voi vain rajata lisää, joten virhe kaatuu turvalliseen suuntaan.
Miten ilmaista «mikä tahansa näistä»
Jätä ulottuvuus pois kohteesta. Jos jokaisen kävijän todiste kantaa hänen alueensa, aluetunnisteeton dokumentti on käytettävissä kaikilla alueilla, kun taas sen muut tunnisteet pätevät edelleen. Pelkällä premium-tunnisteella merkitty kohde tarkoittaa siis «mikä tahansa alue, vain premium-tilaajat».
Aitoa ulottuvuuksien välistä valintaa varten — vaikkapa pohjoinen-perustasolla tai etelä-premiumilla eikä mitään muuta — lisää kohde kahdesti, kummallakin yksi yhdistelmä, tai anna molemmille yleisöille yhteinen tunniste, jonka palvelimesi sisällyttää heidän todisteisiinsa.
Rajat
- Enintään 20 tunnistetta tietämyskohdetta kohti
- Enintään 50 tunnistetta yhden kävijän todisteessa
- 50 merkkiä tunnistetta kohti; pilkut ja pystyviivat eivät ole sallittuja, koska todiste on pilkuin eroteltu merkkijono
Tunnisteiden muuttaminen myöhemmin
Tunnisteet voi korvata olemassa olevassa kohteessa ilman uudelleenlatausta. Muutos pätee seuraavasta kysymyksestä alkaen — itse sisältöä ei käsitellä uudelleen.
POST /api/v1/knowledge/<id>/tags/
{
"access_tags": ["premium"]
}
Lähetä tyhjä lista tehdäksesi kohteesta jälleen julkisen. Voit muokata tunnisteita myös käsin hallintapaneelin Access Tags -sivulla.
Mitä taataan
- Palvelinpuolen valvonta - suodatin toimii tietokantakyselymme sisällä haun aikana; valtuuttamattomien kävijöiden kohdalla merkityt kohteet puuttuvat tekoälyn kontekstista, joten mitään ei voi vuotaa
- Fail-closed kaikkialla - ei allekirjoitusta, väärä allekirjoitus, vanhentunut todiste, toiminto pois päältä, tilaus alennettu: jokaisessa näistä tapauksista kävijä saa vain julkista sisältöä, ei koskaan enempää
- Selain ei voi väärentää pääsyä - tunnisteiden muokkaaminen kehittäjätyökaluissa rikkoo allekirjoituksen; avain on vain sinun palvelimellasi
- Oikeuslogiikkasi pysyy sinun - emme koskaan saa tietää, miten päätät kuka saa minkä tunnisteen; tarkistamme vain, että palvelimesi on sen vahvistanut
Hyvä tietää
- Access Tags on valtuutusta, User Context personointia - kerro User Contextilla tekoälylle jäsenestä; ohjaa Access Tagsilla, mistä tietämyksestä tekoäly saa ammentaa
- Indeksoitu sivustosisältö on aina julkista - se tulee julkiselta sivustoltasi, joten rajattavaa ei ole; tunnisteet koskevat teksti-, tiedosto- ja API-kohteita
- Kohteen tunnisteet yhdistyvät JA-ehdolla - katso Tunnisteiden logiikka yllä; kohteen jokaisen tunnisteen on oltava kävijän todisteessa
- Avaimen uudelleenluonti mitätöi kaikki vanhat todisteet - tee se, jos avain on voinut vuotaa, ja päivitä sitten sivusi allekirjoittamaan uudella
- Tunnisteiden nimet päätät itse - enintään 20 kohdetta kohden, kukin 50 merkkiä, ei pilkkuja eikä pystyviivoja; ne eivät koskaan näy kävijöiden näkemässä chatissa
Toimii yhdessä User Contextin kanssa: toinen ohjaa, mitä tietämystä tekoäly saa käyttää tälle kävijälle, toinen kertoo tekoälylle, kuka kävijä on.
Käyttäjäkonteksti Välitä kirjautuneen käyttäjän tiedot tekoälychatbotillesi personoituja keskusteluja vartenHuomautus: Access Tags kuuluu Enterprise-sopimukseen. Kirjoita osoitteeseen [email protected], niin selitämme kaiken.