Sensible Daten im Web-Chat verschlüsseln
Mithilfe des von IBMbereitgestellten öffentlichen Schlüssels können Sie eine weitere Verschlüsselungsebene hinzufügen, um sensible Daten, die Sie über den Web-Chat senden, auszublenden.
Wenn Sie diese Methode zum Verschlüsseln von Daten verwenden möchten, müssen Sie zuerst die Sicherheitsfunktion des Web-Chats aktivieren. Weitere Informationen finden Sie unter Web-Chat-Sicherheit aktivieren.
Verwenden Sie diese Methode, um sensible Informationen in Nachrichten zu senden, die von Ihrer Website stammen, wie z. B. Informationen über die Kundentreuestufe, eine Benutzer-ID oder Sicherheitstoken, die in Webhooks verwendet werden sollen, die von Aktionen aufgerufen werden. Informationen, die auf diese Weise an Ihren Assistenten übergeben werden, werden in einer privaten Kontextvariablen gespeichert. Private Variablen können von Kunden nicht angezeigt werden und werden nie an den Web-Chat zurückgesendet.
Sie können beispielsweise einen Geschäftsprozess für einen VIP-Kunden starten, der sich von dem Prozess unterscheidet, den Sie für einen Standardkunden starten. Sie möchten nicht, dass Nicht-VIPs wissen, dass sie als solche kategorisiert sind, aber Sie müssen diese Informationen an Ihre Aktion übergeben, damit sie den Ablauf des Datenaustauschs ändern können. Dazu können Sie den MVP-Status des Kunden als verschlüsselte Variable übergeben. Diese private Kontextvariable kann von der Aktion verwendet werden, jedoch nicht von anderen Aktionen.
Lernprogramm: Ein Lernprogramm, das ein Beispiel für die Verwendung der Web-Chat-Sicherheit zum Authentifizieren von Benutzern und zum Schützen sensibler Daten zeigt,
finden Sie unter Lernprogramm: Benutzer während einer Sitzung authentifizieren.
So verschlüsseln Sie sensible Daten:
-
Klicken Sie auf der Registerkarte Sicherheit der Einstellungen für die Web-Chat-Integration auf die Schaltfläche Schlüssel generieren.
-
Kopieren Sie den öffentlichen Schlüssel, der im Feld IBM-bereitgestellter öffentlicher Schlüssel angezeigt wird. Dieses Feld ist nur verfügbar, wenn die Web-Chat-Sicherheit aktiviert ist.
-
Fügen Sie in der JavaScript-Funktion, die Sie zum Erstellen Ihres JWT verwenden, in die Nutzdaten einen privaten Anspruch namens
user_payloadein. Verwenden Sie diesen Anspruch, um die sensiblen Daten aufzunehmen, die mit dem öffentlichen Schlüssel IBM verschlüsselt wurden.Das folgende Code-Snippet zeigt eine Funktion, die eine userID und Benutzernutzdaten akzeptiert. Wenn Benutzernutzdaten bereitgestellt werden, werden deren Inhalte verschlüsselt und mit dem öffentlichen Schlüssel IBM signiert. In diesem Beispiel wird der öffentliche Schlüssel in einer Umgebungsvariablen gespeichert.
// Example code snippet to encrypt sensitive data in JWT payload. const jwt = require('jsonwebtoken'); const RSA = require('node-rsa'); const rsaKey = new RSA(process.env.PUBLIC_IBM_RSA_KEY); /** * Returns a signed JWT. Optionally, also adds an encrypted user payload * as stringified JSON in a private claim. */ function mockLogin(userID, userPayload) { const payload = { sub: userID, // Required // The exp claim is automatically added by the jsonwebtoken library. }; if (userPayload) { // If there is a user payload, encrypt it using the IBM public key // and base64 format. payload.user_payload = rsaKey.encrypt(userPayload, 'base64'); } const token = jwt.sign(payload, process.env.YOUR_PRIVATE_RSA_KEY, { algorithm: 'RS256', expiresIn: '1h' }); return token; }Die Nutzdaten des Benutzers müssen gültige JSON-Daten sein. Der Web-Chat verwendet die Standardoptionen der Bibliothek Node-RSA, die das Verschlüsselungsschema
pkcs1_oaepund die Verschlüsselungscodierungbase64erwartet. -
Wenn die Web-Chat-Integration eine mit diesem JWT signierte Nachricht empfängt, wird der Inhalt des
user_payload-Claims entschlüsselt und alscontext.integrations.chat.private.user_payload-Objekt gespeichert. Da es sich um eine private Variable handelt, wird sie nicht in Protokolle aufgenommen.