使用BearerToken鉴权调用流程(未上线)
本文介绍了基于BearerToken鉴权,通过SDK如何调用推理服务V2版本API流程。
API 调用流程简介
基于BearerToken进行鉴权,调用API流程如下图所示。
- API授权。平台已默认开通API调用权限,无需申请。
- 获取安全认证的AK/SK。获取安全认证Access Key(即AK)、Secret Key(即SK)。
- 获取BearerToken值。
- 通过SDK调用推理服务V2版本 API接口。
API调用流程
步骤一. API授权
平台已默认开通API调用权限,无需申请。
步骤二. 获取安全认证AK/SK
(1)登录管理控制台,点击“用户账号->安全认证”进入Access Key管理界面。
(2)点击显示查看Access Key、Secret Key。关于AK/SK,更多介绍请参考获取AK/SK。
步骤三. 获取BearerToken值
可以通过调用创建BearerToken接口获取值。在调用接口前,需先获取认证字符串,调用接口时将认证字符串添加到请求头Header的Authorization。
(1)获取认证字符串
根据步骤二获取的安全认证Access Key/Secret Key,进行计算签名,签名机制请参考签名计算机制。
本文使用签名计算工具,说明如何获取认证字符串Authorization。
a. 点击签名计算工具,进入签名计算工具页面。
b. 填入签名需要的信息。
在签名计算工具中,填入对应内容,示例如下:
- HTTP请求信息
签名内容 | 计算签名时是否必需 | 说明 |
---|---|---|
HTTP方法 | 必填 | · 针对此API,为固定值:GET · 通过以下方法获取,在创建BearerToken接口文档页面查看,如下图所示: ![]() |
路径 | 必填 | · 针对此API,为固定值:/v1/BCE-BEARER/token · 通过以下方法获取,在创建BearerToken接口页面查看,如下图所示: ![]() |
参数 | 非必填 | (1)值说明: · 如果需设置有效期,示例如expireInSeconds=1800 · 如果无需设置有效期,忽略此参数。本文示例未设置有效期 (2)注意:签名是否设置有效期,和调用创建BearerToken接口是否使用expireInSeconds需一致,否则调用接口会报错。即此处签名设置有限期,在后续步骤(2)调用接口时需传参数expireInSeconds;签名未设置有效期,调用接口时也无需传参数 |
头域 | 必填 | · 针对此API,为固定值:iam.bj.baidubce.com · 通过以下方法获取,在创建BearerToken接口文档页面查看,如下图所示: ![]() |
- 签名信息
签名内容 | 计算签名时是否必需 | 说明 |
---|---|---|
Access Key | 必填 | · 示例值:ALTAK-**uXH ·注意:请使用实际值,即步骤二获取的Access Key值 |
Secret Key | 必填 | · 示例值:c05e**9f8 ·注意:请使用实际值,即步骤二获取的Secret Key值 |
时间戳 | 必填 | · 示例值:2024-11-07T02:58:20Z,使用页面的默认值即可 |
签名有效期(秒) | 必填 | · 示例值:1800 |
待签名头域(秒) | 非必填 | 注意:本文签名计算未使用x-bce-date,在签名工具中-签名信息,待签名头域里需去掉。 ![]() |
c. 点击一键计算。
d. 查看认证字符串结果
基于上述信息,计算出的认证字符串结果示例值为:
bce-auth-v1/ALTAK-******uXH/2024-11-07T02:58:20Z/1800/host/e24f2f7837a5e2cd1d4f4bfade81dc24c1bfe278855b05193e859304f694b702
(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])