使用 JWT 保护 Salesforce 集成:Apex 与连接应用的开发者指南
背景与应用场景 在现代企业级应用架构中,系统间的安全通信与身份验证是至关重要的一环。随着云计算和微服务架构的普及,不同服务之间如何安全、高效地交换信息成为了开发者面临的常见挑战。 JSON Web Token (JWT) 应运而生,它是一种开放标准 (RFC 7519),定义了一种紧凑且自包含的方式,用于在各方之间安全地传输信息。 JWT 的核心优势在于其无状态性(statelessness)和自包含性(self-contained)。这意味着令牌本身包含了验证所需的所有信息,接收方无需访问数据库即可验证其真实性。这极大地简化了身份验证流程,减少了服务器负载,并提升了可扩展性。 在 Salesforce 平台上,JWT 在多种集成场景中发挥着关键作用: 服务器到服务器集成(Server-to-Server Integrations): 当外部系统需要调用 Salesforce API,或者 Salesforce 需要调用外部系统的 API 时,JWT 提供了一种无需交互式用户登录的身份验证机制。例如,夜间批量数据同步、自动化流程触发等场景。 OAuth 2.0 JWT 持有者流(OAuth 2.0 JWT Bearer Flow): 这是 Salesforce 连接应用(Connected App) 的一种常用授权流,允许外部应用通过预先配置的数字证书,使用 JWT 断言(assertion)来直接获取 Salesforce 访问令牌(Access Token),而无需用户手动授权。这在构建自定义 SSO(Single Sign-On)解决方案或集成第三方应用时非常有用。 从 Apex 调用外部服务: 当 Apex 代码需要安全地调用外部 REST API,且该外部 API 支持 JWT 验证时,Salesforce 提供了内置的类库,允许开发者在 Apex 中生成、签名 JWT,并将其作为授权凭证发送给外部服务。 单点登录(Single Sign-On, SSO): 虽然 JWT 本身不是一个完整的 SSO 协议,但它是构建许多 SSO 解决方案的基石,特别是在实现基于 SAML 2.0 或 OAuth 2.0 的自定义 SSO 场景中。 本文将深入探讨 JWT 的工作原理,并重点介绍如何在 Sale...