生成不记名令牌
在无法使用 ZenApiKey 授权令牌的极少数情况下,您可以使用您的凭据生成一个不记名令牌。 IBM watsonx 凭证生成不记名令牌。 您可以使用不记名标记来验证 IBM watsonx 应用程序接口和访问 IBM watsonx 端点。
关于此任务
令牌和 API 密钥将接受授权检查。 API 端点的调用取决于您在平台和服务中被授予的角色和权限。
重要提示: 某些 cURL 命令仅支持特定的身份验证方法。 启用 SAML SSO 后,必须使用 API 密钥进行身份验证。
如果要使用 API 密钥进行身份验证以生成不记名令牌,请先生成 API 密钥。 有关更多信息,请参阅生成用于身份验证的 API 密钥。
过程
- 若需使用用户名 Red Hat®
OpenShift® 和密码进行身份验证,但用户名 OpenShift 未包含前缀
IAM#,则需将roksUserPrefix参数更新为空值以移除该必填前缀。- 运行以下命令,直接从身份验证自定义资源
roksUserPrefix(CR)进行更新:oc patch Authentication.operator.ibm.com example-authentication \ --type=merge \ -p '{"spec":{"config":{"roksUserPrefix":""}}}'执行该命令后,平台容器应自动重启。
- 运行以下命令以检查是否
roksUserPrefix已打补丁:oc get Authentication.operator.ibm.com example-authentication \ -o jsonpath='{.spec.config.roksUserPrefix}'
有关的更多
roksUserPrefix信息,请参见 将身份验证委托给 OpenShift - 运行以下命令,直接从身份验证自定义资源
- 使用以下 cURL 命令之一调用 API。 选择使用要验证的凭证的命令。
- 使用用户名和密码进行验证:
curl -k -X POST \ "https://<instance_route>/icp4d-api/v1/authorize" \ -H "Content-Type: application/json" \ -d '{ "username": "<username>", "password": "<password>" }' - 使用密码进行身份验证,同时验证自签名证书:
curl -X POST \ "https://<instance_route>/icp4d-api/v1/authorize" \ --cacert /<path_to_root-ca>.crt -H "Content-Type: application/json" \ -d "{ "username": <username>, "password": <password> }"如果证书是由正规的根证书颁发机构(CA)签署的,那么就不需要
-k或--cacert参数,因为 curl 已经知道根 CA 的存在。 - 使用 API 密钥进行验证:
curl -k -X POST \ "https://<instance_route>/icp4d-api/v1/authorize" \ -H "Content-Type: application/json" \ -d '{ "username":"<username>", "api_key":"<api_key>" }'
将
<instance_route>替换为服务实例的详细信息。 将<username>、<password>和<api_key>替换为您的 IBM watsonx 证书。 如果使用自签名证书,则也要替换<path_to_root-ca>。 - 使用用户名和密码进行验证:
此命令返回包含不记名令牌的响应。
{
"_messageCode_": "200",
"message": "Success",
"accessToken": "<bearer-token>"
}有关端 /icp4d-api/v1/authorize 点的更多信息,请参阅平台 IBM® Software Hub API 中的获取授权令牌。
后续操作
在后续 API 调用的授权标头中使用您生成的承载令牌。
curl -H "Authorization: Bearer <token>" "https://<platform_instance_route>/<endpoint>"