Passer au contenu principal

Journaux d’audit

Bénéficiez d'une meilleure visibilité sur les activités des utilisateurs grâce à l'enregistrement de chaque action, pour une réponse rapide aux incidents, une conformité simplifiée et une transparence accrue.

Écrit par Perplexity Support
Mis à jour il y a plus de 2 mois

Perplexity Enterprise offre des fonctionnalités complètes de journalisation d’audit qui permettent aux organisations de suivre les activités des utilisateurs et les actions administratives.

Les journaux d’audit enregistrent les requêtes de bout en bout, depuis les saisies utilisateur jusqu’aux étapes et réponses des agents, ainsi que toute modification des paramètres effectuée par un administrateur. Chaque entrée de journal enregistre des informations essentielles telles que le « type d’événement » (une action effectuée par un « utilisateur »), l’heure de l’événement et les informations de l’utilisateur, comme l’adresse e-mail et l’adresse IP. Vous trouverez un exemple ci-dessous.

Les journaux d’audit sont transmis en temps réel à un point de terminaison webhook que vous configurez via des requêtes HTTP POST, fournissant un enregistrement détaillé et chronologique de toutes les actions des utilisateurs et des événements système au sein de votre organisation.

Les journaux d’audit sont réservés aux organisations Enterprise comptant 50 sièges ou plus, ou disposant d’au moins un utilisateur Enterprise Max.

Activer les journaux d’audit

Pour activer les journaux d’audit pour votre organisation :

  1. Accédez à vos Paramètres d’organisation dans le portail Perplexity Enterprise.

  2. Faites défiler jusqu’à Paramètres du journal d’audit et Activer la journalisation d’audit

  3. Configurez votre URL de webhook (doit être HTTPS) et cliquez sur Enregistrer

  4. Pour plus de sécurité, vous pouvez définir un en-tête d’autorisation qui sera utilisé pour authentifier toutes les requêtes vers l’URL de votre webhook. À moins que vous ne spécifiiez un schéma d’autorisation, la valeur que vous saisissez sera envoyée sous forme de jeton Bearer

Authentification du webhook

Vous pouvez sécuriser votre point de terminaison webhook en utilisant l’une des méthodes suivantes :

Jeton Bearer

Veuillez fournir un jeton sans espaces. Le système ajoutera automatiquement Bearer à l’en-tête.

  • Exemple : votre-jeton-secret-123

  • Envoyé comme : Authorization: Bearer your-secret-token-123

En-tête d’autorisation personnalisé

Veuillez fournir une valeur complète pour l’en-tête d’autorisation (elle doit contenir un espace).

  • Exemple : Splunk xyz-token-456

  • Envoyé comme : Authorization: Splunk xyz-token-456

Livraison du webhook

Format de la requête

Les journaux d’audit sont transmis à votre URL de webhook via des requêtes HTTP POST avec :

  • Méthode : POST

  • Type de contenu : application/json

En-tête d’authentification

Si vous avez configuré un jeton d’en-tête d’authentification, il sera inclus dans la requête :

Authorization: Bearer votre-jeton-123

Ou pour les en-têtes personnalisés :

Authorization: Splunk votre-jeton-456

Gestion des réponses

  • Votre point de terminaison webhook doit renvoyer des codes d’état HTTP 2xx pour indiquer une réception réussie.

  • Les codes d’état HTTP 4xx ou 5xx seront enregistrés comme des erreurs dans le système de Perplexity.

Schéma du journal d’audit

Tous les événements du journal d’audit suivent ce schéma standard :

Champ

Type

Obligatoire

Description

uuid

string

Oui

Identifiant unique de cet événement du journal d’audit (UUID v4 généré automatiquement)

horodatage

string

Oui

Horodatage ISO 8601 au format RFC3339 (par exemple, 2024-01-15T10:30:45+00:00)

event_type

string

Oui

Type d’événement survenu (voir Types d’événements)

user_email

string

Oui

Adresse e-mail de l’utilisateur ayant effectué l’action

ip_address

string

Oui

Adresse IP du client ayant initié l’action

user_agent

string

Oui

Chaîne user agent du navigateur ou de l’application client

session_id

string

Non

Identifiant de session pour le suivi des actions associées (peut être nul)

métadonnées

objet

Non

Données supplémentaires spécifiques à l’événement (la structure varie selon le type d’événement)

Types d’événements

Vous trouverez ci-dessous une définition de chaque type d’événement que vous pourriez rencontrer dans vos journaux d’audit :

Événements d’activité utilisateur

Type d’événement

Description

login

Utilisateur authentifié et connecté avec succès

requête

L’utilisateur a soumis une requête de recherche

answer_generated

La réponse générée par l’IA a été renvoyée à l’utilisateur.

file_upload

L’utilisateur a téléversé un fichier dans un espace.

file_download

L’utilisateur a téléchargé un fichier depuis un espace.

Événements administratifs

Type d’événement

Description

organization_settings_update

Les paramètres de l’organisation ont été modifiés par un administrateur.

admin_activity

Action d’administration interne effectuée (réservé au personnel de Perplexity)

bulk_member_add_batch

Plusieurs utilisateurs ont été ajoutés à l’organisation.

bulk_member_remove_batch

Plusieurs utilisateurs ont été retirés de l’organisation.

Événements de l’agent

Type d’événement

Description

comet_agent_action

L’agent Comet a effectué une action automatisée

Exemples de payload

L’entrée suivante est enregistrée lorsqu’un utilisateur envoie une requête de recherche :

{
"uuid": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"timestamp": "2024-01-15T14:25:12.345678+00:00",
"event_type": "query",
"user_email": "[alice@company.com](<mailto:alice@company.com>)",
"ip_address": "203.0.113.45",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
"session_id": "query_xyz789",
"metadata": {
"query_str": "Quelles sont les meilleures pratiques pour la sécurité des API ?"
}
}

Mise en forme spécifique à la plateforme

Webhooks Slack

Si l’URL de votre webhook est un webhook Slack (https://hooks.slack.com/…), les journaux d’audit sont automatiquement mis en forme selon le format Block Kit de Slack pour un affichage enrichi :

{
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Event Type:* Answer Generated"
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*User:* [alice@company.com](<mailto:alice@company.com>)\n*IP Address:* 203.0.113.45\n*User Agent:* Mozilla/5.0...\n*Session ID:* query_xyz789\n*Timestamp:* 2024-01-15T14:25:18.987654+00:00"
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "\n*Metadata:*\n• *answer:* API security best practices include...\n• *model:* claude-3-opus"
}
}
]
}

Remarque : Le formatage Slack inclut :

  • Le type d’événement est converti en majuscules initiales, sans les traits de soulignement.

  • Les valeurs de métadonnées sont tronquées à 500 caractères si elles dépassent cette limite.

  • La section des métadonnées totales est tronquée à 2 500 caractères pour respecter la limite de 3 000 caractères de Slack.

  • Les valeurs longues affichent un avis de troncature avec la longueur d’origine.

Collecteur d’événements HTTP Splunk (HEC)

Si votre en-tête d’authentification commence par « Splunk », les journaux d’audit sont automatiquement mis au format requis par Splunk :

{
"event": {
"uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"timestamp": "2024-01-15T10:30:45.123456+00:00",
"event_type": "login",
"user_email": "[user@company.com](<mailto:user@company.com>)",
"ip_address": "192.168.1.100",
"user_agent": "Mozilla/5.0...",
"session_id": "session-abc-123",
"metadata": {}
}
}

Webhooks génériques

Pour toutes les autres URL de webhook, la charge utile JSON standard (comme indiqué dans la section Exemples de charges utiles) est envoyée sans mise en forme supplémentaire.

Scénarios courants

Suivi des sessions de recherche utilisateur

Pour suivre la session de recherche d’un utilisateur, de la requête à la réponse :

  1. Événement de requête : L’utilisateur soumet une question

    • Contient query_str dans les métadonnées

    • Possède un session_id lié à la requête

  2. Événement de réponse générée : l’IA renvoie une réponse

    • Même session_id que l’événement de requête

    • Contient le texte complet de answer et le model d’IA utilisé

    • Peut être corrélé à l’événement de requête via session_id

Surveillance de l’accès aux fichiers

Pour suivre les fichiers consultés :

  1. Événement de téléversement de fichier : L’utilisateur ajoute un fichier à un espace

    • Contient filename, file_uuid, space_name et space_uuid

  2. Événement de téléchargement de fichier : l’utilisateur télécharge le fichier

    • Le même file_uuid peut être utilisé pour établir une corrélation avec le téléversement.

    • Indique qui a accédé au fichier et à quel moment

Audit des modifications de configuration

Pour suivre les modifications administratives :

Événement de mise à jour des paramètres de l’organisation :

L’administrateur modifie un paramètre

  • Contient la clé key du paramètre modifié

  • Affiche old_value et new_value à des fins de comparaison.

  • Peut être filtré par user_email pour identifier les administrateurs ayant effectué des modifications.

Meilleures pratiques

Implémentation du point de terminaison webhook

  • Répondez rapidement : votre point de terminaison doit répondre en moins d’une seconde pour éviter les délais d’expiration.

  • Traiter de manière asynchrone : Mettre en file d’attente les journaux d’audit pour traitement et répondre immédiatement

  • Valider les charges utiles : Vérifier la structure et le contenu des charges utiles entrantes

  • Sécurisez votre point de terminaison : Utilisez HTTPS et validez l’en-tête d’authentification

  • Gérer les échecs avec élégance : Consigner les erreurs, mais ne renvoyez pas de réponses d’erreur susceptibles de provoquer des tentatives répétées

Conservation et analyse des données

  • Stockage à long terme : Conservez les journaux d’audit pour la conformité et l’analyse de la sécurité

  • Indexez les champs clés : Indexez event_type, user_email, timestamp et session_id pour des requêtes efficaces

  • Corréler les événements : Utilisez session_id pour lier les événements associés (requêtes et réponses)

  • Surveiller les schémas : Surveiller les schémas d’accès inhabituels ou les activités suspectes

  • Exporter régulièrement : Conservez des sauvegardes des journaux d’audit en dehors du système de webhooks.

Considérations de sécurité

  • Protégez les URL de webhook : Gardez votre URL de webhook et votre jeton d’authentification confidentiels

  • Rotation des jetons : Effectuez une rotation périodique de vos jetons d’authentification

  • Surveiller les échecs de webhook : Suivre les échecs de livraison pour détecter les problèmes de point de terminaison

  • Valider les sources IP : Envisagez de valider que les requêtes webhook proviennent des plages IP de Perplexity.

  • Traitement des données personnelles : Les journaux d’audit contiennent les adresses e-mail et les adresses IP des utilisateurs. Traitez-les conformément à vos politiques de confidentialité.

Foire aux questions

Puis-je utiliser cette fonctionnalité si j'ai moins de 50 sièges dans mon organisation ?

Si votre organisation compte moins de 50 sièges, vous pouvez mettre à niveau au moins un siège vers Enterprise Max pour accéder aux journaux d’audit de votre organisation.

J’ai activé la fonctionnalité par erreur et des sièges supplémentaires m’ont été facturés. Que puis-je faire ?

Si vous avez activé Audit Logs par erreur et que vous n’êtes pas prêt à passer à 50 sièges ou plus, nous pouvons ajuster la facturation de votre compte et annuler toute facturation supplémentaire ou tout paiement supplémentaire. Veuillez vous assurer d’avoir désactivé cette fonctionnalité, puis contactez-nous.

2. Saisissez votre URL de webhook et cliquez sur Enregistrer.

3. Pour plus de sécurité, vous pouvez définir un en-tête d'autorisation qui sera utilisé pour authentifier toutes les demandes à votre URL de webhook. À moins que vous ne spécifiiez un schéma d’autorisation, la valeur que vous saisissez sera envoyée sous forme de jeton Bearer.

Exemples de charge utile JSON pour les événements du journal d'audit

/* Requête */
{
event_type: "query"
timestamp: 2025-02-20T09:05:31
user_email: "john@perplexity.ai"
ip_address: "162.229.229.229"
user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"
metadata: {
query: "Quels ont été les résultats de notre dernier rapport de pentest ?"
}
}

/* Téléchargement de fichier */
{
event_type: "file_upload"
timestamp: 2025-02-20T09:05:31
user_email: "john@perplexity.ai"
ip_address: "162.229.229.229"
user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"
metadata: {
file_name: "soc2_report.pdf"
file_uuid: "XXXXX"
space_name: "Security Reports"
space_uuid: "YYYYY"
}
}

Foire aux questions

Puis-je utiliser cette fonctionnalité si j’ai moins de 50 sièges dans mon organisation ?

Si votre organisation compte moins de 50 sièges, vous pouvez mettre à niveau au moins un siège vers Enterprise Max pour accéder aux journaux d'audit de votre organisation.

J’ai activé la fonctionnalité par erreur et des sièges supplémentaires m’ont été facturés.

Si vous avez activé les journaux d'audit par erreur et que vous n'êtes pas prêt à passer à plus de 50 sièges, nous pouvons ajuster la facturation de votre compte et annuler toute facturation ou tout paiement supplémentaire. Veuillez vous assurer d’avoir désactivé cette fonctionnalité, puis contactez-nous.