检索访问令牌

通过使用 IBM Cloud® Identity and Access Management (IAM) 访问令牌认证对服务的请求,开始使用 Hyper Protect Crypto Services 密钥管理服务 API。

访问令牌是在 1 小时后到期的临时凭证。 在获取的令牌到期后,必须生成新令牌以继续调用 IBM Cloud 或服务 API。 要维护对服务的访问权,请定期重新生成 API 密钥的访问令牌。

使用 CLI 检索访问令牌

可以使用 IBM Cloud CLI 快速生成个人 Cloud IAM 访问令牌。

  1. 使用 IBM Cloud CLI 登录到 IBM Cloud。

    ibmcloud login
    

    如果登录失败,请运行 ibmcloud login --sso 命令重试。 使用联合标识登录时需要 --sso 参数。 如果使用此选项,请转至 CLI 输出中列出的链接以生成一次性密码。

  2. 选择要在其中创建 Hyper Protect Crypto Services 服务实例的区域和资源组。 可以使用以下命令来设置目标区域和资源组。

    ibmcloud target -r <region_name> -g <resource_group_name>
    
  3. 运行以下命令来检索 Cloud IAM 访问令牌。

    ibmcloud iam oauth-tokens
    

    以下截断的示例显示检索到的 IAM 令牌。

    IAM token:  Bearer eyJraWQiOiIyM...
    

使用 API 检索访问令牌

您还可以使用 API 密钥 以编程方式检索访问令牌,然后针对 IBM Cloud IAM 令牌交换 API 密钥。 根据是为用户还是为应用程序创建访问令牌,相应地使用 IBM Cloud 用户 API 密钥服务标识 API 密钥

  1. 使用 IBM Cloud CLI 登录到 IBM Cloud。

    ibmcloud login
    

    如果登录失败,请运行 ibmcloud login --sso 命令重试。 使用联合标识登录时需要 --sso 参数。 如果使用此选项,请转至 CLI 输出中列出的链接以生成一次性密码。

  2. 使用以下命令选择包含已供应的 Hyper Protect Crypto Services 实例的区域和资源组:

    ibmcloud target -r <region_name> -g <resource_group_name>
    
  3. 创建 API 密钥。

    • 如果要检索用户的访问令牌,请使用以下命令创建用户 API 密钥:

      ibmcloud iam api-key-create <API_key_name>
          [-d, --description <description>]
          [--file <API_key_file_name>]
      

      使用 <API_key_name> 参数将 API 密钥指定为唯一名称。 确保保存 API 密钥以供以后使用,方法是使用 <API_key_file_name> 参数或从命令响应复制 API 密钥值。

    • 如果要检索应用程序的访问令牌,请通过完成以下步骤来创建服务标识 API 密钥:

      1. 使用以下命令为应用程序创建 服务标识:

        ibmcloud iam service-id-create <service_ID_name>
            [-d, --description <description>]
        

        使用 <service_ID_name> 参数将服务标识指定为唯一名称。

      2. 使用以下命令创建服务标识 API 密钥:

        ibmcloud iam service-api-key-create <API_key_name> <service_ID_name>
            [-d, --description <description>]
            [--file <API_key_file_name>]
        

        使用 <API_key_name> 参数指定唯一名称的 API 密钥,并将 <service_ID_name> 替换为您在上一步中分配给服务标识的唯一别名。 确保保存 API 密钥以供以后使用,方法是使用 <API_key_file_name> 参数或从命令响应复制 API 密钥值。

  4. 根据访问策略,为用户或服务标识分配对 Hyper Protect Crypto Services 实例的相应访问权

    要了解 IAM 访问角色如何映射到特定的 Hyper Protect Crypto Services 服务操作,请参阅 角色和许可权

  5. 调用 IAM 身份服务 API 来检索访问令牌。

    curl -X POST \
      "https://iam.cloud.ibm.com/identity/token" \
      -H "Content-Type: application/x-www-form-urlencoded" \
      -H "Accept: application/json" \
      -d "grant_type=urn:ibm:params:oauth:grant-type:apikey&apikey=<API_key>" > token.json
    

    在请求中,将 <API_key> 替换为您在上一步中创建的用户 API 密钥或服务标识 API 密钥。 以下截断的示例显示 token.json 文件的内容:

    {
    "access_token": "eyJraWQiOiIyM...",
    "expiration": 1512161390,
    "expires_in": 3600,
    "refresh_token": "...",
    "token_type": "Bearer"
    }
    

    使用以 Bearer 令牌类型为前缀的完整 access_token 值,通过 Hyper Protect Crypto Services 密钥管理服务 API 以编程方式管理服务的密钥。 要查看示例 Hyper Protect Crypto Services 密钥管理服务 API 请求,请查看 生成密钥管理服务 API 请求