生成授权令牌或 API 密钥
在 IBM Cloud Pak for Data 4.6 版本支持结束之前,升级到 IBM Software Hub 5.1 版本。 更多信息,请参阅 IBM Software Hub 版本 5.1 文档中的升级 IBM Software Hub。
生成授权令牌或 API 密钥以向 Cloud Pak for Data API 进行认证。
令牌和 API 密钥将接受授权检查。 API 端点的调用取决于在 Cloud Pak for Data 平台和服务中授予的角色和许可权。
您可以使用 API 密钥来生成不记名令牌,该令牌可用于授权访问 Cloud Pak for Data 端点。
或者,您可以使用 username 和 API 密钥作为具有 ZenApiKey 授权的 base64-encoded 令牌,而不是使用不记名令牌。 此替代方法需要对端点进行一次 API 调用。
ZenApiKey 授权。ZenApiKey 授权。
过程
正在获取 API 密钥 (首选)。
请参阅 生成用于认证的 API 密钥。 当 SAML 2.0 配置为 Web SSO 时,可以使用此方法。
ZenApiKey 令牌。echo "<username>:<api_key>" | base64然后,可以使用 ZenApiKey 向端点进行认证。curl -H "Authorization: ZenApiKey <token>" "https://<cpd_instance_route>/<endpoint>"ZenApiKey 授权。 必须使用 API 密钥通过 authorize 端点生成不记名令牌。- 端点
/icp4d-api/v1/authorize- 方法
POST- 命令语法
将
<cpd_instance_route>,<username>和<api_key>替换为适用于您的环境的正确值。curl -X POST \ 'https://<cpd_instance_route>/icp4d-api/v1/authorize'\ -H 'Content-Type: application/json' \ -d' { "username":<username>, "api_key":<api_key> }'此命令返回包含授权令牌的响应。
- 样本响应
{ "_messageCode_": "200", "message": "Success", "token": "<authorization-token>" }该授权令牌可在后续的 API 调用中使用。
- 更多信息
- 另请参阅 Cloud Pak for Data Platform API 中的获取授权令牌。
启用 LDAP 时获取授权令牌。
validateAuth 端点使用用户名和密码来生成令牌。- 端点
/v1/preauth/signin- 方法
POST- 命令语法
将
<cpd_instance_route>,<username>和<password>替换为适用于您的环境的正确值。curl -X POST \ 'https://<cpd_instance_route>/v1/preauth/signin'\ -H 'Content-Type: application/json' \ -d' { "username":<username>, "password":<password> }'此命令返回包含授权令牌的响应。
- 样本响应
{ "_messageCode_": "200", "message": "Success", "token": "<authorization-token>" }该授权令牌可在后续的 API 调用中使用。
- 更多信息
- 另请参阅 Cloud Pak for Data Platform API 中的获取授权令牌。
启用 IAM 时获取授权令牌。
/idprovider/v1/auth/identitytoken 端点的用户名和密码生成令牌。 执行以下步骤,将 <variables> 替换为适用于您的环境的正确值。- 使用以下 cURL 命令获取 IAM 访问令牌。
curl -k -X POST -H "Content-Type: application/x-www-form-urlencoded;charset=UTF-8" \ -d "grant_type=password&username=<username>&password=<password>&scope=openid" \ https://<common-services-route>/idprovider/v1/auth/identitytoken替换以下值。<username>是您的用户名。<password>是您的密码。<common-services-route>是访问 IBM Cloud Pak foundational services的路径。
此命令返回
access_token、refresh_token和id_token。 分配给access_token的值是您在下一步中获取平台 UI 访问令牌时所需的内容。 - 通过运行以下 cURL 命令获取平台 UI 访问令牌。
curl -k -X GET 'https://<cpd_instance_route>/v1/preauth/validateAuth' \ -H 'username: <username>' \ -H 'iam-token: <access-token>'替换以下值。<cpd_instance_route>是 Cloud Pak for Data Web 客户机的路径。 缺省情况下,此 URL 为https://cpd-<namespace>.apps.<OCP-default-domain>。<username>是您的用户名。<access-token>是从上一步中的响应获取的 IAM 访问令牌。
cURL 响应可能类似于以下样本。{ "_messageCode_": "200", "message": "Success", "token": "<encoded-token-string>" }在此示例中,
<encoded-token-string>是您的平台 UI 访问令牌。
下一步操作
curl -H "Authorization: ZenApiKey <token>" "https://<cpd_instance_route>/<endpoint>"ZenApiKey 令牌不受支持,请在后续 API 调用的授权头中使用生成的不记名令牌。curl -H "Authorization: Bearer <token>" "https://<cpd_instance_route>/<endpoint>"