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

Okta服务间调用:后端如何通过API获取Bearer Token?

Okta后端服务间调用获取Access Token方案

针对纯服务间无用户交互的认证场景,你需要使用OAuth 2.0的Client Credentials Flow,这是Okta官方支持的后端服务直接获取Access Token的标准方案,完全不需要前端弹窗或回调交互。

具体实现步骤

  1. 在Okta控制台配置服务应用

    • 新建一个「服务类型」的应用(区别于单页/网页应用)
    • 记录该应用的Client ID和Client Secret
    • 为该应用分配目标服务对应的API权限(比如目标服务的products.read等权限)
  2. 调用Okta Token端点直接获取Access Token

    • 请求方式:POST
    • 请求地址:https://你的Okta域名/oauth2/v1/token
    • 请求头:Content-Type: application/x-www-form-urlencoded
    • 请求体参数:
      • grant_type=client_credentials(固定值,指定认证流程)
      • client_id=你的服务应用Client ID
      • client_secret=你的服务应用Client Secret
      • scope=目标API的权限范围(格式如api://<目标应用ID>/products.read)

    示例curl命令:

    curl --request POST \
      --url https://your-okta-domain.com/oauth2/v1/token \
      --header 'Content-Type: application/x-www-form-urlencoded' \
      --data grant_type=client_credentials \
      --data client_id=your-service-client-id \
      --data client_secret=your-service-client-secret \
      --data scope=api%3A%2F%2Ftarget-app-id%2Fproducts.read
    
  3. 使用Access Token进行服务间调用
    将返回结果中的access_token放在请求头里,格式为:
    Authorization: Bearer <获取到的access_token>

注意事项

  • 务必安全存储Client Secret,用环境变量或密钥管理工具托管,禁止硬编码
  • 权限范围需与目标服务的API配置匹配,目标服务要验证Token的权限合法性
  • Access Token有过期时间(返回结果中的expires_in字段,单位秒),需实现缓存和自动刷新逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 04:35:43