Mit Multibrand können Sie alle Marken Ihres Unternehmens in einer einzigen Zendesk Support-Instanz managen. Aufgrund der Sicherheitseinstellungen können Sie jedoch nur eine URL für Remote-Logins einrichten. Das könnte problematisch sein, wenn Sie für jede Ihrer Marken eine andere Benutzerdatenbank haben.
Doch das macht nichts. Wie unten beschrieben können Sie ein einfaches Skript zwischen Zendesk Support und dem SSO-Login-Skript auf Ihrem Server erstellen, mit dem Sie Ihre Kunden jeweils zur URL der Marke umleiten können, bei der sie sich anmelden möchten.
Dieser Tipp setzt voraus, dass Sie JWT bereits auf Ihrem Server konfiguriert haben. Andernfalls müssen Sie zuerst die im Beitrag Aktivieren von Single-Sign-On über JWT (JSON Web Token) beschriebenen Schritte ausführen.
In diesem Beispiel wird php verwendet. Sie können das Skript bei Bedarf aber an andere Sprachen anpassen.
Dieser Beitrag enthält die folgenden Abschnitte:
- Mehrere eingerichtete Marken
- Mehrere Benutzerauthentifizierungssysteme, bei denen SSO über JWT konfiguriert ist
- Die Skripts
- Sicherheitseinstellungen aktualisieren
- Fehlerbehebung
Mehrere eingerichtete Marken
Dieser Tipp ist nur anwendbar, wenn Sie mindestens zwei Marken konfiguriert haben. Weitere Informationen finden Sie unter Einrichten mehrerer Marken (Professional-Add-on und Enterprise).
Speichern Sie nach der Einrichtung die URL und die Host-Mapping-URL der Marke. Wir werden sie später in unserem Skript verwenden.
Mehrere Benutzerauthentifizierungssysteme, bei denen SSO über JWT konfiguriert ist
Wie bereits erwähnt, müssen Sie auf Ihren Benutzerauthentifizierungssystemen SSO über JWT eingerichtet und konfiguriert haben. Sie können bereits eines für jede Marke erstellen, doch vergessen Sie nicht, dass das Shared Secret, das Sie in den Sicherheitsoptionen erhalten, in allen Authentifizierungssystemen dasselbe sein muss.
Speichern Sie die Login- und die Logout-URL zusammen mit den Informationen aus dem vorherigen Abschnitt.
Die Skripts
Jetzt fängt der Spaß an! Die Liste der gespeicherten URLs könnte ungefähr so aussehen:
Marke 1
URL ohne Host-Mapping: https://marke1.zendesk.com
URL mit Host-Mapping: https://support1.beispiel.com
Marke 2
URL ohne Host-Mapping: https://marke2.zendesk.com
URL mit Host-Mapping: https://support2.beispiel.com
System 1
Login-URL: https://seite1.beispiel.com/zdlogin.php
Logout-URL: https://seite1.beispiel.com/zdlogout.php
System 2
Login-URL: https://seite2.beispiel.com/zdlogin.php
Logout-URL: https://seite2.beispiel.com/zdlogout.php
Jetzt erstellen wir das Skript. Entfernen Sie die Zeichenfolge https:// aus den URLs der einzelnen Marken. Lassen Sie sie in den Website-Links stehen.
Login-Skript
<? $brand_URLs = array( "brand1.zendesk.com" => "https://page1.example.com/yourcustomloginjwtscript.php", "support1.example.com" => "https://page1.example.com/yourcustomloginjwtscript.php", "brand2.zendesk.com" => "https://page2.example.com/yourcustomloginjwtscript2.php", "support2.example.com" => "https://page2.example.com/yourcustomloginjwtscript2.php" ); foreach($brand_URLs as $k => $v){ if(strpos($_GET['return_to'],$k)){ header("Location: ". $v); die(); } } ?>
Logout-Skript
<? $brand_URLs = array( "brand1.zendesk.com" => "https://page1.example.com/yourcustomlogoutjwtscript.php", "support1.example.com" => "https://page1.example.com/yourcustomlogoutjwtscript.php", "brand2.zendesk.com" => "https://page2.example.com/yourcustomlogoutjwtscript.php", "support2.example.com" => "https://page2.example.com/yourcustomlogoutjwtscript.php" ); foreach($brand_URLs as $k => $v){ if(strpos($_GET['return_to'],$k)){ header("Location: ". $v); die(); } } ?>
Sicherheitseinstellungen aktualisieren
- Klicken Sie in der Seitenleiste des Admin Centers auf das Symbol Konto (
) und dann auf Sicherheit > Single-Sign-On.
- Klicken Sie unter JSON Web Token auf Aktiviert und verweisen Sie auf die Skripts, die wir erstellt haben (siehe Beispiel unten).
- Speichern Sie die Änderungen.
- Remote-Login-URL: Das muss die URL des Login-Skripts sein.
- Remote-Logout-URL: Das muss die URL des Logout-Skripts sein.
- Externe IDs aktualisieren?: Wenn einer Ihrer Kunden bei mehreren Benutzerauthentifizierungssystemen ein Konto mit derselben E-Mail-Adresse hat, müssen Sie diese Option aktivieren („Ein“), damit bei der Anmeldung keine Konflikte auftreten.
Nun sind Ihre Agenten oder Kunden in der Lage, sich über das jeweilige Authentifizierungssystem zu authentifizieren und auf die jeweils gewünschte Marke zuzugreifen.
Sie finden die Skripts auch hier:
Hinweis 1: Wenn Sie das Skript unverändert übernehmen, ist das Sicherheitsrisiko gering. Falls Sie jedoch andere Änderungen vornehmen als die hier beschriebenen, können Sie unter Umständen eine Sicherheitslücke auf Ihrem eigenen Server (nicht dem Zendesk-Server) verursachen.
Hinweis 2: Da wir nur ein einziges JWT-Token bereitstellen, verwenden alle SSO-Skripts in Ihren Authentifizierungssystemen dieselben Token. Wenn eines Ihrer Systeme kompromittiert wird, kann dies die Sicherheit aller Ihrer Marken gefährden.
Hinweis 3: Wenn Sie beim Versuch, SSO zu verwenden, die Fehlermeldung „Ungültige JWT-Anforderung“ erhalten, lesen Sie die Anweisungen unter Fehlerbehebung.
Fehlerbehebung
Um Fehler aufgrund einer ungültigen JWT-Anforderung zu verhindern, codieren Sie für beide Marken https://(standardsubdomäne).zendesk.com/ als /access/jwt?jwt=
. Ersetzen Sie dabei (standardsubdomäne) durch die Subdomäne Ihrer Hauptmarke. Beispiel: meinedomäne.zendesk.com
- Codieren Sie https://(standardsubdomäne).zendesk.com im SSO-Skript so, dass die JWT-Payload immer an https://(standardsubdomäne).zendesk.com/access/jwt gesendet wird.
- Implementieren Sie das Snippet im Skript, damit „return_to“ verwendet wird und Endbenutzer so zurück zum ursprünglichen Help Center gelangen. Fügen Sie die Payload für beide Marken-URLs als „(standardsubdomäne)“ an und fügen Sie „return_to“ hinzu.
Hier das Snippet:
if(isset($_GET["return_to"])) {
$location .= "&return_to=" . urlencode($_GET["return_to"]);
}
0 Kommentare
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.