12.2. APIcast 如何处理 JSON Web 令牌


APIcast 通过检查对 API 使用者应用返回的 OpenID Connect 身份提供程序,从而处理每个请求。该请求包含由集成的 OpenID Connect 身份提供程序发布的 JWT。JWT 必须位于 Authorization 标头中,且必须使用 Bearer 模式。例如,标头应类似如下:

Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2lkcC5leGFtcGxlLmNvbSIsInN1YiI6ImFiYzEyMyIsIm5iZiI6MTUzNzg5MjQ5NCwiZXhwIjoxNTM3ODk2MDk0LCJpYXQiOjE1Mzc4OTI0OTQsImp0aSI6ImlkMTIzNDU2IiwidHlwIjoiQmVhcmVyIn0.LM2PSmQ0k8mR7eDS_Z8iRdGta-Ea-pJRrf4C6bAiKz-Nzhxpm7fF7oV3BOipFmimwkQ_-mw3kN--oOc3vU1RE4FTCQGbzO1SAWHOZqG5ZUx5ugaASY-hUHIohy6PC7dQl0e2NlAeqqg4MuZtEwrpESJW-VnGdljrAS0HsXzd6nENM0Z_ofo4ZdTKvIKsk2KrdyVBOcjgVjYongtppR0cw30FwnpqfeCkuATeINN5OKHXOibRA24pQyIF1s81nnmxLnjnVbu24SFE34aMGRXYzs4icMI8sK65eKxbvwV3PIG3mM0C4ilZPO26doP0YrLfVwFcqEirmENUAcHXz7NuvA
Copy to Clipboard Toggle word wrap

有许多开源工具可用于安全地解码 JWT。请注意,您不会在公共 Web 工具中解码 JWT。在解码的 JWT 中,您可以看到令牌有三个部分:

  • 标头提供有关如何生成令牌的信息,以及用于为令牌签名的算法。
  • 有效负载标识发送请求的 API 使用者。详情包括此 API 使用者可以执行的读写操作、API 使用者的电子邮件地址以及有关 API 用户的其他信息。
  • 签名是一个加密签名,表示该令牌没有被修改。

APIcast 检查 JWT 是否存在以下特征:

  • 完整性 :JWT 是否被恶意用户更改?签名是否有效?

    JWT 包含令牌的接收器可以验证的签名,以确保已知签发者为令牌签名。此验证还保证其内容保持在创建后。3scale 支持基于公钥/私钥对的 RSA 签名。颁发者使用私钥为 JWT 签名。APIcast 使用公钥验证令牌。APIcast 使用 OpenID Connect Discovery 获取可用于验证 JWT 签名的 JSON Web Keys (JWK)。

  • 时间 :当前的时间是否比令牌可接受处理的时间要长?JWT 是否已过期?换句话说,APIcast 会检查 JWT nbf (不要在时间之前)和过期(过期时间)声明。
  • 签发者 :对 APIcast 已知的 OpenID Connect 身份提供程序是否颁发的 JWT?换句话说,APIcast 会验证 JWT 中指定的签发者是否与 OpenID Connect Issuer 字段中配置的 API 提供程序的签发者相同。签发者的规格是集成 3scale 和 OpenID Connect 身份提供程序的过程的一部分。这是 JWT 声明
  • 客户端 ID :令牌是否包含已知 APIcast 的 3scale 客户端应用程序 ID?此客户端 ID 必须与将 3scale 与 OpenID Connect 身份提供程序集成过程中指定的 API 供应商匹配 ClientID Token Claim。这是 JWT 发布的 JWT 和 a ud (udience)申索的授权方。

如果任何 JWT 验证或授权检查失败,则 APIcast 会返回一个 身份验证失败 错误。否则,APIcast 将请求发送到 3scale 上游 API 后端。Authorization 标头保留在请求中,因此 API 后端也可以使用 JWT 检查用户和客户端身份。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat