6.2. Red Hat Quay 身份验证故障排除
认证和授权对于安全访问 Red Hat Quay 至关重要。它们一起保护敏感的容器镜像、验证用户身份、强制访问控制、促进审计和责任,以及实现与外部身份提供程序的无缝集成。通过优先考虑身份验证,组织可以增强其容器 registry 环境的整体安全性和完整性。
Red Hat Quay 支持以下验证方法:
- 用户名和密码。用户可以通过提供其用户名和密码来进行身份验证,这些用户名和密码会根据 Red Hat Quay 中配置的用户数据库进行验证。这种传统方法要求用户输入其凭据来获取访问权限。
- OAuth.Red Hat Quay 支持 OAuth 身份验证,允许用户使用 Google、GitHub 或 Keycloak 等第三方服务的凭证进行身份验证。OAuth 启用无缝和联合登录体验,无需单独创建帐户并简化用户管理。
- OIDC.OpenID Connect 启用单点登录(SSO)功能,并与企业身份提供程序集成。通过 OpenID Connect,用户可以使用其现有的机构凭证进行身份验证,为各种系统和应用程序提供统一身份验证体验。
- 基于令牌的身份验证.用户可以获取为 Red Hat Quay 中特定资源授予访问权限的唯一令牌。令牌可以通过各种方法获取,如 OAuth 或在 Red Hat Quay 用户界面中生成 API 令牌。基于令牌的身份验证通常用于自动或编程对 registry 的访问。
- 外部身份提供程序.Red Hat Quay 可以与外部身份提供程序(如 LDAP 或 AzureAD)集成,以进行身份验证。这种集成允许组织使用其现有的身份管理基础架构,实现集中用户身份验证并减少对单独的用户数据库的需求。
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)