6.2. Red Hat Quay 認証のトラブルシューティング
Red Hat Quay に安全にアクセスするには、認証と認可が重要です。これらは同時に、機密のコンテナーイメージを保護し、ユーザー ID を検証して、アクセス制御を実施し、監査と説明責任を促進して、外部 ID プロバイダーとのシームレスな統合を可能にします。認証を優先することで、組織はコンテナーレジストリー環境の全体的なセキュリティーと整合性を強化できます。
Red Hat Quay では次の認証方法がサポートされています。
- ユーザー名およびパスワード: ユーザーはユーザー名とパスワードを入力することで認証でき、これらは Red Hat Quay で設定されたユーザーデータベースに対して検証されます。この従来の方法では、ユーザーはアクセスするために認証情報を入力する必要があります。
- OAuth: Red Hat Quay は OAuth 認証をサポートしており、ユーザーは Google、GitHub、Keycloak などのサードパーティーのサービスからの認証情報を使用して認証できます。OAuth によりシームレスで統合されたログインエクスペリエンスが可能になり、アカウントを個別に作成する必要がなくなり、ユーザー管理が容易になります。
- OIDC: OpenID Connect により、Single Sign-On (SSO) 機能とエンタープライズ ID プロバイダーとの統合が可能になります。OpenID Connect を使用すると、ユーザーは既存の組織の認証情報を使用して認証できるため、さまざまなシステムやアプリケーションにわたって統一された認証エクスペリエンスが提供されます。
- トークンベースの認証: ユーザーは、Red Hat Quay 内の特定のリソースへのアクセスを許可する固有のトークンを取得できます。トークンは、OAuth や Red Hat Quay ユーザーインターフェイス内で API トークンを生成するなど、さまざまな手段を通じて取得できます。トークンベースの認証は、レジストリーへの自動アクセスまたはプログラムによるアクセスによく使用されます。
- 外部 ID プロバイダー: Red Hat Quay は、認証の目的で LDAP や AzureAD などの外部認証プロバイダーと統合できます。この統合により、組織は既存の ID 管理インフラストラクチャーを使用できるようになり、一元的なユーザー認証が可能になり、個別のユーザーデータベースの必要性が軽減されます。
6.2.1. 特定のユーザーに対する Red Hat Quay の認証および認可の問題のトラブルシューティング
特定のユーザーの認証および認可の問題をトラブルシューティングするには、次の手順を使用します。
手順
- Red Hat Quay Pod またはコンテナーで実行します。詳細は、Red Hat Quay データベースとの対話を参照してください。
次のコマンドを入力して、外部認証のすべてのユーザーを表示します。
quay=# select * from federatedlogin;
出力例
id | user_id | service_id | service_ident | metadata_json ----+---------+------------+---------------------------------------------+------------------------------------------- 1 | 1 | 3 | testuser0 | {} 2 | 1 | 8 | PK7Zpg2Yu2AnfUKG15hKNXqOXirqUog6G-oE7OgzSWc | {"service_username": "live.com#testuser0"} 3 | 2 | 3 | testuser1 | {} 4 | 2 | 4 | 110875797246250333431 | {"service_username": "testuser1"} 5 | 3 | 3 | testuser2 | {} 6 | 3 | 1 | 26310880 | {"service_username": "testuser2"} (6 rows)
ユーザーが
user
テーブルに挿入されていることを確認します。quay=# select username, email from "user";
出力例
username | email -----------+---------------------- testuser0 | testuser0@outlook.com testuser1 | testuser1@gmail.com testuser2 | testuser2@redhat.com (3 rows)