Multibrand允许您在单个Zendesk支持实例中控制所有公司品牌。亚博但是,安全设置只允许您为远程登录设置一个URL,如果每个品牌都有不同的用户数据库,这可能会有问题。
这种方法将允许您在Zendesk Support和服务器中的SSO登录脚本之间创建一个脚本,该脚本将允许您根据客亚博户试图登录的品牌将客户路由到特定的url。
此过程假设您已经在服务器上配置了JWT。否则,请确保遵循本文中列出的说明启用JWT单点登录第一。
本文中的示例使用PHP,但如果需要,也可以将其调整为适用于其他语言。
本文包含以下部分:
两个或两个以上品牌成立
您至少需要配置两个品牌才能执行此过程。有关详情,请参阅建立多个品牌(专业外挂、企业)。
设置好之后,保存品牌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
登录地址:https://page1.example.com/zdlogin.php
注销URL: https://page1.example.com/zdlogout.php
系统2
登录地址:https://page2.example.com/zdlogin.php
注销URL: https://page2.example.com/zdlogout.php
接下来,创建脚本。删除https://每个品牌的URL。把它们放在网站链接上。
你也可以在这里找到脚本:
登录脚本
<?$brand_URLs = array("brand1.z亚博endesk.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 k = >美元美元v){如果(大小写敏感($ _GET [' return_to '], $ k)){头(地点:。美元v);die ();}} ?>
注销脚本
<?$brand_URLs = array("brand1.z亚博endesk.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 k = >美元美元v){如果(大小写敏感($ _GET [' return_to '], $ k)){头(地点:。美元v);die ();}} ?>
更新安全设置
- 在管理中心,点击账户在侧边栏中,然后选择安全>单点登录。
- 点击创建SSO配置然后选择JSON Web令牌。
- 输入唯一的配置名称。
- 为远程登录URL,输入登录脚本的URL。
- 为远程注销URL,输入注销脚本的URL。
- 如果您的一些客户在多个用户身份验证系统中使用相同的电子邮件地址,为了避免冲突,您可以设置更新外部id来在。
- 提供共享秘密来你的IT团队。他们将需要它来实现JWT。
- 保存您的更改。
重要的注意事项
- 如果按原样使用脚本,则安全风险很低。如果您对它进行了大量修改,而不是这里提到的更改,则可能会在您自己的服务器(而不是Zendesk的服务器)上创建安全漏洞。亚博
- 由于我们只提供一个JWT令牌,因此所有SSO脚本都将在身份验证系统中使用相同的令牌。如果您的一个系统受到损害,可能会导致您的所有品牌受到损害。
- 如果在尝试SSO时得到“无效JWT请求”错误,请参考故障排除下面的指令。
故障排除
要防止无效的JWT请求错误,请硬编码https://(defaultsubdomain) 亚博.zendesk.com//访问/ jwt吗?jwt =
对于这两个品牌(defaultsubdomain)是你的主品牌子域名。例如:mydomain.zendesk.co亚博m
- 硬编码https:// (defaultsubdomain):亚博 .zendesk.com到SSO脚本中,因此JWT有效负载总是被发送到https:// (defaultsubdomain) 亚博.zendesk.com/access/jwt
- 将该代码片段实现到脚本中,使用'return_to',以便最终用户被重定向回原始帮助中心。确保将两个品牌标记url的有效载荷附加为固定的'(defaultsubdomain)'并附加'return_to'。
供您参考的片段:
如果收取($ _GET [" return_to "])) {
$location .= "&return_to="。urlencode ($ _GET [" return_to "]);
}
20的评论
对于通过SSO(基于JWT)登录的用户,如何限制对特定品牌的访问?JWT令牌应该包含什么参数来指定允许用户使用的品牌?
嗨Haseena !不可能通过SSO将最终用户限制为特定品牌。当您有多个帮助中心来支持多个品牌时,所有最终用户都可以访问您的所有帮助中心。如果使用SSO,每个帮助中心都会将用户重定向到相同的单点登录协议和数据库。这是因为用户属于账户,而不是特定的品牌。
为了防止终端用户登录到您不希望他们访问的品牌,您可以在Zendesk Support和服务器上的SSO登录脚本之间创建一个脚本。亚博该脚本将允许您根据客户尝试登录的品牌将客户路由到特定的url。你可以按照上面的说明去做多品牌-使用多个JWT单点登录url篇文章。
你还需要设置一些东西,以便你的品牌列表不会发给你的客户所以,从理论上讲,除非你的客户知道你不希望他们登录的品牌的域名/子域名,否则他们永远不会知道它在那里。
大家好
只是想澄清一下,在使用SSO和多品牌时,是否可以实现以下功能。
为最终用户配置SSO (SAML)。
对于品牌2、3和4,这些帮助中心不需要登录,因此客户可以毫无问题地访问帮助中心(作为匿名用户)。但是,如果他们想要登录并查看他们的“我的活动”等,目前它将进入SSO。
不确定这是否可能。
非常感谢
乍得
嗨,乍得,
感谢您的耐心等待!理想情况下,不可能对单个品牌应用不同的SSO选项,除非为JWT使用自定义脚本。根据您提供的场景,本文似乎是您的工作流的最佳套件,因为这种方法将允许您在Zendesk Support和服务器中的SSO登录脚本之间创建一个简单的脚本,该脚本将允许您根据客户试图登录的品牌将客户路由到特定的url。亚博
我希望这能澄清它!
非常感谢Darenne。
这很明显:)
干杯
乍得
嗨Darenne-
您是说可以编写一个路由脚本,将用户发送到某些品牌的标准Zendesk认证,而将用户发送到其他品牌的SSO页面?亚博我理解根据品牌将用户发送到不同的SSO页面,但都返回JWT令牌。我不知道你可以使用Zendesk原生认证作为一个选项。亚博
你好Kaela Chandrasekaran,
谢谢你的帖子,希望你今天过得很好。
为了回答这个问题:您是说可以编写一个路由脚本,将用户发送到某些品牌的标准Zendesk认证,而将用户发送到其他品牌的SSO页面?亚博
从技术上讲,是的,如果Zendesk密码仍然启用,使用Zen亚博desk用户名和密码的用户仍然可以通过浏览到特定的URL,类型来访问帐户/ /正常访问。
给您的员工:
对于您的最终用户:
例如,您可以完全指向您的用户登录(员工和/或最终用户):
希望这能澄清问题,祝你今天过得愉快。
最好的问候,
有人能提供或指导我获得JWT SSO设置的自定义脚本吗?在过去的一个月里,我试图使用SAML为zendesk设置带亚博有AAD的SSO,即使在两端做了所有配置之后,zendesk也需要身份验证,而且当你继续输入凭据时,我也无法登录,因为zendesk中禁用了外部身份验证。任何帮助都将非常感激
我们没有任何可用于JWT SSO的自定义脚本。然而,关于JWT的其他信息是一个很好的开始。
我们有一个公司网站(不是Zendesk),需要用户登录。亚博我想嵌入这个页面在我们的Zendesk客户社区,一旦最终客户登录到亚博社区,他们可以点击链接,而无需登录。任何帮助都将非常感激
如果未经身份验证的用户点击品牌的帮助中心URL,是否有强制重定向到登录URL的设置?我们正在使用多品牌单点登录,但我们所有的品牌URL都允许未经身份验证的访问-理想情况下,如果你击中一个品牌URL,我们希望它重定向到登录URL(这将是一个类似于上面布局的脚本),所以我们可以将它们传递到适当的网站获得身份验证。
要强制认证,你所需要做的就是在指南设置中打开“要求登录”。如果启用了此功能,将强制任何试图访问帮助中心页面的人通过该帐户的SSO设置中的身份验证URL设置(如果您有SSO),或者如果您只使用Zendesk认证,则会提示使用Zendesk登录窗口。亚博
问候,
迪翁
很好的信息,谢谢
我有一个问题,我应该把这个代码放在哪里:
1)自定义我的主题布局brand1/script
2)自定义我的主题布局brand2/script
3)在我自己的服务器上。我正在使用IONOS或1and1
很抱歉问了这个愚蠢的问题,但我没有受过编程教育。
亲切的问候,
穆
安东·德·杨先生
对不起,另一个问题除了把代码(brand1或brand2主题设计在脚本或在IONO的服务器(在我的情况下)和在哪里)。两个品牌都必须需要登录,或者至少有一个可以在没有登录的情况下阅读公共文章?
问候,
穆
我建议你看一下我们的文档:自定义帮助中心主题
如果你没有任何开发经验,我建议你联系你的客户经理,因为他们可以让你联系到我们的专业服务团队。
同时,如果你还有什么问题要问我,请告诉我。
你好,
我想知道是否有可能有不同的JWT方法,但都指向同一品牌有效?
我们在Zendesk中使用多品牌,但最近开始将我们的支持转移到Zendes亚博k中的单一品牌。但是,我们用于JWT的应用程序使用不同的凭据。
谢谢你!
罗斯
嗨rossp
您最多可以定义两个活动JWT和两个活动SAML身份验证配置。更多信息可在这里找到:Zendesk中的单点登录(SSO)选项亚博
这种方法是否也适用于两个SAML sso ?我们的技术团队支持两个组织(在单个ZD实例中作为两个品牌完成),我们希望允许第二个组织能够通过他们自己的SSO登录。
你能澄清一下示例PHP脚本所依赖并用于重定向用户的“return_to”查询参数如何在请求上结束吗?如果我尝试登录,我在重定向到我们的认证系统时没有看到这样的查询参数。
如果客户没有指定使用某个品牌,如何为某些客户使用SSO,但将主要身份验证设置为Zendesk ?亚博
例如:
客户A)没有使用我们的服务,我们的SDK和API,只是有一个简单的问题,如我的退款在哪里使用标准Zendesk认证?亚博
客户B)是需要实际SDK和API信息帮助的付费客户。我们如何将它们重定向到SSO?听起来这就是我们需要给他们指向特定链接的地方,以避免他们以常规方式登录Zendesk——关于如何做到这一点的文章在哪里?亚博
请登录留下评论。