检索访问令牌
通过向服务认证请求,开始使用 IBM® Key Protect API IBM Cloud® Identity and Access Management (IAM) 访问令牌。
使用 CLI 检索访问令牌
您可以使用 IBM Cloud CLI ,用于快速生成个人 Cloud IAM 访问令牌消费者代表用户访问受保护资源时使用的值,而不是使用用户的服务提供商凭据。。
-
使用以下命令登录到 IBM Cloud IBM Cloud CLI。
ibmcloud login
如果登录失败,请运行
ibmcloud login --sso
命令重试。 The 使用联合标识登录时,需要--sso
参数。 如果使用此选项,请转至 CLI 输出中列出的链接以生成一次性传递代码。 -
选择包含供应的 Key Protect 实例的帐户、区域和资源组。
-
运行以下命令来检索 Cloud IAM 访问令牌。
ibmcloud iam oauth-tokens
以下截断的示例显示检索到的 IAM 令牌。
IAM token: Bearer eyJraWQiOiIyM...
使用 API 检索访问令牌
您还可以通过首先创建 针对应用程序的 服务标识 API 密钥 ,然后交换 API 密钥以获取 IBM Cloud IAM 令牌。
-
使用以下命令登录到 IBM Cloud IBM Cloud CLI。
ibmcloud login
如果登录失败,请运行
ibmcloud login --sso
命令重试。 The 使用联合标识登录时,需要--sso
参数。 如果使用此选项,请转至 CLI 输出中列出的链接以生成一次性密码。 -
选择包含供应的 Key Protect 实例的帐户、区域和资源组。
-
创建 应用程序的 服务标识 。
ibmcloud iam service-id-create SERVICE_ID_NAME [-d, --description DESCRIPTION]
-
针对服务标识 管理对资源的访问权 。
您可以为服务标识分配访问许可权 (通过使用 IBM Cloud 控制台)。 要了解 Manager, _Writer_和 Reader 访问角色如何映射到特定的 Key Protect 服务操作, 见 角色和许可权。
-
创建 服务标识 API 密钥。
ibmcloud iam service-api-key-create API_KEY_NAME SERVICE_ID_NAME [-d, --description DESCRIPTION] [--file FILE_NAME]
将
<service_ID_name>
替换为您在上一步中分配给服务标识的唯一别名。 通过将 API 密钥下载到安全位置来保存该密钥。 -
呼叫 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
值以编程方式管理服务的密钥。 Key Protect API。 查看示例 Key Protect API 请求,请检出 构成 API 请求。访问令牌有效期为 1 小时,但是可根据需要重新生成。 要维护对服务的访问权,请定期重新生成 API 密钥的访问令牌,方法是调用 IAM 身份服务 API。
-
使用 IBM Cloud Identity and Access Management (IAM) 令牌,用于向 IBM Watson 服务发出已认证的请求,而无需在每个调用中嵌入服务凭证。
-
IAM 认证使用访问令牌进行认证,您可以通过使用 API 密钥发送请求来获取访问令牌。
-
示例-使用 CLI 设置访问令牌
此示例显示如何使用命令行界面 (CLI) 检索访问令牌并设置环境变量。
# login and select account, region, and resource group
$ ibmcloud login --sso
# optionally set the region (-r) and resource group (-g) that
# contains your provisioned Key Protect instance
$ ibmcloud target -r us-south -g Default
# set the ACCESS_TOKEN environment variable (with Bearer)
$ export ACCESS_TOKEN=`ibmcloud iam oauth-tokens | grep IAM | cut -d \: -f 2 | sed 's/^ *//'`
# show the access token
$ echo $ACCESS_TOKEN
Bearer eyJraWQiOiIyMDIwMDcyNDE4MzEiLCJh ...<redacted>... o4qlcKjl9sVqLa8Q
# set the ACCESS_TOKEN environment variable (without Bearer)
$ export ACCESS_TOKEN=`ibmcloud iam oauth-tokens | grep IAM | cut -d ' ' -f 5 | sed 's/^ *//'`
$ echo $ACCESS_TOKEN
eyJraWQiOiIyMDIwMDcyNDE4MzEiLCJh ...<redacted>... o4qlcKjl9sVqLa8Q