Access Tags
Restreignez des éléments de connaissances aux visiteurs autorisés — appliqué sur nos serveurs, pas par l'IA
Aperçu
Tout le contenu n'est pas destiné à tout le monde : documents réservés aux membres, matériel propre à une région, ressources d'un niveau payant. Access Tags permet à un seul chatbot de servir différents publics en toute sécurité. Vous posez un tag sur un élément de connaissances et, dès cet instant, l'élément est invisible pour chaque visiteur — sauf ceux dont la page présente ce tag, signé par votre propre serveur. La restriction est appliquée dans notre requête de récupération, avant même que le modèle d'IA n'intervienne. Un visiteur sans le tag ne peut pas extraire le contenu par des questions habiles, car pour lui il n'a jamais été récupéré.
Comment ça marche
- Vous taggez des éléments de connaissances - sur la page Access Tags ou directement via l'API ; les éléments sans tag continuent de fonctionner pour tout le monde
- Votre serveur signe les tags de chaque visiteur - quand un membre connecté charge votre page, votre back-end détermine ses droits et les signe avec une clé secrète que vous seul détenez
- Le widget envoie l'attestation signée - elle accompagne chaque message du chat ; le navigateur ne fait que la transporter et ne peut pas la modifier sans casser la signature
- Nous vérifions et filtrons - une signature valide débloque les éléments aux tags correspondants ; une attestation absente, altérée ou expirée signifie que le visiteur n'obtient que le contenu public
Configuration
Activez la fonctionnalité sur la page Access Tags de votre tableau de bord — une clé de signature est générée pour vous. Conservez-la uniquement sur votre serveur ; quiconque la détient peut créer des attestations valides.
Taggez votre contenu soit sur cette même page, soit en envoyant les éléments via l'API :
POST /api/v1/knowledge/text/
{
"title": "Members-only price list",
"content": "...",
"website_id": "123",
"access_tags": ["premium"]
}
Faites ensuite imprimer par votre serveur l'attestation signée à côté du snippet du widget. Le message à signer est la liste de tags séparés par des virgules, jointe par une barre verticale à l'heure d'expiration si vous en utilisez une :
<?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>
La même signature en Node.js et en 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()
Sans expiration, signez simplement la chaîne de tags seule. Avec une expiration, une attestation cesse de fonctionner dès qu'elle est dépassée — utile quand des droits peuvent être révoqués, puisque le visiteur doit recharger une page que vous contrôlez pour obtenir une attestation fraîche.
Ce qui est garanti
- Application côté serveur - le filtre s'exécute dans notre requête de base de données lors de la récupération ; les éléments taggés sont absents du contexte de l'IA pour les visiteurs non autorisés, il n'y a donc rien à faire fuiter
- Fail-closed partout - pas de signature, signature erronée, attestation expirée, fonctionnalité désactivée, offre rétrogradée : dans chacun de ces cas, le visiteur n'obtient que le contenu public, jamais davantage
- Le navigateur ne peut pas falsifier l'accès - modifier les tags dans les outils de développement casse la signature ; seul votre serveur détient la clé
- Votre logique de droits reste la vôtre - nous ne savons jamais comment vous décidez qui reçoit quel tag ; nous vérifions seulement que votre serveur l'a affirmé
Bon à savoir
- Access Tags est de l'autorisation, User Context de la personnalisation - utilisez User Context pour renseigner l'IA sur le membre ; utilisez Access Tags pour contrôler les connaissances que l'IA peut mobiliser
- Le contenu exploré du site est toujours public - il provient de votre site public, il n'y a donc rien à restreindre ; les tags s'appliquent aux éléments texte, fichiers et API
- Un visiteur n'a besoin que d'un tag correspondant - un élément portant deux tags est accessible à un visiteur qui détient l'un ou l'autre
- Régénérer la clé invalide toutes les anciennes attestations - faites-le si la clé a pu fuiter, puis mettez vos pages à jour pour signer avec la nouvelle
- Les noms de tags sont à votre discrétion - jusqu'à 20 par élément, 50 caractères chacun, sans virgules ni barres verticales ; ils n'apparaissent jamais dans le chat visible des visiteurs
Se marie avec User Context : une fonctionnalité contrôle quelles connaissances l'IA peut utiliser pour ce visiteur, l'autre dit à l'IA qui est le visiteur.
Contexte utilisateur Transmettez les données des utilisateurs connectés à votre chatbot IA pour des conversations personnaliséesNote : Access Tags fait partie d'un accord Enterprise. Écrivez à [email protected] et nous vous guiderons.