6.2. Red Hat Quay 身份验证故障排除
身份验证和授权对于安全访问 Red Hat Quay 至关重要。它们一起保护敏感容器镜像、验证用户身份、强制访问控制、促进审计和责任,并启用与外部身份提供程序无缝集成。通过优先级身份验证,组织可以为其容器注册表环境带来整体安全性和完整性。
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)