检索访问令牌

开始使用IBM® Key Protect API 时,请使用一个 IBM Cloud® Identity and Access Management (IAM) 访问令牌。

使用 CLI 检索访问令牌

您可以使用 IBM Cloud CLI 快速生成个人云 IAM 访问令牌消费者用于代表用户访问受保护资源的凭据,而非使用用户的服务提供商凭据。

  1. 登录 IBM Cloud,使用 IBM Cloud CLI.

    ibmcloud login
    

    如果登录失败,请运行 ibmcloud login --sso 命令重试。 该 --sso 参数在使用联合 ID 登录时是必需的。 如果使用了该选项,请访问 CLI 输出中列出的链接以生成一次性通过代码

  2. 选择包含供应的 Key Protect 实例的帐户、区域和资源组。

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

    ibmcloud iam oauth-tokens
    

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

    IAM token: Bearer eyJraWQiOiIyM...
    

使用 API 检索访问令牌

您也可以通过编程检索访问令牌,方法是先为应用程序创建一个 服务 ID API 密钥,然后将您的 API 密钥交换为一个 IBM Cloud IAM 标记。

  1. 登录 IBM Cloud,使用 IBM Cloud CLI.

    ibmcloud login
    

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

  2. 选择包含供应的 Key Protect 实例的帐户、区域和资源组。

  3. 为您的应用程序创建一个 为您的应用程序创建 服务 ID

    ibmcloud iam service-id-create SERVICE_ID_NAME
                [-d, --description DESCRIPTION]
    
  4. 管理资源访问 的服务 ID。

    您可以 使用IBM Cloud 控制台为服务 ID 分配访问权限 要了解_经理_、 作家 和_读者_ 访问角色如何映射到特定的Key Protect 服务操作,请参阅 角色和权限

  5. 创建一个 服务 ID API 密钥

    ibmcloud iam service-api-key-create API_KEY_NAME SERVICE_ID_NAME
                [-d, --description DESCRIPTION]
                [--file FILE_NAME]
    

    <service_ID_name> 替换为您在上一步中为服务 ID 分配的唯一别名 通过将 API 密钥下载到安全位置来保存该密钥。

  6. 调用 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"
    }
    

    使用以_承载器_令牌类型为前缀的 access_token 完整值,可通过使用 Key Protect 应用程序接口。 查看示例 Key Protect API 请求,请查看 形成 API 请求

    访问令牌有效期为 1 小时,但是可根据需要重新生成。 要保持对服务的访问权限,请通过调用 IAM 身份服务 API 定期为您的 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