12.3. 为 Red Hat Quay 机器人令牌交换 OAuth2 访问令牌


以下流程利用 上一步中生成的访问令牌 来创建新的 Red Hat Quay 机器人帐户令牌。新的 Red Hat Quay 机器人帐户令牌用于您的 OIDC 供应商和 Red Hat Quay 间的身份验证。

注意

以下示例使用 Python 脚本为 Red Hat Quay 机器人令牌交换 OAuth2 访问令牌。

先决条件

  • 已安装 python3 CLI 工具。

流程

  1. 将以下 Python 脚本保存到 .py 文件中,如 robot_fed_token_auth.py

    import requests
    import os
    
    TOKEN=os.environ.get('TOKEN')
    robot_user = "fed-test+robot1"
    
    def get_quay_robot_token(fed_token):
        URL = "https://<quay-server.example.com>/oauth2/federation/robot/token"
        response = requests.get(URL, auth=(robot_user,fed_token)) 1
        print(response)
        print(response.text)
    
    if __name__ == "__main__":
        get_quay_robot_token(TOKEN)
    1
    如果您的 Red Hat Quay 部署使用自定义 SSL/TLS 证书,则响应必须是 response = requests.get (URL,auth=(robot_user,fed_token),verify=False),其中包括 verify=False 标志。
  2. 将 OAuth2 访问令牌导出为 TOKEN。例如:

    $ export TOKEN = eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJTVmExVHZ6eDd2cHVmc1dkZmc1SHdua1ZDcVlOM01DN1N5T016R0QwVGhVIn0...
  3. 输入以下命令运行 robot_fed_token_auth.py 脚本:

    $ python3 robot_fed_token_auth.py

    输出示例

    <Response [200]>
    {"token": "291cmNlX2FjY2VzcyI6eyJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX19LCJzY29wZSI6InByb2ZpbGUgZW1haWwiLCJlbWFpbF92ZXJpZ..."}

    重要

    此令牌在一小时后过期。一小时后,必须生成新的令牌。

  4. 将机器人帐户访问令牌导出为 QUAY_TOKEN。例如:

    $ export QUAY_TOKEN=291cmNlX2FjY2VzcyI6eyJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX19LCJzY29wZSI6InByb2ZpbGUgZW1haWwiLCJlbWFpbF92ZXJpZ
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.