IBM Cloud Docs
调用 V10 Reserved 提供的 API

调用 V10 Reserved 提供的 API

API Connect V10 Reserved 提供的 REST API 需要认证后才能使用。 要以交互方式调用 API,您可以登录到工具箱 CLI 并选择生成 API 密钥。 要以编程方式调用 API,您可以生成 API 密钥,然后用它来交换 IBM Cloud IAM 不记名令牌。

此要求仅适用于 API Connect 提供的 API。 调用导入或创建的 API 时不需要 API 密钥。 API 密钥用于 IBM ID,可能无法与其他用户注册一起使用。

在 V10 Reserved 中以交互方式调用 API Connect API

要在 V10 Reserved CLI 中以交互方式调用 API,请使用以下命令登录到 API Connect 工具箱:

apic login --server {mgmt_endpoint_url} --sso

按照显示的指示信息来生成 IBM Cloud API 密钥,从 IBM API Connect Reserved 密码页面复制此密钥,并在命令行中提交该 API 密钥以完成登录。 认证在 CLI 会话持续时间内一直有效。 在会话期间无需为 API 调用提供该 API 密钥。

有关登录工具包的更多信息,请参阅扩展 V10 Reserved 文档中的 为 V10 Reserved 设置工具包

在 V10 Reserved 中以编程方式调用 API Connect API

要以编程方式调用 API,请生成 API 密钥,然后用它来生成 IBM Cloud IAM 访问令牌。 在 API 调用中可以使用生成的令牌来进行认证。

获取 IBM Cloud API 密钥

要获取 IBM Cloud API 密钥,请完成以下步骤。

  1. 访问 IBM Cloud API 密钥

  2. 单击创建 IBM Cloud API 密钥

  3. Create API key 对话框中,提供密钥的名称和描述,然后单击 Create

  4. 重要API 密钥成功创建消息框中,单击 下载,将密钥的副本保存为名为 apikey.json 的文件。

该 API 密钥未到期,但是在关闭消息框后,无法访问该密钥。 如果丢失了密钥或未能复制密钥,您必须获取新的 API 密钥。

API 密钥最佳实践

API 密钥用作向服务进行认证的方法,因此必须使这些密钥保持安全。 以下最佳实践可帮助您确保 API 密钥的安全,并减少公共公开凭证而影响应用程序安全性的可能性。

  • 将 API 密钥与适合您要使用的功能的角色配合使用。 创建应用程序时,对于所有 GET API 方法调用,请考虑将 API 密钥与“读取者”角色配合使用。 “读取者”角色无法对服务实例执行任何会产生破坏或添加内容的功能。

  • 不要直接在代码中嵌入 API 密钥。 嵌入代码中的 API 密钥可能会公开给用户。 不要将 API 密钥嵌入应用程序代码中,而是考虑将 API 密钥存储在环境变量中或源代码控制系统外部的文件中。

  • 不要将 API 密钥存储在应用程序的源代码控制系统内部的文件中。 如果将 API 密钥存储在文件中,请将这些文件保存在应用程序的源代码外部。 如果使用的是公共源代码管理系统(如 GitHub),请务必遵循此实践。

  • 定期重新生成 API 密钥。 您可以随时创建新凭证。

    1. 从资源列表中,选择服务实例。
    2. 在导航列表中,单击服务凭证

    将应用程序迁移到新凭证后,请记得删除旧凭证。

用 API 密钥来交换 IBM Cloud IAM 访问令牌

要用 API 密钥来交换 IAM 访问令牌,请使用以下命令:

curl -X POST \
   "https://iam.cloud.ibm.com/identity/token" \
   --header 'Content-Type: application/x-www-form-urlencoded' \
   --header 'Accept: application/json' \
   --data-urlencode 'grant_type=urn:ibm:params:oauth:grant-type:apikey' \
   --data-urlencode 'apikey={api_key}'

其中 {api_key} 是您的 API 密钥的值。 响应类似于以下示例:

{"access_token":"[_access-token-value_]","refresh_token":"not_supported","token_type":"Bearer","expires_in":3600,"expiration":1615370557,"scope":"ibm openid"}

现在您可以在 API 调用中使用 IAM 访问令牌,例如:

curl https://{api_host}/api/orgs \
   -H "Accept: application/json" \
   -H "Content-Type: application/json" \
   -H "Authorization: Bearer _access-token-value_"

{
  "total_results": 2,
  "results": [
    {
      "type": "org",
      "org_type": "provider",
    ...
    }
  ]
}