多品牌使您可以在一个 Zendesk Support 实例中控制您所有的公司品牌。然而,安全设置只允许设置一个 URL 用于远程登录,如果您的每个品牌有不同的用户数据库,这可能会产生问题。
通过这种方法,您可以在 Zendesk Support 和您服务器中的 SSO 登录脚本之间创建一个脚本,根据客户尝试登录的品牌,将客户转至特定 URL。
此步骤假定您已在服务器上配置 JWT。否则,请务必按照首先 启用 JWT 单点登录一 文中所列说明进行操作。
本文章中的示例使用的是 PHP,但您可以根据需要将其调整为其他语言。
本文包含以下部分:
已设置两个或更多品牌
您需要配置至少两个品牌才能执行此程序。有关详情,请参阅 设置多个品牌(Professional 附加功能和 Enterprise)。
设置后,保存品牌 URL 和主机映射的品牌 URL。我们稍后会在脚本中使用它们。
使用 JWT SSO 设置两个或更多用户身份验证系统
如前所述,您需要已在用户身份验证系统中设置和配置 JWT SSO。您可以为每个品牌执行一个操作,但请记住,您从安全选项中获取的共享密钥在您的所有身份验证系统中必须相同。
保存登录 URL 和退出 URL 以及上一部分的信息。
脚本
您的已保存 URL 列表可能如下所示:
品牌 1
非主机映射 URL:https://brand1.zendesk.com
主机映射 URL:https://support1.example.com
品牌 2
非主机映射 URL:https://brand2.zendesk.com
主机映射 URL:https://support2.example.com
系统 1
登录 URL:https://page1.example.com/zdlogin.php
退出 URL:https://page1.example.com/zdlogout.php
系统 2
登录 URL:https://page2.example.com/zdlogin.php
退出 URL:https://page2.example.com/zdlogout.php
接下来,创建脚本。从每个品牌 URL 的 URL 中移除 https:// 。将它们保留在网站链接上。
您还可以在此处找到脚本:
登录脚本
<? $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(); } } ?>
退出脚本
<? $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(); } } ?>
更新安全设置
- 在 管理中心,单击 侧栏中的帐户 ,然后选择 安全 > 单点登录。
- 单击创建 SSO 配置 ,然后选择JSON 网络密钥。
- 输入唯一的配置名称。
- 对于远程登录 URL,输入登录脚本的 URL。
- 对于远程退出 URL,输入退出脚本的 URL。
- 如果您的客户在多个用户身份验证系统中都有帐户,但使用相同的电邮地址,为避免冲突,您可以将外部 ID 的更新 设置为 开。
- 向您的 IT 团队提供 共享 密钥 。以便他们进行 JWT 实施。
- 保存更改。
重要注意事项
- 您按原样使用脚本,安全风险较低。如果您对这里提到的更改以外的内容进行大量修改,则可能在您自己的服务器(而不是 Zendesk 的服务器)上产生安全漏洞。
- 由于我们仅提供一个 JWT 密钥,因此您的身份验证系统中的所有 SSO 脚本都将使用相同的密钥。如果您的一个系统遭到破坏,则可能导致您所有的品牌遭到破坏。
- 如果您在尝试 SSO 时收到“无效的 JWT 请求”错误,请参阅以下 故障排除 说明。
故障排除
为了避免出现无效的 JWT 请求错误,https://(defaultsubdomain).zendesk.com/ 硬编码为/access/jwt?jwt=
对于两个品牌,其中 (defaultsubdomain) 是您的主要品牌子域名。例如,mydomain.zendesk.com
- 将 https://(defaultsubdomain).zendesk.com 硬编码到 SSO 脚本中,以便 JWT 有效载荷始终发送到 https://(defaultsubdomain).zendesk.com/access/jwt
- 将此代码段实施到脚本中以使用“return_to”,将终端用户重定向回来源帮助中心。请确保分别附加两个品牌标记 URL 的有效载荷为“(defaultsubdomain)”和附加“return_to”。
供您参考的代码段:
if(isset($_GET["return_to"])) {
$location .= "&return_to=" . urlencode($_GET["return_to"]);
}
翻译免责声明:本文章使用自动翻译软件翻译,以便您了解基本内容。 我们已采取合理措施提供准确翻译,但不保证翻译准确性
如对翻译准确性有任何疑问,请以文章的英语版本为准。