启用JWT单点登录

回到顶端

42岁的评论

  • 摩洛哥云

    我正在尝试做Raghav上面请求的2个帖子一样的事情:一旦认证,用JWT有效负载重定向到Zendesk,然后返回到应用程序。亚博

    所以我重定向到abc.zendesk.com/acc亚博ess/jwt?jwt=token&return_to=https://my_app_url/

    它重定向到return_to url,但没有打开Zendesk会话。亚博还有别的办法吗?

    1
  • 布伦达Cardinez

    嗨,朱利安,


    给您带来的不便我深表歉意。我为你的问题创建了一个单,这样我们就可以和你一起研究你的细节。谢谢你!

    1
  • XIECHENG金

    我们正在尝试设置JWT,一切都符合Zendesk的要求。亚博
    但是得到错误“JWT签名无效”。无法验证签名,请检查您的令牌是否匹配。”
    我们现在不能对这条信息做任何事情。有人能帮忙吗?
    提前感谢!

    0
  • 肖恩Traquena
    亚博Zendesk客户服务

    你好,金雄成。

    谢谢你的帮助,很高兴在这里提供帮助!至于错误,可能的原因是用于生成有效负载的散列部分的共享密钥与“安全> SSO > JSON Web令牌”下列出的共享密钥不匹配。

    由于在Zendesk UI中只显示共享密钥的前几个字符,因此通常收到此错误的用户必须生成一个新的共享密钥,并用新密钥更新JWT脚本。亚博

    额外的原因/ s:
    -提供的JWT报头不包含" type "或"alg"参数。大多数JWT实现应该自动提供这些头文件。
    但是,如果您的团队使用自己的实现(或使用我们的经典ASP实现的过时版本),则可能出现此错误。大多数JWT实现应该自动提供这些头文件。在这种情况下,Base64解码请求JWT参数的第一部分(报头)可以确认这是问题的原因。如果缺少" type "或"alg"参数,则会出现错误:

    {“alg”:“HS256”}

    我希望这对你有所帮助,并指出正确的方向。

    谢谢

    肖恩Traquena

    1
  • 贾斯汀

    当我的nodejs后端重定向到“https://.zendesk.com?jwt=xxxx”url时亚博,我可以看到由于CORS策略,重定向被阻止了。

    访问XMLHttpRequesthttps://xxxx.亚博zendesk.com/access/jwt?jwt=xxxx
    (从'https://api.mydomain.com/v1/auth/login”)
    从原点开始https://dashboard.mydomain.com已被CORS政策阻止:
    预飞行请求响应未通过访问控制检查:
    请求的资源上没有'Access-Control-Allow-Origin'标头。

    在Zendesk管理面板中是否有任何设置,我应该更改,以亚博便Zendesk的CORS策略允许从我的域重定向?

    1
  • 肖恩Traquena
    亚博Zendesk客户服务

    大家好!

    关于您收到的错误,请务必查看我们的文章:

    https://support.亚博zendesk.com/hc/en-us/articles/360000795768-How-can-I-troubleshoot-CORS-

    我希望这对你有帮助!

    --

    肖恩

    1
  • 查尔斯·劳埃德

    这是给西姆兰的。出于某种原因,我收到了你的评论通知,但在这里看不到。

    从你的有效载荷中移除exp。亚博Zendesk不喜欢这样。以下是我的c#代码片段:

    JwtSecurityToken token = handler.CreateJwtSecurityToken(描述符);
    foreach (KeyValuePair entry in payload)

    token.Payload[条目。[键]= entry.Value;
    }

    //亚博Zendesk不期待nbf
    token.Payload.Remove(“nbf”);

    //亚博Zendesk不支持exp
    token.Payload.Remove(“经验值”);

    1

    嘿,查理,非常感谢你的回复!
    我实际上删除了我的评论,因为我意识到我们只是没有按下按钮让团队成员选择使用JWT。我犯了个愚蠢的错误,现在一切似乎都好起来了!

    但是谢谢你的留言!我完全可以去除过期时间来清理这个!

    0

    再问你一个问题,查理。
    当我们登录/创建用户时,我们希望传递一个组织和一个组织_id作为JWT的一部分。有几件事我不明白,我

    1.它表示,如果我们在令牌上传递一个organization_id声明,“如果同时提供了organization和organization_id,则忽略organization。”——我们想看看如何同时得到这两条信息。从本质上讲,我们的数据是由组织名称组成的。因此,我们希望将这两条信息传递到这里,这样我们就可以存储ID和组织名称。你觉得我们该怎么做?我们是否应该将其添加到自定义用户字段并使用Organization。

    2.还有一种情况,用户可以有多个组织我们可以传递字符串作为组织属性,但是否可以提供一组id呢?

    提前感谢您的协助!

    0
  • 查尔斯·劳埃德

    这是很久以前的事情了,我不知道你是否可以在负载中自由形式的名称-值对。

    我们做Zendesk的方式是亚博创建许多与我们的产品相对应的“品牌”,除此之外,我们使用Zendesk标签来创建权限组,谁可以看到一个品牌内的什么。标签是一个数组,因此如果您愿意,可以基于它们封装许多逻辑。

    // //创建有效负载,将指定的Epicor应用程序用户用标签登录到Zendesk亚博
    payload = new Dictionary(StringComparer.OrdinalIgnoreCase) {
    {"iat", timestamp},
    {"jti", System.Guid.NewGuid().ToString()},
    {"tags", aryTags},
    {"name", userName},
    {"email", userEmail}
    };

    1
  • 伊塔mendelawy

    @……或者内容团队的任何人……本文中缺少一些对我的实现非常关键的信息。

    1.JWT属性提到了使用“organizations”属性设置多组织成员关系的能力。然而,这个属性没有文档化。

    2.当我使用“组织”属性,zendesk将创建组织,如果它没有创建?亚博

    1
  • 弗雷德里克·约翰逊

    我们使用带有JWT端点和external_id字段的SSO。我们遇到的一个问题是,当用户在我们的系统上更改他/她的电子邮件,然后尝试单点登录到现有帐户(与external_id保持不变)时,ZD抛出一个错误。一个例子:

    如果我们的UserId 123 <user.com>访问ZD,我们通过传递这样的东西来使用SSO: {external_id: 123, email: "user.com”,……}到端点https://nnn.亚博zendesk.com/access/jwt?jwt=...&return_to=yyy。这非常有效,ZD创建用户。

    现在,如果用户将他/她的电子邮件更改为new.com在我们的系统中,那么下次我们使用SSO时,将传递以下JWT: {external_id: 123, email: "new.com”,……}。这会导致一个错误。

    我希望在ZD中看到一个设置,您可以通过SSO功能配置SSO,以便在提供external_id时允许更新电子邮件地址。谢谢!

    0
  • Ursu Alexandr

    我得到这个错误,你能帮我弄清楚是什么错了吗?显然,只有现有用户可以进行SSO。
    https://example.com/亚博zendesk/logout?kind=error&message=Please%20use%20one%20of%20the%20options%20below%20to%20sign%20in%20to%20Zendesk。

    0
  • 克利斯朵夫Tiraboschi
    亚博Zendesk客户服务

    Ursu Alexandr

    通常,如果您的Zendesk实例是打开的,任何用户都可以通过SSO登录。亚博所谓开放,我们的意思是任何人都可以提交门票。您可以在侧栏中的in Admin Center > People图标> Configuration >最终用户中检查此设置:

    你可以在这篇文章中找到更多细节:

    如果在启用此设置后问题仍然发生,请在这里告诉我,我将代表您创建一个票证,以收集更多细节并制定解决方案。

    1
  • 克利斯朵夫Tiraboschi
    亚博Zendesk客户服务
    嗨,弗雷德里克,

    如果Zendesk中的另一个用户使用该电子邮件地址,您确实应该出现错误亚博new@new.com。否则,它应该使用此电子邮件地址更新用户,因为使用external_id的一个要点是当用户的电子邮件地址可能会更改时。请再次检查并让我知道,如果你仍然遇到一个错误。
    0
  • Ursu Alexandr

    谢谢Christophe,实际上是什么帮助我们消除了这个错误(https://example.com/亚博zendesk/logout?kind=error&message=Please%20use%20one%20of%20the%20options%20below%20to%20sign%20in%20to%20Zendesk。):启用外部认证

    0
  • Mike-E

    嘿……我有兴趣在我的。net 6应用程序中使用ZenDe亚博sk,并将非常感谢您提供的任何指导。我看到张贴的参考资料…from 10 years ago. It would be valuable to have something that is a little more current.

    感谢您提供的任何帮助/关照。

    0
  • Kumail Raza

    如何将jwt令牌时间从3分钟增加到x分钟?

    0
  • Rohan Negi

    你好,

    根据文档,InJWT单点登录;远程注销url中会自动添加Email和external_id参数。
    但是对于我的应用程序,无效的电子邮件id被传递到远程注销url。
    Email =invalid%40example.com和external_id也没有传递。
    有人能调查一下上面的问题吗?

    1
  • 艾迪索耶斯

    原谅我,如果我问了一个愚蠢的问题,已经回答了,我错过了…但我们正在研究终端用户身份验证的两种不同方式。这可能吗?使用SAML单点登录的一大组最终用户和代理,以及使用JWT单点登录的一小组外部最终用户。这有可能吗?

    0
  • 杰森·谢弗
    亚博Zendesk客户服务
    嗨艾迪,

    此时,不可能使用多种方法对最终用户进行身份验证。但是,可以使用代理,因为您可以使用SSO、Social或Basic身份验证。您还可以使用对代理和最终用户不同的分割身份验证。我把它链接在下面。

    Split-authentication-methods-for-customers-and-agents


    谢谢!
    0
  • 艾迪索耶斯

    以防我的措辞不正确,将代理排除在等式之外—您是说最终用户不能同时使用两种形式的SSO吗?使用SAML进行身份验证的一组最终用户和使用JWT的其他最终用户?

    换句话说,我有一大组终端用户目前使用SAML进行身份验证。我希望有另一组使用JWT的终端用户。

    0
  • 杰森·谢弗
    亚博Zendesk客户服务
    嗨艾迪,

    没错,目前只能在代理和最终用户之间分割身份验证方法,而不可能只向最终用户提供SAML和JWT。我已经向我们的SSO专家进行了查询,以验证并查看是否有已知的解决方案,如果有,我会与您跟进并让您知道可能的解决方案。

    干杯!
    0
  • 吉米·麦克德莫特

    嗨!这很有帮助,谢谢。如果用户的external_id已经作为最终用户在Zendesk系统中,那么有两个问题:亚博

    1.它会重新创建用户吗?(我猜不是)

    2.这是否允许用户接收限定在用户标签和用户段范围内的文章?

    我们计划早在用户尝试使用JWT SSO之前就在Zendesk系统中创建用户。亚博

    谢谢!

    0
  • 贾斯汀H
    亚博Zendesk客户服务

    嗨,吉米!

    很抱歉回复晚了。为了回答你的问题,如果用户的external_id已经在Zendesk系统中,亚博

    1.它不会重新创建用户

    2.用户配置文件中与external_id和电子邮件地址相关的所有内容都将适用于Zendesk系统,包括它们的标签,所以这应该像您预期的那样工作。亚博

    只要确保external_id与这些最终用户的电子邮件地址配对即可。您不能有email或external_id的副本,因此在实现SSO解决方案之前,请确保对其进行三次检查。

    0
  • 加里Thickett

    可以直接去吗https://yoursubdomain.亚博zendesk.com/access/jwt链接来自我们的SAAS,因为我们的用户将已经登录,节省他们必须再次登录访问我们在Zendesk的知识库亚博官方app亚博

    0
  • 埃里克·纳尔逊
    亚博Zendesk开发者倡导
    嗨,加里,

    不幸的是,由于JWT握手尚未完成,因此负载不会包含在请求中。

    很抱歉给您带来不便
    0
  • 加里Thickett

    埃里克·纳尔逊抱歉,我的意思是从我们的应用重定向到https://yoursubdomain.亚博zendesk.com/access/jwt生成JWT并将其包含在有效负载中。我们遇到的问题是,我们的每个客户端都有一个唯一的登录url,因此将它们重定向到通用登录(https://mycompany.com/亚博zendesk/sso)行不通

    0
  • 迭戈·埃尔南德斯

    你好,我们的SSO设置目前不工作,登录尝试没有重定向到我们的zendesk实例,而是返回url如下:亚博

    https:// * remoteURLdomainName * / en / ?电子邮件= &external_id =类型= error&logout = 1的消息=请+使用+ + + +选项+在+ + +在+ + Zendesk迹象。亚博

    JWT已经在Admin中心配置了正确的远程登录URL。关于上面这个错误可能表明什么,有任何提示吗?我们的托管团队不认为这个错误来自他们。

    谢谢,
    迭戈

    0
  • Raphaël pembroguet -军官

    嗨,Z亚博endesk社区,

    没有关于如何创建光代理的信息。

    请问有可能得到信息吗?

    谢谢你!

    0

登录留下评论。

由Zendesk提供支亚博持