Zum Hauptinhalt springen

Authentifizierung von users im Messenger mit JSON Web Tokens (JWTs)

So schützen Sie Ihren Messenger und user sessions vor Cross-User-Impersonation, Session-Diebstahl und mehr.

Verfasst von Penny Gray

Wenn Sie den Messenger auf Ihrer Website für eingeloggte users installiert haben, ist es wichtig, ihn zu sichern und zu verhindern, dass böswillige Akteure Ihre users imitieren oder unautorisierte Daten senden.

Bei einem nicht gesicherten Messenger könnte jemand mit Ihrem Intercom Messenger interagieren und die Identität eines anderen users vortäuschen, indem er eine bekannte Kennung wie deren E-Mail-Adresse oder user_id angibt. Dadurch kann ein Angreifer sich als echter user gegenüber Ihren Teammitgliedern ausgeben und Zugriff auf vorherige Gespräche und potenziell sensible Daten erhalten.

Falls hilfreich, hier ein Video-Rundgang über die Funktion und die Risiken, die sie mindert:

Hinweis:

  • Wenn Sie eine Messenger-Integration mit eingeloggten users haben, empfehlen wir dringend, Ihren Messenger zu sichern.

  • Wenn mehrere users dieselbe E-Mail-Adresse teilen und Ihre Integration nur E-Mail als Kennung verwendet, wird Intercom die Anfrage mit einem Konfliktfehler ablehnen, anstatt zu erraten, welchen user es verwenden soll. Um eine erfolgreiche Authentifizierung sicherzustellen, fügen Sie immer eine stabile eindeutige Kennung (user_id) in Ihre JWT-Nutzlast ein. Beachten Sie, dass die JWT-Identitätsprüfung user_id erfordert; Tokens ohne diese werden abgelehnt.


Was ist ein JSON Web Token (JWT)?

Ein JSON Web Token (JWT) ist ein branchenüblicher Standard zum Signieren von Daten. Es besteht typischerweise aus drei Teilen, getrennt durch Punkte. Ein typisches JWT sieht so aus: header.payload.signature.

  • Der Header gibt den Token-Typ (JWT) und den Signaturalgorithmus (z. B. HS256) an.

  • Die Nutzlast enthält Angaben über den user oder die session (z. B. user_id, E-Mail).

  • Schließlich stellt die Signatur sicher, dass der Token nicht manipuliert wurde, indem ein geheimer oder privater Schlüssel verwendet wird.


Was sind die Vorteile der Sicherung des Messengers mit JSON Web Tokens (JWTs)?

  • Sichere user-Identität: Die Sicherung Ihres Messengers ermöglicht es Ihren Teammitgliedern, sicher zu sein, dass der user, mit dem sie sprechen, wirklich dieser user ist.

  • Erhöhte Sicherheit der user-Daten: Die Sicherung Ihres Messengers ermöglicht die sichere Übertragung von Datenattributen über die Messenger API.

  • Reduziertes Risiko durch gestohlene sessions: Die Sicherung Ihres Messengers mit JWTs ermöglicht es Ihnen, eine Ablaufzeit für den Token festzulegen, wodurch das Risiko von Datenlecks, die durch gestohlene Tokens im Browser des users entstehen könnten, erheblich reduziert wird. Durch die Angabe einer kurzen Ablaufzeit wird das Risiko verringert.

  • Sicherere Fin- und AI-workflows: Übergeben Sie Ihre komplexen Prozesse, Actions und Workflows an Fin, selbst wenn sie vertrauenswürdige user-Informationen benötigen.

Tipp: Die Aktivierung der Messenger-Sicherheit schaltet auch den vollständigen Gesprächsverlauf Ihrer users im Messenger frei. Ohne diese können eingeloggte users nur Gespräche der letzten 14 Tage sehen – eine Sicherheitsmaßnahme zum Schutz vor unbefugtem Zugriff. Sobald die Messenger-Sicherheit auf einem Kanal aktiv ist, wird das Verlaufs-Limit automatisch aufgehoben. Details finden Sie unter User conversation history visibility.

Durch die sichere Übertragung der user-Identität und -Daten sowie die Durchsetzung der Token-Ablaufzeit gewährleisten JWTs, dass Ihr Intercom Messenger den höchstmöglichen Sicherheitsstandard erfüllt.


Kundenerlebnis

Bei der Verwendung von JWTs mit dem Intercom Messenger gestaltet sich das Erlebnis wie folgt:

  • Ihre Messenger-Integration startet Ihren eingeloggten user mit einer Intercom('boot')-Anfrage, die ein JWT enthält, das alle user-Daten umfasst, die Sie an Intercom senden möchten. Die Signatur des JWT wird mit dem Messenger-Geheimschlüssel aus Ihren Einstellungen erzeugt.

  • Anschließend stellt Intercom dem user ein Sitzungscookie im Browser bereit. Dieses Cookie hat eine Standarddauer von 7 Tagen und wird während seiner Lebensdauer zur Authentifizierung des users und zur Durchführung von Aktualisierungen verwendet.

  • Wenn die session abläuft und kein neues JWT gesendet wird, endet die session des users. Der user sieht dann einen frischen Messenger als abgemeldeten Website-Besucher. Dieser enthält nicht den Gesprächsverlauf.

  • Sobald der Messenger mit Intercom('boot') und einem gültigen JWT neu gestartet wird, identifiziert der Messenger den user und zeigt diesem seine historischen Gespräche sowie eine neue session an. Zusätzlich werden alle abgemeldeten Aktivitäten, die auf demselben Gerät stattgefunden haben, in das Konto des authentifizierten users zusammengeführt.

Wenn Sie möchten, dass die Lebensdauer des session-Cookies des users kürzer als die Standard-7 Tage ist, können Sie die TTL des Cookies in Millisekunden mit dem session_duration Messenger-Attribut angeben.


Installation: JWTs generieren und senden

Schritt 1: Installieren Sie den Messenger in Ihrer Anwendung

Die einzigartigen Einrichtungshinweise für Ihren Workspace finden Sie unter Einstellungen > Messenger > Sicherheit.

Der Hauptunterschied zwischen einer unsicheren Messenger-Konfiguration und einer sicheren besteht darin, dass Sie ein zusätzliches Feld intercomUserJwt in Ihre Benutzeranfragen aufnehmen, das zur Identifizierung und Aktualisierung des users verwendet wird.

Hinweis: Sie sehen eine Option, Datenattribute in Ihr Javascript-Snippet einzufügen. Dies steuert, welche Daten Sie an Intercom senden möchten. Da Sie JWTs zur Datenübertragung verwenden, sollten Sie hier nur Attribute einschließen, die Sie nicht signieren möchten, z. B. wenn Sie einige front-end-spezifische Daten senden wollen.

Wenn Sie keine Daten außerhalb des JWT senden möchten, können Sie alle Daten aus Ihrem Snippet entfernen, außer api_base und app_id. Ihre app_id ist die eindeutige Kennung für Ihren Intercom Workspace.

Schritt 2: Beginnen Sie mit der Generierung von JWTs für Ihre users

Sie können branchenübliche JWT-Bibliotheken verwenden, um den Token zu generieren, wobei Sie den Messenger API Secret als geheimen Schlüssel verwenden. Ihren geheimen Schlüssel können Sie unter Einstellungen > Workspace > Sicherheit > Messenger generieren.

Gehen Sie dann zurück zu Messenger Einstellungen > Sicherheit und wählen Sie Ihre Backend- und Frontend-Frameworks aus, um relevante Codebeispiele für Ihre Installation zu erhalten.

Hier ein Beispiel für Node.js:

Wichtig: Ihre Messenger API Secret Keys sowie der Code zur Generierung Ihrer JWTs dürfen niemals im Frontend-Code verwendet werden. Sie sollten dies immer serverseitig tun und Ihre geheimen Schlüssel entsprechend sichern.

Wenn Sie zusätzliche Attribute über Ihre users senden möchten (z. B. price_plan oder number_of_songs_added), fügen Sie diese ebenfalls in Ihr JWT ein. user_id ist das einzige erforderliche Feld. Erfahren Sie hier mehr über benutzerdefinierte Datenattribute.

Wann sollte ich das JWT einfügen?

Sie sollten für jede Anfrage, bei der Sie einen user im Messenger starten oder versuchen, Daten über ihn zu aktualisieren, ein JWT senden.

Welche Ablaufzeit sollte ich setzen?

Setzen Sie eine kurze Ablaufzeit für Ihr JWT, damit es lange genug lebt, um eine vollständige Anfrage zu uns zu senden und verarbeitet zu werden. Die Ablaufzeit ist kein Pflichtfeld, wird aber dringend empfohlen, um das Risiko von Token-Wiederholungen zu verringern.

Schritt 3: Fügen Sie JWTs in Ihr Messenger-Snippet ein

Beim Starten des Messengers für einen eingeloggten user können Sie ein signiertes JSON Web Token bereitstellen und es dem Attribut intercom_user_jwt der Messenger-Nutzlast zuweisen.

Beispiel für eine Client-seitige Konfiguration:

  window.Intercom("boot", {
api_base: "https://api-iam.intercom.io",
app_id: "APP_ID_CODE",
intercom_user_jwt: <YOUR_USER_JWT_TOKEN>,
};

Dieses JWT kann beliebige user-Datenattribute enthalten, die Sie sicher für den user senden möchten. Sobald ein gültiges JWT für den user empfangen wird, wird im Browser des users ein Sitzungscookie mit einer Standarddauer von 7 Tagen erstellt.

Um die TTL des Messenger-Session-Cookies zu steuern, können Sie ein Maximum unter Einstellungen > Kanäle > Messenger > Allgemein > Halten Sie Ihren Messenger sicher festlegen.

Schritt 4: Stellen Sie sicher, dass Updates für Ihre Attribute deaktiviert sind

Es ist möglich, unsichere Updates für Datenattribute der Messenger API zu aktivieren, was bedeutet, dass jede Aktualisierung über den Messenger für dieses Attribut erfolgreich ist.

Wenn Sie einige Daten sicher in Ihrem JWT senden, sollten Sie sicherstellen, dass Sie unsichere Messenger-Updates für diese Attribute deaktivieren, sodass sie nur über ein gültiges JWT aktualisiert werden. Hinweis: Dieser Schalter verhindert nicht, dass Sie Daten direkt von leads mit einem Bot sammeln.

Wir empfehlen, diesen Schalter für jedes Attribut zu aktivieren, das Sie in Ihrem JWT senden.

Schritt 5: Benutzersitzungen beim Logout beenden

Intercom ermöglicht es Ihnen, den Intercom Messenger auf jeder öffentlichen Website zu platzieren, die Sie besitzen (Ihre Marketingseite, Ihre Dokumentationsseite, Ihr Entwicklerportal usw.). Um die Kontinuität der Gespräche über all diese möglicherweise unterschiedlichen Subdomains hinweg zu gewährleisten, während Ihre users angemeldet sind, setzen wir ein Cookie im Browser Ihres users. Dieses Cookie läuft nach einer Woche ab.

Jeder user, der einen gemeinsam genutzten Computer und Browser mit jemand anderem verwendet, kann die zuletzt angemeldete user-Konversationshistorie sehen, bis das Cookie abläuft. Deshalb ist es sehr wichtig, Intercom ordnungsgemäß zu beenden, wenn die Sitzung eines users in Ihrer App endet (manuell oder automatisch durch Logout).

So beenden Sie Intercom:

  1. Sie haben bereits begonnen, Ihren user über das Intercom JS-Snippet oder die „boot“-Methode zu verfolgen.

  2. Wenn sich Ihr user von Intercom abmeldet (oder automatisch von Ihrer App abgemeldet wird), rufen Sie Intercom('shutdown'); aus unserer JavaScript API auf, um die Intercom-Sitzung zu beenden und das Cookie zu löschen.

Letzter Schritt: Erzwingen Sie die Messenger-Sicherheit für Ihren Workspace

Wenn Ihre Integration JWTs für Ihre users korrekt sendet, sollten Sie die Messenger-Sicherheit erzwingen, indem Sie sie in den Messenger-Einstellungen > Sicherheit aktivieren. Dadurch verlangt Intercom, dass Anfragen für Ihre Workspace-users entweder mit einem gültigen JWT oder einem gültigen user_hash gesichert sind.


Fehlerbehebungshinweise

Wir haben zwei Tools, die Ihnen bei der Fehlerbehebung Ihrer Installation helfen: eine Möglichkeit, aktuelle Fehlerprotokolle einzusehen, und einen Token-Debugger.

Überprüfen Sie Ihre Installationsprotokolle

Unter Schritt 6 in Einstellungen > Kanäle > Messenger > Sicherheit sehen Sie Ihre Installationsprotokolle. Diese zeigen alle Fehlerprotokolle im Zusammenhang mit Ihrer JWT-Installation. Hier sehen Sie Fehler, die darauf hinweisen, ob Ihre JWTs ungültig, abgelaufen usw. sind. Klicken Sie auf "Protokoll anzeigen", um ein vollständiges Protokoll mit Anforderungs-ID, Zeitstempel, Referer und Benutzerdaten zu sehen. Dies kann Ihnen helfen zu verstehen, warum Ihre Anfrage fehlgeschlagen ist, und es erleichtert die Rückverfolgung zu Ihrer eigenen App.

Häufige Fehlermeldungen

  • HTTP 400 - "user_hash und intercom_user_jwt können nicht gleichzeitig bereitgestellt werden": Die Anfrage enthielt sowohl ein JWT als auch einen user_hash. Kunden sollten entweder einen dieser Werte angeben, aber nicht beide.

  • HTTP 400 - „user_id im Payload fehlt“: Alle JWTs müssen user_id als Teil des Payloads enthalten. Wenn ein Kunde „email“ als primären Bezeichner verwendet, sollte er den E-Mail-Wert sowohl in das user_id- als auch in das email-Feld im Payload einfügen.

  • HTTP 400 - „Ungültiger intercom_user_jwt-Payload“: Der JWT-Payload ist ungültig. Kunden sollten sicherstellen, dass der Payload korrekt formatiert, kodiert und mit einem SHA256 HMAC unter Verwendung des api_secret-Werts als Signaturgeheimnis signiert ist.

  • HTTP 400 - „Intercom_user_jwt abgelaufen“: Das JWT-‘exp’ ist ein Zeitstempel in der Vergangenheit. Kunden sollten ein Ablaufdatum in der Zukunft angeben.

  • HTTP 400 - „JWT-Identitätsabweichung": Die im JWT angegebene user ID stimmt nicht mit dem user überein, der mit dem aktiven intercom-Sitzungscookie verknüpft ist. Dies deutet darauf hin, dass versucht wird, zwei konkurrierende Sitzungen zu starten. Stellen Sie sicher, dass Sie Intercom('shutdown') aufrufen, bevor Sie versuchen, einen neuen user zu booten.

  • HTTP 400 - "Ungültiger intercom_user_jwt": Stellen Sie sicher, dass Sie einen gültigen user korrekt booten.

JWT-Decoder

Unser Decoder-Tool bietet Ihnen auch eine Möglichkeit, ein JSON-Web-Token zu überprüfen. Sie finden es in der Seitenleiste auf den Installationsseiten.

Im Tool können Sie eines Ihrer generierten user JWTs auf Gültigkeit prüfen. Wählen Sie den relevanten geheimen Schlüssel, den Sie zur Generierung des JWT verwendet haben, und klicken Sie auf Dekodieren.

Nach dem Dekodieren können Sie die user-Details aus dem Payload Ihres JWT, den Header und eine Notiz sehen, ob es gültig oder ungültig ist. Das Anzeigen des Payloads kann hilfreich sein, um zu überprüfen, ob Sie ein Attribut senden oder nicht.

In diesem Beispiel habe ich sowohl ein ungültiges Geheimnis verwendet als auch das user_id-Feld nicht eingeschlossen, was beide zu einem Fehler führen.

Was passiert, wenn ich ein ungültiges JWT übergebe?

Wenn intercom_user_jwt in Ihrer Boot-Anfrage enthalten ist, aber ungültig ist (z. B. ein Platzhalterwert oder mit dem falschen Geheimnis signiert), wird der Messenger nicht geladen – selbst wenn die Erzwingung der Messenger-Sicherheit in Ihrem Workspace deaktiviert ist. Der Messenger überspringt die JWT-Validierung nur, wenn das Feld vollständig fehlt; ein ungültiger Wert wird immer abgelehnt, unabhängig davon, ob die Erzwingung aktiviert ist oder nicht.

Tipp: Wenn Sie noch nicht bereit sind, gültige JWTs zu generieren und die Messenger-Sicherheit nicht erzwungen wird, entfernen Sie das Feld intercom_user_jwt vollständig aus Ihrem Messenger-Boot-Code (anstatt einen Platzhalter oder einen leeren Wert zu belassen). Dadurch wird eine unsichere, aber funktionale Messenger-Installation wiederhergestellt, bis Ihre JWT-Generierung bereit ist.

Warum erhalte ich einen 403 Forbidden-Fehler, wenn ich einen angemeldeten user mit einem gültigen JWT boote?

Ein 403-„Forbidden request“-Fehler beim Booten eines angemeldeten users mit einem gültigen JWT tritt auf, wenn die Messenger API für Web in Ihrem Workspace deaktiviert ist. Während sie deaktiviert ist, lädt der Messenger weiterhin für anonyme Besucher, lehnt jedoch jeden angemeldeten user ab, selbst wenn das JWT gültig ist und seine user_id mit der external_id des Kontakts übereinstimmt.

Um den 403-Fehler zu beheben, gehen Sie zu Einstellungen > Kanäle > Messenger > Installation, wählen Sie For users with logins aus und aktivieren Sie den Schalter Enable the Messenger API to continue installation für Web. Starten Sie den Messenger anschließend erneut mit Ihrem JWT.

Ein Workspace mit deaktivierter Messenger API für Web kann beim ersten Laden eines brandneuen users noch funktionsfähig erscheinen. Prüfen Sie diese Einstellung immer, wenn JWT-Boots für angemeldete users einen 403 zurückgeben und der JWT-Decoder das Token als gültig meldet.


FAQs

Warum ist user_id im JWT erforderlich? Meine users haben nur E-Mail-Adressen.

Sie müssen jetzt user_id als primären Bezeichner für users angeben. Historisch haben wir entweder user_id oder email als mögliche Bezeichner unterstützt, aber das hat zu erheblicher Produktverwirrung bei der grundlegenden Identitätsprüfung geführt.

Wenn Sie nur eine E-Mail zur Identifizierung Ihrer users haben, können Sie die E-Mail-Adresse sowohl im user_id- als auch im email-Attribut des Payloads angeben. Wenn Sie Ihre users derzeit nur mit einer E-Mail-Adresse in Intercom haben, müssen Sie diese aktualisieren, um eine user ID zu haben, bevor Sie JWTs verwenden können. Dies liegt daran, dass die user ID ein höherwertiger Bezeichner für users ist als die E-Mail-Adresse.

Um eine user ID für Ihre users hinzuzufügen, identifizieren Sie den user zuerst mit der Intercom ID des users. Dies können Sie über unsere API mit dem "Get a contact"-Endpunkt tun. Verwenden Sie dann den "Update a Contact"-Endpunkt, um eine user_id zum user hinzuzufügen. Weitere Details hier

Wie richte ich das für nicht angemeldete users ein, bei denen ich keine user_id habe?

Die Messenger-Sicherheitsfunktion erfordert, dass Ihre users eindeutige user IDs haben, die Sie bereitstellen. Wenn Sie den Messenger nur für leads verwenden, können Sie diese nicht so identifizieren. Sie sollten sicherstellen, dass die Messenger APIs für user-Traffic deaktiviert sind, da Sie keinen user-Traffic über diesen Kanal erwarten.
​
Dies können Sie unter Messenger > Installation tun. Wählen Sie die Installationsmethode, die Sie verwenden (Web, iOS, Android), und prüfen Sie, ob der Schalter "Verbindung zum Messenger aktivieren" für users aus ist.

Wie sollte ich mein Ablaufdatum einstellen?

Sie sollten jedes Mal ein neues JWT senden, wenn der Messenger gestartet wird, sodass die Lebensdauer des Tokens nur die Zeit zwischen den Messenger-Starts abdecken muss. Wählen Sie die minimale Dauer, die für das Verhalten Ihrer Anwendung geeignet ist. Wenn die Webseite häufig neu geladen wird, sollte das JWT kurzlebig sein, wir empfehlen jedoch mindestens 5 Minuten, um unerwartete Ablaufprobleme zu vermeiden.

Welchen Signaturalgorithmus kann ich verwenden?

Wir unterstützen HS256 (HMAC mit SHA-256). Dieser Algorithmus verwendet einen gemeinsamen geheimen Schlüssel zum Signieren und Verifizieren des Tokens, um sicherzustellen, dass die Daten im Token nicht manipuliert wurden.

Kann ich sowohl user_hash als auch intercom_user_jwt senden?

Nein, wir unterstützen nicht das gleichzeitige Senden von user_hash und intercom_user_jwt, da der `user_hash` durch JWTs ersetzt werden sollte. Sie können jedoch zwischen dem Senden von user_hashes und/oder intercom_user_jwt-Werten wechseln, da einige Kunden dies während der Migration von user_hash zu intercom_user_jwt benötigen.

Wenn Sie derzeit Identity Verification verwenden und user hashes senden, sehen Sie sich diese Anleitung an, um Ihre Integration auf das Senden von JWTs umzustellen.

Wie kann ich überprüfen, ob meine JWTs gültig sind und alles funktioniert?

Siehe Abschnitt Fehlerbehebung oben.

Wie erzwinge ich die Anforderung von JWTs für meinen Workspace?

Sie sollten den Enforcement-Schalter in Ihren Messenger-Einstellungen aktivieren.

Welche Attribute sollte ich schützen?

Alle identifizierenden Attribute sollten als geschützt markiert und wenn möglich sicher im JWT gesendet werden. Dazu gehören E-Mail, Telefon und alle account_ids, die der Kunde im User-Datensatz speichern könnte. Ihre Attribute finden Sie unter Einstellungen > Daten > People.

Jedes Attribut, das Fin in einem kritischen Teil einer Action oder eines Workflow verwenden soll, sollte geschützt sein, um sicherzustellen, dass ein böswilliger Benutzer diesen Wert nicht überschreiben kann.

Wenn Sie Daten außerhalb des JWT senden möchten, können Sie das tun, solange Sie Messenger-Updates erlaubt haben. Beachten Sie jedoch, dass ein Benutzer dieses Feld selbst aktualisieren könnte.

    window.intercomSettings = {
app_id: <APP_ID_CODE>,
intercom_user_jwt: <TOKEN>,
unsigned_data_attribute: 'data'
};

Was passiert, wenn die Sitzung mitten in einer Benutzeraktion abläuft?

Wenn nach Ablauf des Cookies eine Aktivität eines Benutzers im Messenger erfolgt, stellt Intercom ein neues, kurzlebiges Cookie von 1 Stunde aus, um negative Auswirkungen auf die Benutzererfahrung zu vermeiden. Um unbeabsichtigte Effekte auf die Benutzererfahrung zu verhindern, empfehlen wir, eine Sitzungsdauer des Cookies zu wählen, die mit dem Timeout der Anwendungssitzung übereinstimmt.

Wie sieht es mit meinem mobilen Messenger aus?

Anleitungen für iOS finden Sie hier und für Android hier, einschließlich React Native.

Warum verlangen wir nicht, dass die gesamte Nutzlast signiert wird?

Wir erlauben Kunden, un-signierte Attribute zu senden, um Situationen zu unterstützen, in denen sie niedrigauflösende Daten über den User senden müssen, während der User in ihrer Anwendung aktiv ist. Wenn der Kunde diese Möglichkeit nicht benötigt, kann er alle User Data Attributes auf „geschützt vor Messenger-Updates“ setzen und nur die signierte Nutzlast senden.

Wie verwalte und rotiere ich meine Messenger-Geheimschlüssel?

Ihr Geheimschlüssel kann in den Messenger-Sicherheitseinstellungen Ihres Workspaces generiert werden.

Sie können Ihre bestehenden Schlüssel in der rechten Seitenleiste der JWT-Einrichtungsseite finden und kopieren.

Sie können Schlüssel unter Workspace > Security > Messenger rotieren.

Können Attribute, die in einem JWT enthalten sind, nur für ein einzelnes ticket oder eine einzelne Konversation gelten?

Nein. Alle Attribute, die Sie in einem JSON Web Token (JWT) einschließen, aktualisieren immer das Benutzerprofil in Intercom. JWT-Attribute können nicht verwendet werden, um Daten hinzuzufügen, die nur für ein einzelnes ticket oder eine einzelne Konversation gelten.

Was ist mit Identity Verification passiert? Ersetzt das diese?

Identity Verification ist die vorherige Version der Messenger-Sicherheit, die mit HMAC-User-Hashes arbeitet, um zu identifizieren, dass eine Benutzeranfrage von Ihrer Integration gesendet wurde.
​
Während user_hashes weiterhin akzeptiert werden, empfehlen wir allen Kunden dringend, auf JWTs umzusteigen, da diese mehr Sicherheitsvorteile bieten und Identity Verification keine zukünftigen Updates mehr erhält.


Wenn Sie Ihre Identity Verification-Installation von den JWT-Seiten aus verwalten müssen, können Sie das weiterhin tun. Die Anweisungen wurden aktualisiert, um die JWT-Einrichtung widerzuspiegeln, und wenn Sie Änderungen vornehmen, empfehlen wir dringend den Umstieg auf JWTs. Wenn Sie die Funktion deaktivieren oder Ihre Messenger API-Geheimschlüssel rotieren müssen, können Sie dies weiterhin über die JWT-Einrichtungsseite erreichen.

Kann ich Firmendaten in mein JWT aufnehmen, um users mit einer Firma zu verknüpfen?

Ja. Sie können company_id und andere Firmenattribute in Ihre JWT-Nutzlast aufnehmen, um users in Intercom mit einer Firma zu verknüpfen. Wenn vorhanden, erstellt und verknüpft Intercom die Firma automatisch beim Booten (es entsteht keine zusätzliche Latenz, da die Firma inline während der Ping-/Boot-Anfrage erstellt wird).

Wichtig: Firmendaten müssen in einem company-Objekt innerhalb der JWT-Nutzlast verschachtelt sein — nicht als flache Claims wie company_id oder company_name neben user_id gesendet werden. Flache Firmen-Claims werden nicht erkannt und die Firmenzuordnung wird nicht erstellt.

Dies funktioniert korrekt, wenn die Firmendaten in einem company-Objekt verschachtelt sind:

{
  "user_id": "042c8338-591e-4e88-a31b-e5b29c4684ad",
  "email": "user@example.com",
  "company": {
    "company_id": "5de34166-f360-474a-b54d-5615bf22ce35",
    "name": "Acme Corp"
  }
}

Dies ist besonders wichtig für Setups, die Firmenfunktionen wie das Tickets Portal verwenden, bei denen tickets von mehreren users in einer gemeinsamen Firmenansicht zusammengefasst werden müssen. Wenn users nicht mit einer Firma verknüpft werden, prüfen Sie, ob company_id in Ihrer JWT-Nutzlast enthalten ist.

Wichtig: Firmendaten, die außerhalb des JWT übermittelt werden (z. B. als company-Objekt in Ihrem Intercom('boot')-Aufruf), werden ignoriert, wenn ein JWT vorhanden ist. Die Firma wird nicht aktualisiert und der last_seen-Wert der Firma wird nicht aktualisiert. Um sicherzustellen, dass Firmendaten korrekt aktualisiert werden, fügen Sie diese in Ihre JWT-Nutzlast ein. Dies ist der empfohlene Ansatz für alle sicheren Messenger-Setups.

Alternativ können Sie Firmen erstellen und users über die serverseitige API verknüpfen, bevor sich ein Benutzer anmeldet. Dies ist der bessere Ansatz, wenn Firmendaten vor der ersten Benutzersitzung existieren müssen – zum Beispiel, um Firmenaufzeichnungen bei der Mandantenerstellung vorab zu befüllen.

Hinweis: Wenn Sie company_id in Ihrem JWT übergeben, aber Firmen in Intercom nicht erstellt werden, wenden Sie sich an unser Support-Team, da dies auf einen bug hinweisen könnte.

Hat dies deine Frage beantwortet?