检索 IAM 访问令牌
要使用 IBM Cloud Metrics Routing API,必须使用 IBM Cloud® Identity and Access Management (IAM) 访问令牌。 每个令牌仅在 1 小时内有效,在令牌到期后,如果要继续使用 API,那么必须请求新的令牌。
使用 IBM Cloud CLI 检索当前会话的访问令牌
您可以使用 IBM Cloud CLI 来生成 IAM 访问令牌。
完成以下步骤以生成当前会话的访问令牌:
-
使用 IBM Cloud CLI 登录到 IBM Cloud。
ibmcloud login
如果登录失败,请运行
ibmcloud login --sso
命令重试。 使用联合标识登录时需要--sso
参数。 如果使用此选项,请转至 CLI 输出中列出的链接以生成一次性密码。 -
运行以下命令来检索 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 密钥,以编程方式检索访问令牌。
-
使用 IBM Cloud CLI 登录到 IBM Cloud。
ibmcloud login -a cloud.ibm.com [--apikey KEY | @KEY_FILE]
其中,
KEY | @KEY_FILE
是要用于获取访问令牌的 API 密钥。 -
运行以下命令以获取 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
值。