Loading
识别您的用户并管理访问
目录
选择筛选器

          没有结果
          没有结果
          以下是一些搜索提示

          检查关键字的拼写。
          使用更普遍的搜索词。
          选择更少的筛选器,并扩大搜索范围。

          搜索所有 Salesforce 帮助
          基于 JWT 的访问令牌

          基于 JWT 的访问令牌

          Salesforce 支持两种访问令牌:不透明令牌和基于 JSON Web 令牌 (JWT) 的访问令牌。不透明访问令牌被格式化为除非您调用 Salesforce 用户信息端点否则无法解码的字符串。基于 JWT 的访问令牌被格式化为 JSON 对象,其中包含授权应用程序所需的所有信息。这种透明格式使基于 JWT 的访问令牌更容易用于在 Salesforce 平台之外构建的服务。您可以在平台外服务上本地轻松解析和验证基于 JWT 的访问令牌,而无需调用 Salesforce 端点。通过本地自检令牌,您可以提高授权流的性能和效率。

          所需的 Edition

          适用于 Salesforce Classic 和 Lightning Experience
          适用于:所有版本

          与不透明的访问令牌相比,基于 JWT 的访问令牌具有不同的功能和限制。例如,基于 JWT 的访问令牌只能用于访问 REST API。要查看令牌类型的比较,请访问 Salesforce 帮助中的访问令牌

          对于所有授权流,您可以颁发基于 JWT 的访问令牌。

          令牌格式

          基于 JWT 的访问令牌使用 JWT 结构,其中包含标题、有效载荷和签名。标题包含有关令牌的信息,例如令牌类型。有效载荷包含一组包含有关令牌、用户和应用程序信息的声明。签名部分包含令牌的加密签名。该签名由 Base64 编码的标题和有效载荷以及使用 alg 声明中指定的算法签名的密码组成。

          以下是标题和有效载荷的详细概述。

          备注
          备注 根据令牌的发行方式,它们可能包含此处未列出的其他声明。
          JWT 标题声明
          标题声明 描述
          alg(算法) 用于签署基于 JWT 的访问令牌的算法,允许您验证该令牌自发布以来未被更改。Salesforce 仅支持 RS256 算法,因此此声明的值必须是 RS256
          typ(类型) 在令牌中存储的内容类型。此声明有助于应用程序将令牌与其他类型的数据区分开来。对于基于 JWT 的访问令牌,此值为 JWT
          kid(密钥 ID) 向 Salesforce 注册的字符串,表示密钥用于签署令牌,这有助于证明其身份。
          tty(令牌类型) 令牌的类型。该值设置为 sfdc-core-token
          tnk(租户密钥) 租户密钥,用于标识发布了基于 JWT 的访问令牌的 Salesforce 组织。定义此值,以便 Salesforce 可以找到并验证该组织的正确公用密钥。
          ver(版本) JWT 库的版本。

          以下是示例标题。

          {
            "tnk": "example/00XXXXXX",
            "ver": "1.0",
            "kid": "CORE_ATJWT************",
            "tty": "sfdc-core-token",
            "typ": "JWT",
            "alg": "RS256"
          }

          有效载荷始终包含这些声明。

          JWT 有效载荷必填声明
          有效载荷声明 描述
          aud(受众) JWT 访问令牌的目标受众,由其用例决定。aud 声明被格式化为字符串的 JSON 数组。
          exp(到期时间) JWT 访问令牌的到期时间。在此时间或之后不能接受该令牌。到期时间必须是当前日期和时间之后。
          iss(发行人) 发布 JWT 访问令牌的 My Domain 登录 URL 或 Experience Cloud 站点的 URL。例如,MyDomainName.my.site.com
          mty 仅供内部使用。
          nbf(不早于时间) 客户端必须在nbf声明中表示的日期和时间之后收到 JWT。如果在此日期和时间之前发送 JWT,客户端将无法接受它。
          sfi 保留供将来使用的内部标识符。
          sub(主题)

          标识作为 JWT 访问令牌主体的用户。sub 值以用户标识符的类型为前缀。Salesforce 支持这些前缀。

          • uid— 表示企业对企业 (B2B) 用户。前缀后面是用户的 15 个字符的用户 ID。例如,uid:005x00000000001
          • b2c— 表示企业对消费者 (B2C) 用户。前缀后面是用户的 15 个字符的用户 ID。例如,b2c:005x00000000001
          • uvid— 表示声明正在存储唯一的访问者 ID (UVID)。UVID 是版本 4 通用唯一标识符 (v4 UUID),例如abcd-1234-efgh,您可以在无头来宾流期间生成。来宾流在 sub 声明中发布带有 UVID 的基于 JWT 的访问令牌。如果您将令牌或 UVID 传递到命名用户流,新的基于 JWT 的访问令牌会将 UVID 放入 obo 声明中,sub 声明会存储用户 ID。
          • app— 仅供内部使用。
          scp(范围) Salesforce 支持的范围列表,包括自定义范围,格式化为范围名称的 JSON 数组。范围用空格分隔。令牌可以包括任何 Salesforce 范围,但不包括 full 范围。

          有效载荷也可以包含这些可选声明。

          JWT 有效载荷可选声明
          有效载荷声明 描述
          acx 仅供内部使用。
          client_id(使用者密钥) 颁发令牌的 Salesforce 外部客户端应用程序或连接的应用程序的使用者密钥。
          iat(签发时间) 发布 JWT 的时间。您可以用该声明的值来计算 JWT 已存在多长时间。
          roles(角色列表)

          定义服务可用来控制访问的令牌属性,例如权限集和角色。Salesforce 完全控制该声明中的值。该声明并未包括用户访问权限的完整列表。例如,分配给用户的权限集有时不会显示在此列表中。

          此声明中的值被格式化为带前缀的字符串数组。Salesforce 支持这些前缀。

          • ps— 表示权限集,以 15 个字符的 ID 表示。例如,ps:000x00000000001
          • role— 表示在 Salesforce 中定义的角色。例如,role:Commerce Admin
          • other– 包含自由格式的字符串,可以指示影响令牌访问的任何其他因素。例如,它可以包含有关用户类型的信息,例如other:System Administrator

          有时,此请求是一个空数组。

          obo (代表) 拥有令牌的任何人都可以代表该声明中的值完成操作。对于 Salesforce,当您将来宾令牌传递到命名用户流时,此声明用于将 UVID 链接到命名用户。来宾令牌包含 sub 声明中的 UVID。在完成命名用户流后,新访问令牌将 UVID 放入 obo 声明中,并将用户 ID 存储在 sub 声明中。

          以下是有效载荷的例子。由于此示例在 obo 声明中包含 UVID,因此您可以假设此令牌是在将 UVID 传递到命名用户流后颁发的。

          {
            "scp": "api",
            "aud": [
              "https://example.com"
            ],
            "sub": "uid:005x00000000001",
            "nbf": "1675197036",
            "iss": "https://example.com",  "exp": "1675198836",
            "iat": "1675197036",
            “obo”: “uvid:abcd-1234-efgh”,
            "client_id": "***********",
            “mty”: “oauth”,
            “sfi”: “********”
          }
          
           
          正在加载
          Salesforce Help | Article