멀티브랜드 기능으로 단일 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의 서버가 아닌 자체 서버에 보안 취약성이 야기될 수 있습니다.
- 1개의 JWT 토큰만 제공하므로 모든 SSO 스크립트가 인증 시스템에서 동일한 토큰을 사용하게 됩니다. 따라서 시스템 하나가 보안 위협을 받으면 모든 브랜드가 보안 위협을 받을 수 있습니다.
- SSO를 시도할 때 “잘못된 JWT 요청” 오류가 표시되는 경우에는 아래의 문제 해결하기 안내를 참조하세요.
문제 해결하기
잘못된 JWT 요청 오류를 방지하려면 두 브랜드 모두에 대한 /access/jwt?jwt=
로 https://(defaultsubdomain).zendesk.com/을 하드 코딩하세요. 여기에서 (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
댓글을 남기려면 로그인하세요.