生成授权令牌
生成授权令牌以向 Cloud Pak for Data 进行认证并使用其 API。
令牌受授权检查的约束。 API 端点的调用取决于在 Cloud Pak for Data 平台和服务中授予的角色和许可权。
准备工作
确保您在 Cloud Pak for Data中具有 创建服务实例 许可权。
过程
使用下列三个方法之一来生成授权令牌:
- 使用 API 密钥获取访问令牌 (首选)
请参阅 生成用于认证的 API 密钥。 首选此方法,因为您不必在脚本和应用程序中存储密码。 SAML 2.0 配置为 Web SSO 时,也可以使用此方法。
- 启用 LDAP 时获取访问令牌
如果未启用身份和访问管理 (IAM),那么可对
/icp4d-api/v1/authorize端点使用用户名和密码来生成令牌。- 端点
/icp4d-api/v1/authorize- 方法
POST- 命令语法
将
<hostname>,<username>和<password>替换为适用于您的环境的正确值。curl -X POST \ 'https://<hostname>/icp4d-api/v1/authorize'\ -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 时获取访问令牌
如果启用了 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 ® 基础服务的路径。
此命令返回
access_token、refresh_token和id_token。 分配给access_token的值是您在下一步中获取平台 UI 访问令牌时所需的内容。 - 通过运行以下 cURL 命令来获取您的平台 UI 访问令牌:
curl -k X GET 'https://<cpd-route>/v1/preauth/validateAuth' \ -H 'username: <username>' \ -H 'iam-token: <iam-token>'其中:<cpd-route>是 Cloud Pak for Data Web 客户机的路径。 缺省情况下,此 URL 为https://cpd-<namespace>.apps.<OCP-default-domain>。<username>是您的用户名。<iam-token>是您在上一步中从响应获取的 IAM 访问令牌。
cURL 响应可能类似以下样本:{ "_messageCode_": "200", "message": "Success", "token": "<encoded-token-string>" }在此示例中,
<encoded-token-string>是您的平台 UI 访问令牌。
- 使用以下 cURL 命令获取 IAM 访问令牌:
下一步操作
在后续 API 调用的授权头中使用所生成的授权令牌。