当您 设置多个品牌时,安全设置仅允许您设置一个 URL 用于远程登录。如果您的每个品牌有不同的用户数据库,这可能会出现问题。
通过本文所述方法,您可以在 Zendesk 和您服务器中的 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
登录 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"]);
}
翻译免责声明:本文章使用自动翻译软件翻译,以便您了解基本内容。 我们已采取合理措施提供准确翻译,但不保证翻译准确性
如对翻译准确性有任何疑问,请以文章的英语版本为准。
30 条评论
Gerald B.
Hi Sarah.
Apologies for the wait regarding your question.
User passwords are not brand restrictive within Zendesk. You would need to implement custom routing based to the brand URL that you created. You can also toggle the SSO setting for end users to "Let them choose" which would give them the option for a Zendesk Login or SSO. You can customize the SSO button's text to signal they users to sign in using the correct method.
https://support.zendesk.com/hc/en-us/articles/5380943678106-Giving-users-different-ways-to-sign-into-Zendesk
I'll set this to Solved for now, but if you have an further questions, please raise a ticket and we will be happy to help troubleshoot for you.
0
Gerald B.
Thank you for contacting the Zendesk Support Advocacy team. My name is Gerald and I'll be assisting you today.
I understand that you want to setup a method to allow agents and admins to reset their passwords by brand. I'm looking into options for you now.
0
Sarah Cullerton
Have this set up but have run into issues with the password reset loop. Brand 1 is SSO redirecting to /access/normal for those attempting to access Brand 2. We're able to get through admin managed password resets through the /password end point but anything going through the /verification endpoint like welcome emails or users resetting their own passwords for Brand 2 gets bounced to SSO. Any advice here so that we aren't relying solely on admins to manage end user credentials for an entire brand?
0
Marco
@ Chris
I think the answer is YES to both questions one and two. The big issue with Zendesk is that you have one single User Registry and one single Authentication status for the whole account. So, if you log into Zendesk via the Brand 2, you are automatically logged in Brand 1 as well. It doesn't matter if you're logged in via SSO or not, you are just authenticated, stop!
The only work-around I see is to restrict access to HelpCenters based on Users/Organizations tags (Users segmentation).
Let's hope to get some better official answer from Zendesk...
0
Chris Fassano
I have some questions regarding this scenario.
1. If a user is created through the SSO option via Brand 1, and then later goes to Brand 2 to log in, would they be presented with the option to reset their Zendesk password?
2. If yes, does that mean they would be able to log into Zendesk via the Brand 2 help center by using their Zendesk credentials rather than their 3rd party SSO credentials?
1
Tony Felicetta
Hello, I have been watching this thread for some time, and through various web searches have been unable to clearly define the steps needed. I am looking for an A-B-C checklist, I have most of it together but then it drops entirely at implementing the JWT login scripts.
For example:
1. Configure Okta SSO JWT authentication within Zendesk (COMPLETE)
2. Configure Multiple Brands within Zendesk (COMPLETE)
3. Configure Multiple Help Centers > 1 or 2 per brand (COMPLETE)
4. FACT - we are using Okta as the SSO solution passing the JWT to Zendesk (confirmed working) -- NEEDED is dependent upon the users email domain (@domain111.com, @domain222.com) this would direct the user to the necessary Help Center
5. QUESTION - where should the proposed login scripts reside, Zendesk or Okta or? This step is very vague and does not seem to describe "how" the JWT identifies the logged in user to direct them to the appropriate help center. For example, a user with email @domain111.com would be directed to support-domain111.zendesk.com , similarly if the user email domain is @domain222.com then they would be directed to support-domain222.zendesk.com .
0
Joyce
I can see that you open a messaging request for this concern and were advised to create Product Feedback for your use case.
0
Jason Wong
When setting up a JWT for end users to login vs. agents with SSO. the login page is missing the forgot password link. Any way to add that back? Our customers are unable to request a password reset.
0
Julio H
Currently, you can allow the end user to choose among several SSO options (Google, Microsoft, custom SSO...) or Zendesk default authentication (username and password).
For more information, please visit: Providing multiple sign-in options for team members and end users.
Unfortunately, there is not a simple way to achieve this. However, this could be possible to achieve, but using JWT and your own custom authentication. They customer A and B must login to your custom authentication system, and then via JWT, allow them to access Zendesk.
Or redirect all the login request to the SSO landing page, where you can have an option for them to select their type of account and show the login option for that type of account.
If you're this link: subdomain.zendesk.com/access/normal you will be able to only allow the user to login with username and password.
In any case, currently, this is not possible within Zendesk settings.
I've marked this conversation as product feedback for review, which means that your input will be aggregated as a part of our Voice of the Customer program that provides customer feedback to our product development teams.
In addition, I encourage you to create a new post in the General Product Feedback topic in our community to engage with other users who have similar needs and discuss possible workarounds. Conversations with a high level of engagement ultimately get flagged for product managers to review when they go through roadmap planning.
Specific examples, details about impact, and how you currently handle things are helpful for our product teams to understand the full scope of the need when working on solutions. You may also want to review the Product feedback guidelines and how to write an effective feedback post [https://support.zendesk.com/hc/en-us/articles/4413820079386-Giving-Product-Feedback-at-Zendesk-].
We truly value customer feedback and your voice and votes in the forums help influence future Zendesk functionality.
Greetings.
0
Naoki Tanaka
ご質問の投稿ありがとうございます。
該当の件ですが、特に推奨はございませんので利用者がアクセスできるサーバーに当該のスクリプトが動作するページを作成いただければと思います。
ご確認よろしくお願いいたします。
0
请先登录再写评论。