宣布日期 | 开始推行 | 结束推行 |
2024 年 8 月 27 日 | 2024 年 8 月 27 日 | 2025 年 2 月 17 日 |
根据 OAuth 2.0 最佳实践,自 2025 年 2 月 17 日起,Zendesk 将停止接受访问密钥的隐式授权和密码授权(仅限 Zendesk Support)。此项移除不适用于 Chat、Sell 或 Sunshine。
由于旧版授权类型存在不安全性,建议客户尽快切换到授权代码流程或 API 密钥。
此公告包括以下主题:
有什么变化?
2025 年 2 月 17 日,Zendesk 将停止接受隐式授予和密码授予作为获取访问密钥的有效授权类型。客户将需要迁移到授权代码流程授权类型或 API 密钥。即日起,任何要使用 OAuth 2.0 对 API 调用进行身份验证的用户只能使用授权代码工作流程授权类型。
Zendesk 为何作出这项更改?
根据 OAuth 2.0 最佳实践,隐式授权和资源所有者密码凭证(密码)授权现被认为不安全,被 OAuth 2.0 安全最佳实践所禁用。
过去之所以推荐使用隐式授权,是因为它会直接返回访问密钥,而无需额外授权代码步骤。对于无法安全存储 client_secret 的公共 OAuth 客户端,这是确保安全的必要条件。现在不推荐使用该方法,因为它不经过客户端确认通过 HTTP 重定向发送访问密钥,存在安全风险。该方法已被安全性更高的带有用于代码交换 (PKCE) 证明密钥的授权代码授权所取代。对于使用用户凭证获取访问密钥,密码授权是一种过时的方法。现在也不推荐使用该方法,因为它需要客户端应用程序处理用户密码并将其发送到授权服务器,从而导致攻击面增加。此外,它还不兼容双重身份验证。
我需要做些什么?
如果您当前使用的是隐式授权,您将需要:
- 更新当前
/oauth/authorizations/new
端点调用,以使用response_type: code
而不是response_type: token
,并包含参数redirect_uri
和state
(如果没有)。如果使用的是公开客户端,请务必包含参数code_challenge
和code_challenge_method
。请参阅生成 code_challenge 值,了解更多关于如何生成code_challenge
的信息。 - 在您的 OAuth 客户端中更新或实施新的回拨端点。有关更多信息,请参阅对应用程序使用 OAuth 身份验证和使用 PKCE 加强 Zendesk OAuth 访问密钥安全中的授权代码授权实施详情。对于公开客户端,或如果
/oauth/authorizations/new
调用包含code_challenge
,请务必在调用/oauth/tokens
端点时包含code_verifier
。 - 在管理中心 (
/admin/apps-integrations/apis/zendesk-api/oauth_clients
) 更新客户端,以添加新的/更新后的重定向 URI(如果没有)。 - 经过测试和验证后,建议在管理中心 (
/admin/apps-integrations/apis/zendesk-api/oauth_clients
) 更新客户端类型,将其设置为公开或保密,以便我们为您提供最高级别安全保护。
如果您当前使用的是密码授权,则必须使用 API 密钥。
如果您对此公告有任何反馈或疑问,请访问我们的社区论坛,我们将在这里收集和管理客户对产品的反馈。如需获取关于 Zendesk 产品的常规帮助,请联系 Zendesk 客户支持。