11.3. OAuth2 アクセストークンを Red Hat Quay ロボットアカウントトークンと交換する
次の手順では、前の手順で生成された access token を利用して、新しい Red Hat Quay ロボットアカウントトークンを作成します。新しい Red Hat Quay ロボットアカウントトークンは、OIDC プロバイダーと Red Hat Quay 間の認証に使用されます。
次の例では、Python スクリプトを使用して、OAuth2 アクセストークンを Red Hat Quay ロボットアカウントトークンと交換します。
前提条件
-
python3CLI ツールがインストールされている。
手順
次の 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フラグが含まれます。
OAuth2 アクセストークンを
TOKENとしてエクスポートします。以下に例を示します。$ export TOKEN = eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJTVmExVHZ6eDd2cHVmc1dkZmc1SHdua1ZDcVlOM01DN1N5T016R0QwVGhVIn0...次のコマンドを入力して
robot_fed_token_auth.pyスクリプトを実行します。$ python3 robot_fed_token_auth.py出力例
<Response [200]> {"token": "string..."}重要このトークンは 1 時間が経過すると期限切れになります。1 時間後、新しいトークンを生成する必要があります。
ロボットアカウントアクセストークンを
QUAY_TOKENとしてエクスポートします。以下に例を示します。$ export QUAY_TOKEN=291cmNlX2FjY2VzcyI6eyJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX19LCJzY29wZSI6InByb2ZpbGUgZW1haWwiLCJlbWFpbF92ZXJpZ