Benutzer im Web-Chat authentifizieren

Wenn die Web-Chat-Sicherheit aktiviert ist, können Sie Kunden sicher nach Benutzer-ID authentifizieren.

Das Standardverhalten der Web-Chat-Integration besteht darin, eindeutige Benutzer zu identifizieren, indem der Wert der Eigenschaft user_id festgelegt wird, die als Teil jeder Nachricht an den Assistenten gesendet wird. Weitere Informationen finden Sie unter Benutzeridentitätsinformationen im Web-Chat verwalten.

Dieser Ansatz ist für die Verfolgung eindeutiger Benutzer zu Abrechnungszwecken ausreichend, aber er ist nicht sicher und sollte nicht für die Zugriffssteuerung verwendet werden. Wenn Sie die Web-Chat-Sicherheit aktivieren, verwenden Sie JSON Web Tokens (JWTs), um Ihre Benutzer sicher zu authentifizieren und den Zugriff auf Funktionen Ihres Assistenten zu steuern, die eine Berechtigung erfordern.

Authentifizierung mit dem Anspruch sub

Wenn Sie diese Methode für die Authentifizierung von Benutzer verwenden wollen, müssen Sie zuerst die Sicherheitsfunktion für Web-Chats aktivieren. Weitere Informationen finden Sie unter Web-Chat-Sicherheit aktivieren.

Wenn Sie ein JWT für den Web-Chat erstellen, müssen Sie einen Wert für die Deklaration sub (Subjekt) angeben, der den Benutzer identifiziert. Für anonyme Benutzer können Sie eine generierte eindeutige ID verwenden.

Wenn Sie eine Benutzer-ID für einen anonymen Benutzer generieren, achten Sie darauf, die generierte ID in einem Cookie zu speichern, um zu verhindern, dass demselben Kunden mehrmals in Rechnung gestellt wird.

Wenn die Web-Chat-Integration eine mit diesem JWT signierte Nachricht empfängt, wird die Benutzer-ID aus der sub-Deklaration als system_integrations.channel.private.user.id in Aktionen und integrations.channel.private.user.id für den Dialog gespeichert. Weitere Informationen finden Sie unter Integrationsvariablen.

Wenn Ihre Kunden sich vor dem Starten einer Web-Chat-Sitzung anmelden müssen, können Sie die authentifizierte Benutzer-ID als Wert für den Anspruch sub verwenden, wenn Sie das JWT erstellen. Da die Web-Chat-Integration das JWT validiert und die sub-Deklaration verwendet, um die Benutzer-ID festzulegen, kann sich Ihr Assistent jetzt auf system_integrations.channel.private.user.id in Aktionen und integrations.channel.private.user.id im Dialog für die sichere Zugriffssteuerung auf Funktionen verlassen, für die eine Berechtigung erforderlich ist.

Nachdem Sie das JWT für den Web-Chat angegeben haben, können Sie während der Sitzung nicht zu einem JWT mit einem anderen sub-Anspruch wechseln. Wenn Sie während einer Sitzung authentifizierte Anmeldeinformationen hinzufügen müssen, können Sie sie stattdessen als Teil der Benutzernutzdaten speichern. Ein Beispiel hierfür finden Sie im Lernprogramm: Benutzer während einer Sitzung authentifizieren.

Abrechnung und Datenschutz

Bei benutzerbasierten Tarifen wird die Benutzer-ID für die Rechnungsstellung verwendet. (Sie können die updateUserID()-Instanzmethode nicht verwenden, um die Benutzer-ID festzulegen, wenn die Web-Chat-Sicherheit aktiviert ist.) Dieselbe Benutzer-ID wird auch als Kunden-ID verwendet, die zum Erstellen von Anforderungen zum Löschen von Benutzerdaten verwendet werden kann. Da die Kunden-ID in einem Headerfeld gesendet wird, muss die ID, die Sie angeben, die Anforderungen für Headerfelder gemäß RFC 7230erfüllen.

Wenn Sie die DSGVO-Anforderungen erfüllen müssen, müssen Sie möglicherweise alle generierten anonymen Benutzer-IDs dauerhaft speichern, insbesondere für anonyme Benutzer, die sich später mit Benutzerberechtigungsnachweisen anmelden. Wenn Sie diese Benutzer-IDs speichern, können Sie später alle Daten löschen, die einem einzelnen Kunden zugeordnet sind, wenn Sie dazu aufgefordert werden.

Weitere Informationen zur benutzerbasierten Abrechnung finden Sie unter Benutzerbasierte Pläne-Erläuterung. Weitere Informationen zum Löschen von Benutzerdaten finden Sie unter Daten kennzeichnen und löschen.

Abmeldung...

Zum Abmelden eines Kunden müssen Sie den Web-Chat löschen.

Wenn Sie die Seite erneut laden, wenn sich ein Kunde abmeldet, rufen Sie die Instanzmethode destroySession() auf, um alle Verweise auf die aktuelle Sitzung aus den Cookies und dem Speicher des Browsers zu entfernen. Wenn Sie diese Methode nicht aufrufen, sind die durch den JWT geschützten Informationen nicht gefährdet, aber der Web-Chat wird versuchen, eine Verbindung zur vorherigen Sitzung herzustellen, was fehlschlägt.

Wenn Sie keine vollständige Seite erneut laden, wenn sich ein Kunde abmeldet, rufen Sie die Instanzmethode destroy() auf. Die Methode destroy entfernt die aktuelle Instanz des Webchats, die für die aktuelle userID konfiguriert ist, aus dem DOM und dem Browser-Speicher. Rufen Sie als Nächstes die Instanzmethode destroySession() auf.