第2章 OAuth 2 アクセストークン
OAuth 2 アクセストークン (Red Hat Quay では "API トークン" と見なされます) を使用すると、ユーザーアイデンティティー検証を必要とするアプリケーションに適した、Red Hat Quay API へのユーザー認証アクセスが可能になります。これらのトークンは、OAuth 2 認可プロセスを通じて取得されます。このプロセスでは、Red Hat Quay 管理者が自分自身または別のユーザーに代わってトークンを生成し、Red Hat Quay API エンドポイントにアクセスします。OAuth 2 トークンは、トークンに定義されたスコープに基づいて、API エンドポイントでのアクションを承認します。
OAuth 2 トークンはトークンに定義されたスコープに基づいて API エンドポイントでのアクションを承認しますが、リソース自体へのアクセスは Red Hat Quay のロールベースアクセス制御 (RBAC) メカニズムによって管理されます。対象の名前空間に対して適切なロール (Admin または Creator) がある場合は、リポジトリーなどのリソースに対してアクションを作成できます。これは、API トークンに repo:admin
スコープが付与されている場合でも当てはまります。
OAuth 2 アクセストークンは、Red Hat Quay UI を使用してのみ作成できます。CLI を使用して OAuth 2 アクセストークンを作成する方法はありません。OAuth 2 トークンを作成するときに、トークン所有者に対して次のオプションを選択できます。
- Administer Organization。選択すると、ユーザーはロボットの作成、チームの作成、チームメンバーシップの調整、課金設定の変更など、組織を管理できるようになります。
- Administer Repositories。選択すると、権限を付与したユーザーがアクセスできるすべてのリポジトリーへのユーザー管理者アクセスが提供されます。
- Create Repositories。選択すると、権限を付与したユーザーがリポジトリーの作成を許可されている任意の名前空間にリポジトリーを作成できるようになります。
- View all visible repositories。選択すると、権限を付与したユーザーに表示されるすべてのリポジトリーを表示しする権限およびプルする権限がユーザーに付与されます。
- Read/Write to any accessible repositories。選択すると、権限を付与したユーザーが書き込みアクセス権を持つすべてのリポジトリーを表示、プッシュ、プルする機能がユーザーに割り当てられます。
- Super User Access。選択すると、ユーザーの管理、組織の管理、スーパーユーザーパネルにあるその他の機能など、インストールを管理する権限がユーザーに付与されます。
- Administer User。選択すると、ロボットの作成やリポジトリーへの権限の付与など、アカウントを管理する権限がユーザーに付与されます。
- Read User Information。選択すると、ユーザー名やメールアドレスなどのユーザー情報を読み取る機能がユーザーに付与されます。
トークンディストリビューターは、ユーザーに代わってトークンを生成するときに付与する権限に注意する必要があります。ユーザーを完全に信頼できることを確認してから、Administer organization、Super User Access、および Administer User などの権限を付与する必要があります。また、アクセストークンは作成時にのみ公開され、CLI から一覧表示できず、Red Hat Quay UI で表示することもできません。アクセストークンを紛失したり忘れたりした場合は、新しいトークンを作成する必要があります。トークンを復元することはできません。
OAuth 2 アクセストークンは、API 呼び出しの Authorization
ヘッダーで Bearer
トークンとして渡され、イメージタグ、リポジトリー、組織などの定義された API エンドポイントに認証と認可を提供するために使用されます。
API は、Red Hat Quay ホストの /api/v1
エンドポイントから使用できます。たとえば、https://<quay-server.example.com>/api/v1
です。Swagger UI を有効にすると、ユーザーがブラウザー経由でエンドポイントに接続し、Red Hat Quay の設定を GET
、POST
、DELETE
、PUT
できるようになります。API は、API 呼び出しを実行して OAuth トークンを使用するアプリケーションからアクセスでき、JSON としてデータを送受信します。
Red Hat Quay では現在、OAuth 2 アクセストークンに有効期限をローテーションまたは設定する方法はなく、トークンの有効期間は 10 年です。トークンが不正使用された場合、トークンが作成されたアプリケーションを削除して、トークンを削除できますが、この操作により、その特定のアプリケーション内で作成されたすべてのトークンが削除されます。
実際には、Red Hat Quay 管理者は、ユーザー用に新しい OAuth トークンを作成するたびに、組織の Applications ページで新しい OAuth アプリケーションを作成 できます。これにより、単一のアプリケーションがすべての OAuth トークンを管理する必要がなくなります。その結果、ユーザーのトークンが不正使用された場合、管理者は不正使用されたトークンのアプリケーションを削除します。これにより、同じアプリケーションの中に含まれる可能性のあるトークンを使用する他のユーザーの混乱を回避するのに役立ちます。
次のセクションでは、OAuth 2 アクセストークンを生成して再割り当てする方法を説明します。
2.1. OAuth 2 アクセストークンの作成
Red Hat Quay では、組織の API エンドポイントにアクセスする前に、OAuth 2 アクセストークンを作成する必要があります。OAuth 2 アクセストークンは、Red Hat Quay UI を使用してのみ生成できます。CLI を使用して OAuth 2 アクセストークンを生成することはできません。
OAuth2 アクセストークンを作成するには、次の手順を実行します。
前提条件
- Red Hat Quay に管理者としてログインしている。
- OAuth 2 アプリケーションを作成した。
手順
- メインページで、Organization を選択します。
- ナビゲーションペインで、Applications を選択します。
- アプリケーションの名前 (例: Test application) をクリックします。
- ナビゲーションペインで、Generate Token を選択します。
次のオプションのチェックボックスをオンにします。
- Administer Organization。選択すると、ユーザーはロボットの作成、チームの作成、チームメンバーシップの調整、課金設定の変更など、組織を管理できるようになります。
- Administer Repositories。選択すると、権限を付与したユーザーがアクセスできるすべてのリポジトリーへのユーザー管理者アクセスが提供されます。
- Create Repositories。選択すると、権限を付与したユーザーがリポジトリーの作成を許可されている任意の名前空間にリポジトリーを作成できるようになります。
- View all visible repositories。選択すると、権限を付与したユーザーに表示されるすべてのリポジトリーを表示しする権限およびプルする権限がユーザーに付与されます。
- Read/Write to any accessible repositories。選択すると、権限を付与したユーザーが書き込みアクセス権を持つすべてのリポジトリーを表示、プッシュ、プルする機能がユーザーに割り当てられます。
- Super User Access。選択すると、ユーザーの管理、組織の管理、スーパーユーザーパネルにあるその他の機能など、インストールを管理する権限がユーザーに付与されます。
- Administer User。選択すると、ロボットの作成やリポジトリーへの権限の付与など、アカウントを管理する権限がユーザーに付与されます。
- Read User Information。選択すると、ユーザー名やメールアドレスなどのユーザー情報を読み取る機能がユーザーに付与されます。
- Generate Access Token をクリックします。新しいページにリダイレクトされます。
- 許可する権限を確認し、Authorize Application をクリックします。Authorize Application をクリックして決定した内容を確定します。
Access Token ページにリダイレクトされます。アクセストークンをコピーして保存します。
重要これは、アクセストークンをコピーして保存する唯一の機会です。このページを離れると再取得できません。