单点登录是一种机制,允许您对系统中的用户进行身份验证,然后告诉Zendesk用户已经过身份验证。亚博如果使用带有JSON Web令牌(JWT)的单点登录,则用户在登录时自动通过身份提供程序进行验证。然后,用户被允许访问Zendesk,而不会被提示输入单独的登录凭证。亚博
作为Zen亚博desk管理员,您的角色包括启用SSO选项。本文介绍如何启用最多两个JWT单点登录配置,这些配置可用于对团队成员(管理员和代理,包括轻量级代理和贡献者)、最终用户或两者进行身份验证。
单点登录的核心是一种安全机制,它允许Zendesk信任它从您的系统获得的登录请求。亚博亚博Zendesk只授予已通过您身份验证的用户访问权限。亚博Zendesk SSO依赖于JWT来保护用户身份验证数据的交换。
公司的IT团队通常负责建立和管理公司的JWT身份验证系统。他们的角色是在系统上为Zendesk实现SSO。亚博请团队参考本文中的以下主题:
相关文章:
JWT SSO如何为Zendes亚博k工作
启用SSO后,登录请求将被路由到Zendesk Support外部的登录页面。亚博
JWT SSO身份验证过程的步骤:
- 未经身份验证的用户导航到Zendesk支持URL。亚博例子:https://yoursubdomain.亚博zendesk.com/.
- Zend亚博esk SSO机制识别SSO已启用,且用户未经过身份验证。
- 亚博Zendesk尝试确定未经身份验证的用户是最终用户还是团队成员,并将用户重定向到组织的适当远程登录页面。例子:https://mycompany.com/亚博zendesk/sso.
- 远程服务器上的脚本使用组织的专有登录过程对用户进行身份验证。
- 身份验证系统构建一个包含相关用户数据的JWT请求。
- 认证系统将用户重定向到以下带有JWT有效负载的Zendesk端点:亚博
https://yoursubdomain.亚博zendesk.com/access/jwt
- 亚博Zendesk解析来自JWT有效负载的用户详细信息,然后授予用户一个会话。
如您所见,这个过程依赖于浏览器重定向和使用JWT传递签名消息。重定向完全发生在浏览器中,Zendesk和你的系统之间没有直接连接,所以你可以把你的身份验证脚本安全地保存在你的公司防火墙后面。亚博
启用JWT SSO的要求
与公司中负责JWT身份验证系统的团队(通常是IT团队)会面,以确保与zendesk绑定的流量通过HTTPS,而不是HTTP。亚博
- 当Zendesk用户试图访问Zendesk时,他们应该亚博被重定向的远程登录URL
- (可选)远程注销URL, Zendesk可以在用户退出Zendesk后重定向用亚博户
- (可选)IP范围列表,用于将用户重定向到适当的登录选项。从指定的IP范围发出请求的用户被路由到远程JWT身份验证登录表单。从该范围以外的IP地址发出请求的用户将被路由到正常的Zendesk登录表单。亚博如果不指定范围,则所有用户都被重定向到远程身份验证登录表单。
IT团队可能需要Zendesk提供额外的信息来配置JWT实现。亚博请参阅技术实施工作表在本文中。
在您确认您满足了要求并获得了所有必要的信息之后,您就可以开始了启用JWT单点登录.
启用JWT SSO
管理员可以只对最终用户、团队成员(包括轻量级代理和贡献者)或两个组启用JWT单点登录。您最多可以创建两个JWT SSO配置。在开始之前,请从公司的IT团队获得所需的信息。看到启用JWT SSO的要求.
启用JWT单点登录
- 在管理中心,点击账户在侧栏中,然后选择安全>单点登录.
- 点击创建SSO配置然后选择JSON Web令牌.
- 输入唯一的配置名称.
- 为远程登录URL,输入用户试图访问Zendesk URL时应被重定向的URL。亚博
亚博Zendesk自动添加brand_id参数设置为URL。这是用户试图登录时使用的亚博Zendesk Support品牌。
- (可选)远程注销URL,一个注销URL,用户注销Zendesk后应该被重定向。亚博
亚博Zendesk自动添加电子邮件,external_id,brand_id参数到注销URL。如果您不希望在URL中包含电子邮件和外部id信息,请在注销URL中指定空白参数。例子:
https://www.xyz.com/user/signout/?email=&external_id=
注意:如果您正在使用Ember.js应用程序,则需要修改注销URL,以便在散列之前使用空白参数。例如,https://somedomain.com/?brand_id=&return_to=&email=#/亚博zendesk-login/
. - (可选)IP范围,如果要将用户重定向到适当的登录选项,则输入IP范围列表。
从指定的IP范围发出请求的用户被路由到JWT身份验证登录表单。从该范围以外的IP地址发出请求的用户将被路由到正常的Zendesk登录表单。亚博如果希望将所有用户重定向到JWT身份验证登录表单,则不要指定范围。
- 如果您为用户使用外部id,您可以在Zendesk Support中通过选择更新这些id亚博在为更新外部id ?.
- 提供共享的秘密给你的IT团队。他们将需要它来实现JWT。重要的是:确保共享秘密的安全。如果它被泄露,您的支持帐户中的所有数据都有风险。
- 设置完JWT SSO配置后,单击启用所以你可以把这个选项分配给用户。
- 点击保存.
为用户分配JWT SSO
创建JWT SSO配置后,必须通过将其分配给最终用户、团队成员或两者来激活它。
将SSO配置分配给团队成员或最终用户
- 为团队成员或最终用户打开安全设置。
- 如果要将SSO配置分配给团队成员,请选择外部认证显示身份验证选项。
这些选项已经显示给最终用户。
- 点击单点登录(SSO)选项中的外部认证部分,然后选择要使用的SSO配置的名称。
单点登录可能无法覆盖所有用例,因此Zendesk身份验证在默认情况下保持活动状态。亚博若要要求用户使用主SSO方法登录,请参见只允许使用SSO身份验证进行登录.
- 点击保存.
只允许使用SSO身份验证进行登录
- 为团队成员或最终用户打开安全设置。
- 为最终用户/团队成员如何登录中,选择重定向到SSO点击保存.
- 在管理中心,点击账户在侧栏中,然后选择安全>高级.
- 单击身份验证选项卡,然后选择一个SSO绕过选择。
您可以选择是否只有账户所有者或全部管理员(包括帐户所有者)可以被授予访问帐户的权限,以防外部登录提供者出现故障。
为了获得访问权限,帐户所有者或管理员请求接收包含一次性访问链接的电子邮件。单击该链接授予该用户访问该帐户的权限。无需输入密码。看到在禁用密码的情况下访问帐户.
- 点击保存.
启用JWT单点登录后,在Zendes亚博k中管理用户
在Zendesk中启用JWT单点登录后,对Zendesk以外的用户所做的更亚博改将同步到您的Zendesk帐户。例如,如果一个用户被添加到您的内部系统,该用户将自动添加到您的Zendesk帐户。亚博如果用户在您的内部系统中被删除,该用户将无法再登录Zendesk,但其帐户仍然存在于Zendesk中。亚博
默认情况下,启用单点登录时,Zendesk中存储的唯一用户数据是用户的姓名和电子邮亚博件地址。亚博Zendesk不存储密码。因此,你应该禁用Zendesk关于密码的任何自动电子邮件通知。亚博看到Zendesk禁用密码通知邮件亚博.
为了提供更好的客户体验,您可能希望在Zendesk中存储更多的用户名和电子邮件地址。亚博你可以用附加的JWT属性.
Zendesk禁用密码通知邮件亚博
当用户添加到Zendesk帐户时,可能会向用户发送自亚博动电子邮件通知,要求他们验证自己的电子邮件地址,并创建用户名和密码。
Ze亚博ndesk用户配置文件将为任何通过SAML或JWT访问Zendesk帐户的新用户创建。因为他们使用非Zendesk密码进行身份验证,所以创建配置文件时不需要密码,因为他亚博们不需要登录到Zendesk。但是,默认情况下,每个新用户都会收到一封电子邮件,通知他们验证自己的电子邮件地址并创建用户名和密码。
- 在管理中心,点击人在侧栏中,然后选择配置>最终用户.
- 在账户的邮件节中,取消选择当代理或管理员创建新用户时,也要发送欢迎电子邮件
- 在允许用户修改密码,取消选择该选项。
生成一个新的共享秘密
在某些情况下,比如您的秘密被泄露,您可能需要发布一个新的JWT共享秘密,并将其提供给您的it团队或外部身份提供者。您可以从Zendesk管理中心生成一个新的JWT共享秘密。亚博这个操作将创建一个新的秘密,并使旧的秘密无效。您需要通知您的IT团队或外部标识提供商您的新共享秘密,以保持Zendesk SSO帐户身份验证工作。亚博
生成一个新的共享密钥
- 在管理中心,点击账户在侧栏中,然后选择安全>单点登录.
- 将鼠标悬停在要为其创建新的共享密钥的JWT配置上,然后单击选项菜单图标()及选择编辑.
- 滚动到共享的秘密在配置页面下方,单击重置的秘密.
出现确认消息。
- 点击重置的秘密确认重置。
你应该看到一个新的共享的秘密纯文本。
- 点击复制复制一份新的共享密钥,并将其提供给您的it团队或外部身份提供者。
- 保存您的更改。
切换身份验证方法
需要注意的是,如果使用第三方SSO方法在Zendesk中创建用户并对其进行身份验证,然后切换到Zendesk身份验证,这些用户将没有可用于登录的密码。亚博指示用户从Zendesk登录页面重置密码以获得访问权限。亚博
关于JWT的其他信息
JWT是一个由国际标准机构推动的开放标准IETF并且拥有来自科技行业的顶级支持者(例如微软、Facebook和谷歌)。
JWT的基本构建模块是非常容易理解的组件,其结果是一个相当简单的规范,可以在这里找到http://tools.ietf.org/html/draft-jones-json-web-token-10.JWT规范有很多开源实现,涵盖了大多数现代技术。这意味着您可以轻松地设置JWT单点登录。
需要注意的一点是,JWT有效负载只是经过编码和签名,没有加密,所以不要在哈希表中放入任何敏感数据。JWT的工作原理是将传输到字符串的JSON序列化。字符串是Base64编码的,然后JWT根据共享密钥对Base64字符串进行HMAC。这将产生一个接收方可以用来验证用户的签名。
技术实施工作表
本节针对公司中负责公司JWT认证系统的团队。它提供了关于Zendesk JWT SSO实现的详细信息。亚博
主题:
JWT算法
在你的JWT有效载荷头部指定HS256作为JWT算法:
{"typ":"JWT", "alg":"HS256"}
HS256是HMAC SHA 256的缩写,是美国国家安全局设计的256位加密算法。
亚博Zendesk JWT端点
成功验证用户后,将用户和JWT有效负载重定向到以下Zendesk端点:亚博
https://yoursubdomain.亚博zendesk.com/access/jwt
有效负载应该是base64编码的,并作为查询字符串附加到URL。
JWT负载必须使用https协议发送到Zendesk Support子域。亚博例子:
https://yoursubdmain.亚博zendesk.com/access/jwt ? jwt ={载荷}
不支持主机映射子域。
JWT属性
将属性作为base64编码的散列(Ru亚博by)或字典(Python)发送到Zendesk。使用Ruby的示例:
有效载荷= JWT。encode({:email => "bob@example.com",:name => "Bob",:iat =>时间。现在。To_i,:jti => rand(2<<64)。to_s},“我们共同的秘密”)
亚博Zendesk需要一个电子邮件地址来唯一地识别用户。除了下表中列出的必需属性之外,您还可以选择发送其他用户配置文件数据。这些数据在您的用户管理系统和Zendesk Support之间同步。亚博
属性 | 描述 |
---|---|
iat | 发行。生成令牌的时间,这用于帮助确保给定的令牌在生成后不久就被使用。该值必须为自启动后的秒数UNIX新纪元.亚博Zendesk允许最多三分钟的时钟偏差,所以一定要在你的服务器上配置NTP或类似的。 |
jti | JSON Web令牌ID。令牌的唯一id, Zendesk使用它来防止令牌重放攻击。亚博 |
电子邮件 | 正在登录用户的电子邮件,用于唯一标识Zendesk Support中的用户记录。亚博 |
的名字 | 该用户的名称。Zendesk Supp亚博ort中的用户将据此创建或更新。 |
属性 | 描述 |
---|---|
external_id | 如果您的用户是由电子邮件地址以外的其他东西唯一标识的,并且他们的电子邮件地址可能会更改,请从您的系统中发送唯一id。将id指定为字符串。 |
区域设置(适用于最终用户) Locale_id(用于代理) |
Zendesk Suppor亚博t中的区域设置,指定为数字。 |
组织 | 要将用户添加到的组织的名称。 如果选项允许用户属于多个组织启用时,其他组织将附加原始组织,并被视为辅助组织。这不会删除现有的成员。 如果希望同时传递多个组织名称,请使用组织属性来代替。组织名称必须以逗号分隔的字符串形式传递。 |
organization_id | 组织的外部ID在Zendes亚博k API中。如果同时提供organization和organization_id,则忽略organization。 如果选项允许用户属于多个组织启用时,其他组织将附加原始组织,并被视为辅助组织。这不会删除现有的成员。 如果希望同时传递多个组织id,请使用organization_ids属性来代替。组织id必须以逗号分隔的字符串形式传递。 |
电话 | 一个电话号码,以字符串形式指定。 |
标签 | 这是要在用户上设置的标签的JSON数组。这些标签会取代用户配置文件中可能存在的任何其他标记。 |
remote_photo_url | 要在用户配置文件上设置的照片的URL。 |
角色 | 用户的角色。该值可以设置为end_user,代理,或管理.默认为end_user.如果用户的角色与Zendesk Support中的角色不一致,则在Zendesk Suppo亚博rt中修改角色。 |
custom_role_id | 仅当用户角色为座席时适用。 |
user_fields | 自定义用户字段键和要在用户上设置的值的JSON散列。自定义用户字段必须存在才能设置字段值。每个自定义用户字段由用户字段管理设置中的字段键标识。日期的格式为“yyyy-mm-dd”。
如果自定义用户字段键或值无效,更新字段将无声地失败,但用户仍将成功登录。有关自定义用户字段的详细信息,请参见向用户添加自定义字段.
注意:在user_fields属性中发送空值将删除相应字段中的任何现有值。
|
远程登录URL参数(return_to)
你是否通过了return_to
参数与否是可选的,但是为了获得最好的用户体验,我们建议使用它。当Zend亚博esk将用户重定向到远程登录页面时,它可以传递一个参数return_toURL参数。该参数包含Zendesk在系统对用户进行身份验证后将返回用户的页面。亚博将参数名称和值附加到Zendesk JWT端点。亚博
例如,假设一个签出的代理单击以下链接打开支持中的票据:https://mycompany.亚博zendesk.com/tickets/1232.流程如下:
- 在单击时,Zende亚博sk将用户重定向到您的远程登录URL,并添加以下内容
return_to
参数:https://mycompany.com/亚博zendesk/sso? return_to = https://mycompa亚博ny.zendesk.com/tickets/123
- 您的身份验证系统采用
return_to
参数,并在成功验证用户后,将其追加到Zendesk JWT端点。亚博例子:https://mycompany.亚博zendesk.com/access/jwt?jwt=payload&return_to = https://mycompan亚博y.zendesk.com/tickets/123
- 亚博Zendesk使用该参数为代理打开票据页面。
的return_to
参数是代理接口的绝对URL,以及帮助中心的相对URL。
return_to
address包含它自己的URL参数,请确保您的脚本在提交JWT令牌时对整个return_to值进行了uri编码。错误处理
如果Z亚博endesk在处理JWT登录请求时遇到错误,它会发送一条解释该问题的消息。如果在配置JWT集成时指定了远程注销URL,它将重定向到该URL并传递一个消息和一个种类参数。在错误的情况下,种类参数的值总是error。亚博Zendesk建议指定一个远程注销URL,以及记录来自Zendesk的消息。大多数可能发生的错误都是您想要修复的。例如时钟漂移、速率限制和无效令牌。
JWT实现代码示例
实际的JWT实现非常简单,大多数现代语言都有支持它的库。亚博Zendesk为以下JWT SSO GitHub存储库中的各种堆栈提供了一系列示例:
如果您在任何其他堆栈中实现JWT,我们也很乐意在那里提供一个示例。在本文中添加注释,分享您所实现的内容。
如果你运行IIS/AD并且不想构建自己的。net解决方案,我们提供了一个经典ASP的完整实现,它只需要你调整几个变量。下载ASP身份验证脚本从Github。
41岁的评论
嗨
我正在尝试做与Raghav上面要求的2篇帖子相同的事情:一旦身份验证,使用JWT有效负载重定向到Zendesk,然后返回到应用程序。亚博
所以我重定向到abc.zendesk.com/acc亚博ess/jwt?jwt=token&return_to=https://my_app_url/
它重定向到return_to url,但Zendesk会话没有打开。亚博还有别的办法吗?
嗨,朱利安,
很抱歉给您带来不便。我已经为你的问题制作了一张票,这样我们就可以和你一起了解你的具体情况。谢谢你!
我们正在尝试安装JWT,一切都符合Zendesk的要求。亚博
但得到错误“JWT签名无效。”签名无法验证,请检查您的令牌是否匹配。”
我们现在不能对这条消息做任何事情。有人来帮忙吗?
提前谢谢!
Hi Xiengcheng Jin,
谢谢你的帮助,很高兴能在这里提供帮助!对于错误,可能的原因是用于生成有效负载的散列部分的共享密钥与Security > SSO > JSON Web Token下列出的共享密钥不匹配。
由于在Zendesk UI中只显示了共享密钥的前几个字符,因此通常收到此错误的用户必须生成一个新的共享密钥,并使用新的密钥更新JWT脚本。亚博
额外的原因/ s:
-提供的JWT头不包含"typ"或"alg"参数。大多数JWT实现应该自动提供这些头文件。
但是,如果您的团队滚动自己的实现(或使用我们的经典ASP实现的过时版本),则可能出现此错误。大多数JWT实现应该自动提供这些头文件。在这种情况下,Base64解码请求的JWT参数的第一部分(头)可以确认这是问题的原因。如果"typ"或"alg"参数缺失,则会出现以下错误:
{“alg”:“HS256”}
我希望这对你有所帮助,并为你指明正确的方向。
谢谢
肖恩Traquena
当我的nodejs后端重定向到' https://.zendesk.com?jwt=xxxx ' u亚博rl时,我可以看到重定向因为CORS策略而被阻止。
是否有任何设置在Zendesk管理面板,我应该改变,使Z亚博endesk的CORS策略允许重定向从我的域?
大家好!
关于您收到的错误,请务必查看我们的文章:
https://support.亚博zendesk.com/hc/en-us/articles/360000795768-How-can-I-troubleshoot-CORS-
我希望这能有所帮助!
--
肖恩
这是给希姆兰的。出于某种原因,我收到了你的评论通知,但在这里看不到。
从有效负载中删除exp。亚博Zendesk不喜欢这样。这是从我的c#代码剪辑:
JwtSecurityToken token = handler.CreateJwtSecurityToken(描述符);条目)
foreach (KeyValuePair
{
token.Payload[条目。键]= entry.Value;
}
//亚博Zendesk不期待nbf
token.Payload.Remove(“nbf”);
//亚博Zendesk不支持exp
token.Payload.Remove(“经验值”);
嘿,查理,非常感谢你的回复!
我实际上删除了我的评论,因为我意识到我们只是没有按下按钮,让团队成员勾选复选框来使用JWT。=\愚蠢的错误在我的结束,一切似乎都很好现在!
谢谢你的留言!我完全可以删除过期时间来清理这个以及!
查理,再问你一个问题。
我们希望在登录/创建用户时传递组织和organization_id作为JWT的一部分。有几件事我很困惑,我
1.它表示,如果我们在令牌上传递organization_id声明,“如果同时提供了organization和organization_id,则忽略organization。”——我们想看看如何把这两个信息都放在那里。本质上,我们的数据是用Org#22:组织名称结构化的。所以我们想把这两个信息都传递到这里,这样我们就可以存储ID和Organization名称。你觉得我们该怎么做?我们是否应该将其添加到自定义用户字段并使用组织?
2.还有一种情况,用户可以有多个组织我们知道,我们可以传递字符串作为组织属性但是,是否也可以提供一组id呢?
提前感谢您的协助!
那是很久以前我研究它的时候,我不知道你是否可以在有效载荷中释放名称-值对。
我们做Zendesk的方式是亚博创建许多与我们的产品相对应的“品牌”,除此之外,我们使用Zendesk标签创建权限组,允许谁可以看到品牌内的内容。标签是一个数组,因此如果您愿意,您可以基于它们封装大量逻辑。
// //创建有效载荷日志指定Epicor应用程序用户到Zendesk与tih标签亚博(StringComparer.OrdinalIgnoreCase) {
payload = new Dictionary
{"iat", timestamp},
{"jti", system . guide . newguid ().ToString()},
{"tags", aryTags},
{"name", userName},
{"email", userEmail}
};
嗨@……或者任何来自内容团队的人……本文中缺少对我的实现非常重要的信息。
1.JWT属性提到了通过“organizations”属性设置多组织成员的能力。但是,这个属性没有文档化。
2.当我使用“组织”属性,将zendesk创建组织,如果它没有创建?亚博
我们使用带有JWT端点和external_id字段的SSO。我们遇到的一个问题是,当用户在我们的系统中更改他/她的电子邮件时,ZD抛出一个错误,然后尝试单点登录到一个现有的帐户(external_id保持不变)。一个例子:
如果我们的UserId 123 <user.com>访问ZD,我们使用SSO通过传递这样的东西:{external_id: 123,电子邮件:"user.com”,……}到端点https://nnn.亚博zendesk.com/access/jwt?jwt=...&return_to=yyy.这工作得很好,ZD创建用户。
现在,如果我们的用户将他/她的电子邮件更改为new.com在我们的系统中,那么下一次我们使用SSO时,将传递以下JWT: {external_id: 123, email: "new.com”,……}。这将导致错误。
我想在ZD中看到一个设置,如果提供了external_id,您可以通过SSO功能配置SSO以允许更新电子邮件地址。谢谢!
我得到这个错误,你能帮我找出哪里出错了吗?显然,只有现有用户可以单点登录。
https://example.com/亚博zendesk/logout?kind=error&message=Please%20use%20one%20of%20the%20options%20below%20to%20sign%20in%20to%20Zendesk。
嗨Ursu Alexandr,
通常,如果Zendesk实例是打开的,任何用户都可以通过SSO登录。亚博所谓开放,我们的意思是任何人都可以提交门票。您可以在侧栏的“管理中心>人员”图标中查看该设置>配置>最终用户:
你可以在这篇文章中找到更多细节:
如果尽管启用了这个设置,但问题还是发生了,请在这里告诉我,我将代表您创建一张票,以收集更多详细信息并制定解决方案。
如果Zendesk中的其他用户使用了该电子邮件地址,则应该会出现错误亚博new@new.com.否则,它应该用这个电子邮件地址更新用户,因为使用external_id的要点之一是当用户的电子邮件地址可能发生变化时。请仔细检查,并在这里告诉我,如果你仍然遇到错误。
谢谢你Christophe,实际上是你帮助我们摆脱了这个错误(https://example.com/亚博zendesk/logout?kind=error&message=Please%20use%20one%20of%20the%20options%20below%20to%20sign%20in%20to%20Zendesk。):启用外部认证
嘿……我对在我的。6应用程序中使用ZenDesk很感兴趣亚博,如果您能提供任何指导,我将非常感激。我看到推荐贴了…from 10 years ago. It would be valuable to have something that is a little more current.
谢谢你能提供的任何帮助/考虑。
如何将jwt令牌时间从3分钟增加到一些x时间?
你好,
根据文件,在JWT单点登录,“Email”和“external_id”参数会自动添加到远程注销url中。
但是对于我的应用程序,无效的电子邮件id被传递到远程注销url。
Email =invalid%40example.com和external_id也没有被传递。
有人能研究一下上面的问题吗?
请原谅我问了一个愚蠢的问题,这个问题已经被回答了,我错过了…但是我们正在研究最终用户的两种不同的身份验证方式。这可能吗?一大批最终用户和代理使用SAML SSO进行登录,另一大批外部最终用户使用JWT单点登录进行登录。这有可能吗?
目前,无法使用多种方法对最终用户进行身份验证。然而,这是可能的代理,因为你可以使用SSO,社会,或基本身份验证。您还可以使用不同于代理用户和最终用户的分离身份验证。我已经在下面给你链接了。
Split-authentication-methods-for-customers-and-agents
谢谢!
以防我的措辞不正确,将代理排除在等式之外——您是说最终用户不能同时拥有两种形式的SSO吗?一组终端用户使用SAML进行身份验证,而另一组终端用户使用JWT?
换句话说,我有一大群终端用户目前使用SAML进行身份验证。我希望有第二组最终用户使用JWT。
是的,目前只能在代理和最终用户之间分离身份验证方法,不可能同时向最终用户提供SAML和JWT。我对我们的SSO专家进行了调查,以核实并查看是否有任何已知的变通办法,如果有的话,我会跟进你,让你知道什么是可能的。
干杯!
嗨!这很有帮助,谢谢。如果用户的external_id作为最终用户已经在Zendesk系统中,有两个问题:亚博
1.它会重新创建用户吗?(我猜不是)
2.这将使用户能够接收到用户标签范围内的文章,因此用户段?
我们计划在Zendesk系统尝试使用JWT SSO之前就已经在系统中创建了用户。亚博
谢谢!
嗨,吉米!
抱歉回复晚了。回答你的问题,如果用户的external_id已经在Zendesk系统中,亚博
1.它不会重新创建用户
2.所有与该external_id和电子邮件地址相关联的用户配置文件将适用于Zendesk系统,包括他们的标签,所以这应该是你预期的工作。亚博
只需确保external_id与这些最终用户拥有的电子邮件地址配对即可。您不能有重复的email或external_id,所以在实现SSO解决方案之前一定要进行三次检查。
是可以直接去的吗https://yoursubdomain.亚博zendesk.com/access/jwt链接从我们的SAAS,因为我们的用户将已经登录,节省他们不得不再次登录访问我们在Zendesk的知识库亚博官方app亚博
不幸的是,没有,因为JWT握手还没有完成,所以有效负载不会包含在请求中。
抱歉给您带来不便
埃里克·纳尔逊不好意思,我的意思是从我们的应用重定向到https://yoursubdomain.亚博zendesk.com/access/jwt生成一个JWT并将其包含在有效载荷中。我们的问题是,我们的每个客户端都有一个唯一的url登录,所以重定向到一个通用的登录(https://mycompany.com/亚博zendesk/sso)不会起作用
你好,我们的SSO设置目前不工作,登录尝试不重定向到我们的zendesk实例,而是返回url如下:亚博
https:// * remoteURLdomainName * / en / ?电子邮件= &external_id =类型= error&logout = 1的消息=请+使用+ + + +选项+在+ + +在+ + Zendesk迹象。亚博
已经在管理中心中配置了JWT,并使用了正确的远程登录URL。关于上面这个错误可能表明什么,有任何提示吗?我们的托管团队没有识别出来自他们的错误。
谢谢,
迭戈
嗨,Z亚博endesk社区,
没有关于如何创建光代理的信息。
请问有可能得到信息吗?
谢谢你!
请登录留下评论。