4.2. 使用 REST API 进行身份验证


API 调用需要通过 API 令牌进行身份验证。假设您使用 API_TOKEN 作为变量名称,请将 -H "Authorization: Bearer ${API_TOKEN}" 添加到 API 调用中以与 REST API 进行身份验证。

注意

API 令牌在 15 分钟后过期。

前提条件

  • (可选)已安装了 OpenShift Cluster Manager (ocm) CLI 工具。

流程

  1. 使用 OFFLINE_TOKEN 设置 API_TOKEN 变量以验证用户。

    1. (可选)在命令行终端上执行以下命令:

      $ export API_TOKEN=$( \
        curl \
        --silent \
        --header "Accept: application/json" \
        --header "Content-Type: application/x-www-form-urlencoded" \
        --data-urlencode "grant_type=refresh_token" \
        --data-urlencode "client_id=cloud-services" \
        --data-urlencode "refresh_token=${OFFLINE_TOKEN}" \
        "https://sso.redhat.com/auth/realms/redhat-external/protocol/openid-connect/token" \
        | jq --raw-output ".access_token" \
      )
      Copy to Clipboard Toggle word wrap
    2. (可选)在命令行终端上登录到 ocm 客户端:

      $ ocm login --token="${OFFLINE_TOKEN}"
      Copy to Clipboard Toggle word wrap

      然后,生成 API 令牌:

      $ export API_TOKEN=$(ocm token)
      Copy to Clipboard Toggle word wrap
  1. 在您的路径中为令牌生成方法创建一个脚本。例如:

    $ vim ~/.local/bin/refresh-token
    Copy to Clipboard Toggle word wrap
    export API_TOKEN=$( \
      curl \
      --silent \
      --header "Accept: application/json" \
      --header "Content-Type: application/x-www-form-urlencoded" \
      --data-urlencode "grant_type=refresh_token" \
      --data-urlencode "client_id=cloud-services" \
      --data-urlencode "refresh_token=${OFFLINE_TOKEN}" \
      "https://sso.redhat.com/auth/realms/redhat-external/protocol/openid-connect/token" \
      | jq --raw-output ".access_token" \
    )
    Copy to Clipboard Toggle word wrap

    然后保存文件。

  2. 更改文件模式使其可执行:

    $ chmod +x ~/.local/bin/refresh-token
    Copy to Clipboard Toggle word wrap
  3. 刷新 API 令牌:

    $ source refresh-token
    Copy to Clipboard Toggle word wrap
  4. 运行以下命令验证您可以访问 API:

    $ curl -s https://api.openshift.com/api/assisted-install/v2/component-versions -H "Authorization: Bearer ${API_TOKEN}" | jq
    Copy to Clipboard Toggle word wrap

    输出示例

    {
      "release_tag": "v2.11.3",
      "versions": {
        "assisted-installer": "registry.redhat.io/rhai-tech-preview/assisted-installer-rhel8:v1.0.0-211",
        "assisted-installer-controller": "registry.redhat.io/rhai-tech-preview/assisted-installer-reporter-rhel8:v1.0.0-266",
        "assisted-installer-service": "quay.io/app-sre/assisted-service:78d113a",
        "discovery-agent": "registry.redhat.io/rhai-tech-preview/assisted-installer-agent-rhel8:v1.0.0-195"
      }
    }
    Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat