Autenticazione degli utenti nella chat web
Con la sicurezza della chat web abilitata, è possibile autenticare in modo sicuro i clienti per ID utente.
Il comportamento di default dell'integrazione della chat web è identificare gli utenti univoci impostando il valore della proprietà user_id che viene inviata come parte di ogni messaggio all'assistente. Per ulteriori informazioni,
vedi Gestione delle informazioni sull'identità utente nella chat web.
Questo approccio è sufficiente per tenere traccia degli utenti univoci a scopo di fatturazione, ma non è sicuro e non deve essere utilizzato per il controllo degli accessi. Se abiliti la sicurezza della chat web, utilizza JWT (JSON Web Tokens) per autenticare in modo sicuro i tuoi utenti e controllare l'accesso alle funzioni del tuo assistente che richiedono l'autorizzazione.
Autenticazione con la richiesta sub
Per utilizzare questo metodo per l'autenticazione degli utenti, è necessario prima abilitare la funzione di sicurezza della chat Web. Per ulteriori informazioni, consultare Abilitazione della sicurezza della chat Web.
Quando si crea un JWT per la chat web, è necessario specificare un valore per la richiesta sub (oggetto), che identifica l'utente. Per gli utenti anonimi, è possibile utilizzare un ID univoco generato.
Quando si genera un ID utente per un utente anonimo, assicurarsi di salvare l'ID generato in un cookie per evitare che venga fatturato più volte per lo stesso cliente.
Quando l'integrazione della chat Web riceve un messaggio firmato con questo JWT, memorizza l'ID utente dalla richiesta sub come system_integrations.channel.private.user.id in azioni e integrations.channel.private.user.id per la finestra di dialogo. Per ulteriori informazioni, vedi Variabili di integrazione.
Se ai propri clienti viene richiesto di accedere prima di avviare una sessione di chat Web, è possibile utilizzare l'ID utente autenticato come valore della richiesta sub quando si crea il JWT. Dal momento che l'integrazione della
chat web convalida il JWT e utilizza la richiesta sub per impostare l'ID utente, il tuo assistente può ora contare su system_integrations.channel.private.user.id nelle azioni e integrations.channel.private.user.id nel dialogo per il controllo dell'accesso sicuro alle funzioni che richiedono l'autorizzazione.
Dopo aver specificato JWT per la chat web, non è possibile passare a un JWT con una richiesta sub differente durante la sessione. Se è necessario aggiungere le informazioni di accesso autenticate nel mezzo di una sessione, è possibile
memorizzarle come parte del payload dell'utente. Per un esempio di come eseguire questa operazione, consultare Esercitazione: Autenticazione di un utente nel mezzo di una sessione.
Fatturazione e privacy
Per i piani basati sull'utente, l'ID utente viene utilizzato per la fatturazione. (Non è possibile utilizzare il metodo dell'istanza updateUserID() per impostare l'ID utente se la sicurezza della chat Web è abilitata.) Lo stesso
ID utente viene utilizzato anche come ID cliente, che può essere utilizzato per effettuare richieste di eliminazione dei dati utente. Poiché l'ID cliente viene inviato in un campo di intestazione, l'ID specificato deve soddisfare i requisiti
per i campi di intestazione come definito in RFC 7230.
Se ti viene richiesto di rispettare i requisiti GDPR, potresti dover archiviare in modo permanente tutti gli ID utente anonimi generati, specialmente per gli utenti anonimi che successivamente accedono con le credenziali dell'utente. La memorizzazione di questi ID utente consente di eliminare in un secondo momento tutti i dati associati a un singolo cliente, se richiesto.
Per ulteriori informazioni sulla fatturazione basata sull'utente, vedi Piani basati sull'utente spiegati. Per ulteriori informazioni sull'eliminazione dei dati utente, consultare Etichettatura ed eliminazione dei dati.
Scollegamento in corso
Per scollegare un cliente, è necessario eliminare la chat web.
Se si ricarica la pagina quando un cliente si scollega, richiamare il metodo dell'istanza di destroySession() per rimuovere qualsiasi riferimento alla sessione corrente dalla memorizzazione e dai cookie del browser. Se non si richiama questo metodo, le informazioni protette da JWT non sono a rischio, ma la chat web tenterà di connettersi alla sessione
precedente e non riuscirà.
Se non si esegue il ricaricamento di una pagina completa quando un cliente si scollega, richiamare il metodo dell'istanza destroy(). Il metodo destroy rimuove l'istanza corrente della chat web configurata per l' userID corrente dal DOM e dalla memoria del browser. Successivamente, richiamare il metodo dell'istanza
destroySession().