You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 8后台作业通过JWT授权调用第三方Web API的方案设计咨询

服务间后台作业的JWT授权方案

一、标准推荐:客户端凭证流

  • 在Keycloak中为服务2创建独立的OpenID客户端,开启客户端凭证流,并配置服务3所需的权限(如专属角色或scope)。
  • 服务2的后台作业启动时,通过该客户端的client_id和client_secret向Keycloak请求访问令牌,拿到令牌后在请求头中携带Authorization: Bearer <token>调用服务3的API。
  • 服务3验证令牌的签发机构、受众以及权限匹配后,允许访问。
  • 优点:完全贴合OAuth2标准,权限管控清晰,服务间解耦,所有凭证和权限由Keycloak统一管理,便于维护和审计。

二、需关联用户上下文的场景

如果后台作业是由特定用户触发,且服务3需要验证该用户的权限,可选择以下两种方式:

  1. 存储并刷新用户令牌:服务2在接收用户触发作业的请求时,加密存储用户的refresh token(需确保令牌支持刷新)。后台作业执行时,用refresh token向Keycloak换取新的access token,再调用服务3。注意要做好令牌的加密存储和过期处理。
  2. 代理令牌流(On-Behalf-Of):若Keycloak支持OBO流,服务2可使用用户的access token向Keycloak申请一个代表该用户访问服务3的令牌。这种方式无需存储refresh token,但需在Keycloak中配置服务2具备申请代理令牌的权限。

三、简化方案(仅适用于低风险内部系统)

如果是信任度极高的内部小系统,可考虑使用共享API密钥:服务2和服务3约定密钥,服务2调用时在请求头携带密钥,服务3直接验证密钥有效性。但该方式缺乏细粒度权限管控,不符合安全规范,不推荐用于生产环境。

内容的提问来源于stack exchange,提问作者Sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 12:52:10