IBM Cloud Docs
检索 IAM 访问令牌

检索 IAM 访问令牌

要使用 IBM Cloud Metrics Routing API,必须使用 IBM Cloud® Identity and Access Management (IAM) 访问令牌。 每个令牌仅在 1 小时内有效,在令牌到期后,如果要继续使用 API,那么必须请求新的令牌。

使用 IBM Cloud CLI 检索当前会话的访问令牌

您可以使用 IBM Cloud CLI 来生成 IAM 访问令牌。

完成以下步骤以生成当前会话的访问令牌:

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

    ibmcloud login
    

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

  2. 运行以下命令来检索 Cloud IAM 访问令牌。

    ibmcloud iam oauth-tokens | grep IAM | cut -d \: -f 2 | sed 's/^ *//'
    

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

    IAM token:  Bearer eyJraWQiOiIyM...
    

使用 API 密钥和 IBM Cloud CLI 检索访问令牌

您还可以通过为应用程序创建 服务标识 API 密钥,然后为 IBM Cloud IAM 令牌交换 API 密钥,以编程方式检索访问令牌。

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

    ibmcloud login -a cloud.ibm.com [--apikey KEY | @KEY_FILE]
    

    其中,KEY | @KEY_FILE 是要用于获取访问令牌的 API 密钥。

  2. 运行以下命令以获取 IAM 访问令牌。

    ibmcloud iam oauth-tokens | grep IAM | cut -d \: -f 2 | sed 's/^ *//'
    

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

    IAM token:  Bearer eyJraWQiOiIyM...
    

在 cURL 请求中使用 API 密钥检索访问令牌

运行以下 cURL 命令以调用 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%3Aibm%3Aparams%3Aoauth%3Agrant-type%3Aapikey&apikey=<API_KEY>' > token.json

<API_KEY> 替换为 API 密钥。

以下截断的示例显示 token.json 文件的内容:

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

使用以 Bearer 令牌类型为前缀的完整 access_token 值。