资讯 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

使用BearerToken鉴权调用流程(未上线)

本文介绍了基于BearerToken鉴权,通过SDK如何调用推理服务V2版本API流程。

API 调用流程简介

基于BearerToken进行鉴权,调用API流程如下图所示。

  1. API授权。平台已默认开通API调用权限,无需申请。
  2. 获取安全认证的AK/SK。获取安全认证Access Key(即AK)、Secret Key(即SK)。
  3. 获取BearerToken值。
  4. 通过SDK调用推理服务V2版本 API接口。

API调用流程

步骤一. API授权

平台已默认开通API调用权限,无需申请。

步骤二. 获取安全认证AK/SK

(1)登录管理控制台,点击“用户账号->安全认证”进入Access Key管理界面。

(2)点击显示查看Access Key、Secret Key。关于AK/SK,更多介绍请参考获取AK/SK

image.png

步骤三. 获取BearerToken值

可以通过调用创建BearerToken接口获取值。在调用接口前,需先获取认证字符串,调用接口时将认证字符串添加到请求头Header的Authorization。

(1)获取认证字符串

根据步骤二获取的安全认证Access Key/Secret Key,进行计算签名,签名机制请参考签名计算机制

本文使用签名计算工具,说明如何获取认证字符串Authorization。

a. 点击签名计算工具,进入签名计算工具页面。

image.png

b. 填入签名需要的信息。

在签名计算工具中,填入对应内容,示例如下:

  • HTTP请求信息
签名内容 计算签名时是否必需 说明
HTTP方法 必填 · 针对此API,为固定值:GET
· 通过以下方法获取,在创建BearerToken接口文档页面查看,如下图所示:
image.png
路径 必填 · 针对此API,为固定值:/v1/BCE-BEARER/token
· 通过以下方法获取,在创建BearerToken接口页面查看,如下图所示:
image.png
参数 非必填 (1)值说明:
· 如果需设置有效期,示例如expireInSeconds=1800
· 如果无需设置有效期,忽略此参数。本文示例未设置有效期
(2)注意:签名是否设置有效期,和调用创建BearerToken接口是否使用expireInSeconds需一致,否则调用接口会报错。即此处签名设置有限期,在后续步骤(2)调用接口时需传参数expireInSeconds;签名未设置有效期,调用接口时也无需传参数
头域 必填 · 针对此API,为固定值:iam.bj.baidubce.com
· 通过以下方法获取,在创建BearerToken接口文档页面查看,如下图所示:
image.png
  • 签名信息
签名内容 计算签名时是否必需 说明
Access Key 必填 · 示例值:ALTAK-**uXH
·注意:请使用实际值,即步骤二获取的Access Key值
Secret Key 必填 · 示例值:c05e**9f8
·注意:请使用实际值,即步骤二获取的Secret Key值
时间戳 必填 · 示例值:2024-11-07T02:58:20Z,使用页面的默认值即可
签名有效期(秒) 必填 · 示例值:1800
待签名头域(秒) 非必填 注意:本文签名计算未使用x-bce-date,在签名工具中-签名信息,待签名头域里需去掉。
image.png

c. 点击一键计算。

image.png

d. 查看认证字符串结果

基于上述信息,计算出的认证字符串结果示例值为:

bce-auth-v1/ALTAK-******uXH/2024-11-07T02:58:20Z/1800/host/e24f2f7837a5e2cd1d4f4bfade81dc24c1bfe278855b05193e859304f694b702

image.png

(2)调用创建BearerToken接口获取Bearer token。

将签名计算获取的认证字符串,即(1)获取的认证字符串,添加到请求头Header的Authorization,并调用创建BearerToken接口获取Bearer token值。调用示例如下。

注意:调用API时,是否通过expireInSeconds设置有效期,请求url会不同,步骤二签名计算参数也不同,实际调用时需保持一致。

# 注意:本文步骤(1)计算签名时,示例未设置有效期,请求url无需加参数expireInSeconds,即请参考本示例调用。

# 如果不需设置有效期expireInSeconds,即请求url不需加参数expireInSeconds;在步骤(1)计算签名时,也无需设置参数expireInSeconds
# 将下列示例中的Authorization替换成真实值
curl --location 'https://iam.bj.baidubce.com/v1/BCE-BEARER/token' \
--header 'Authorization: bce-auth-v1/ALTAK-******uXH/2024-11-07T02:58:20Z/1800/host/e24f2f7837a5e2cd1d4f4bfade81dc24c1bfe278855b05193e859304f694b702' \
--header 'Content-Type: application/json' 
# 如果需设置有效期expireInSeconds,即请求url加expireInSeconds;在步骤(1)计算签名时,也需设置参数expireInSeconds
# 将下列示例中的Authorization替换成真实值
curl  --location 'https://iam.bj.baidubce.com/v1/BCE-BEARER/token?expireInSeconds=1800' \
--header 'Authorization: bce-auth-v1/ALTAK-******uXH/2024-11-07T02:58:20Z/1800/host/17a228f200b9057b4c9f29f24d5b110b83fc9de51818add96d713a66c91c2beb'  \
--header 'Content-Type: application/json' 

步骤四. 调用API

使用Bearer Token,调用推理服务V2版本API,示例如下:

from qianfan import Qianfan

client = Qianfan(
 
    # 方式一:使用安全认证AK/SK鉴权
    # 替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk,如何获取请查看https://cloud.baidu.com/doc/Reference/s/9jwvz2egb
    #access_key="your_iam_ak",
    #secret_key="your_iam_sk",
    #app_id="", # 选填,不填写则使用默认appid

    # 方式二:使用应用BearerToken鉴权
    # 替换下列示例中参数,将步骤三获取的Bearer Token值替换示例中api_key值
    api_key="Bearer bce-v3/ALTAK-*****************/2d7*****************" 
    app_id="", # 选填,不填写则使用默认appid
)

completion = client.chat.completions.create(
    model="ernie-3.5-8k", # 指定特定模型
    messages=[ 
        # 也可以不设置system字段
        {'role': 'system', 'content': '平台助手'},
        {'role': 'user', 'content': '你好'}
    ]
)

print(completion.choices[0])