Méthodes d’Authentification
Il existe deux façons principales de s’authentifier avec l’API UBIK, selon votre contexte d’intégration :1. Clé API (Côté Serveur)
Pour la communication de backend à backend, utilisez votre clé API secrète. Passez-la dans l’en-têteX-API-KEY. Cela donne un accès complet aux ressources de votre compte.
cURL
external_user_id (dans les en-têtes ou le corps) lors de l’utilisation de la clé API. Cela vous permet d’effectuer des actions au nom d’un utilisateur final spécifique tout en utilisant vos identifiants côté serveur.
cURL
2. JWT Scopé (Côté Client & Multi-Tenant)
Pour les applications frontend ou lorsque vous devez isoler les données pour des utilisateurs finaux spécifiques, utilisez un JSON Web Token (JWT) à courte durée de vie.- Générer un Jeton : Appelez
POST /auth/tokendepuis votre backend en utilisant votre clé API. Vous pouvez optionnellement passer unexternal_user_idpour restreindre le jeton à un utilisateur spécifique. - Utiliser le Jeton : Passez le jeton dans l’en-tête
Authorization.
cURL
Multi-Tenancy & Isolation des Données
UBIK est conçu pour supporter les applications multi-tenant nativement. Vous pouvez gérer des millions de vos propres utilisateurs finaux sous un seul compte UBIK en utilisant le paramètreexternal_user_id.
Lorsque vous authentifiez une requête avec un external_user_id (soit via un JWT scopé, soit en le passant dans le corps/en-tête de la requête), l’API applique un Modèle d’Accès Hybride :
1. Ressources Privées (Isolation Stricte)
- Les Sessions d’Agent et les Exécutions d’Outils créées avec un
external_user_idspécifique sont strictement privées. Elles ne peuvent être accédées que par ce même ID utilisateur. - L’Utilisateur A ne peut pas voir l’historique de chat ou les résultats d’outils de l’Utilisateur B.
2. Ressources Partagées (Accès Hybride)
- Les Espaces de Travail et les Documents suivent un modèle hybride. Un utilisateur peut accéder à :
- Ressources Privées : Créées spécifiquement pour eux (marquées avec leur
external_user_id). - Ressources Globales : Créées sur votre compte sans aucun
external_user_id(par exemple, espaces de travail de projet partagés, bases de connaissances).
- Ressources Privées : Créées spécifiquement pour eux (marquées avec leur
- Cela vous permet de construire des agents qui ont accès simultanément à la base de connaissances partagée de votre entreprise et au contexte privé de l’utilisateur.
Pourquoi utiliser external_user_id ?
- Filtrage Automatique : L’API filtre automatiquement les endpoints de liste selon les règles ci-dessus. Vous n’avez pas besoin de construire une logique de filtrage complexe dans votre backend.
- Frontières de Sécurité : Cela applique une isolation stricte au niveau de la base de données.
- Auth Simplifiée : Vous pouvez générer des jetons scopés à courte durée de vie pour vos clients frontend qui encodent cet ID.
Exemples d’Intégration
Intégration Côté Serveur (Clé API)
Si votre serveur backend communique avec UBIK, vous pouvez simplement passer l’external_user_id dans le corps de la requête tout en utilisant votre clé API principale.
cURL
Intégration Côté Client (JWT Scopé)
Si vous intégrez UBIK directement dans une application frontend (comme un widget de chat), n’exposez pas votre clé API. Au lieu de cela, générez un jeton JWT à courte durée de vie sur votre serveur qui encode l’external_user_id.
Étape 1 : Générer un Jeton Scopé (Côté Serveur)
Appelez cet endpoint depuis votre backend pour obtenir un jeton pour un utilisateur spécifique.
cURL
access_token retourné dans l’en-tête Authorization. L’external_user_id est automatiquement appliqué, vous n’avez donc pas besoin de l’envoyer dans le corps.
cURL

