9.3. 用户和访问权限管理


使用这些字段配置如何创建、验证和管理用户。这包括超级用户、帐户恢复、特定于应用程序的令牌、登录行为和 LDAP、OAuth 和 OIDC 等外部身份提供程序的设置。

9.3.1. 用户配置字段

用户配置字段定义用户帐户在 Red Hat Quay 部署中的行为方式。这些字段允许对用户创建、访问级别、元数据跟踪、恢复选项和命名空间管理进行控制。您还可以强制实施限制,如仅邀请创建或超级用户权限,以匹配组织的管理和安全策略。

表 9.10. 用户配置字段
字段类型描述

FEATURE_SUPER_USERS

布尔值

是否支持超级用户

默认为 true

FEATURE_USER_CREATION

布尔值

是否可以创建用户(非超级用户)

默认值: true

FEATURE_USER_LAST_ACCESSED

布尔值

是否记录用户被访问最后一次访问的时间

默认为 true

FEATURE_USER_LOG_ACCESS

布尔值

如果设置为 true,用户有权访问其命名空间的审计日志

默认: false

FEATURE_USER_METADATA

布尔值

是否收集和支持用户元数据

默认: false

FEATURE_USERNAME_CONFIRMATION

布尔值

如果设置为 true,用户可以在通过 OpenID Connect (OIDC)或非数据库内部身份验证供应商(如 LDAP)登录时确认并修改其初始用户名。
默认: true

FEATURE_USER_RENAME

布尔值

如果设置为 true,用户可以重命名自己的命名空间

默认: false

FEATURE_INVITE_ONLY_USER_CREATION

布尔值

要创建的用户是否必须被其他用户邀请

默认为 false

FRESH_LOGIN_TIMEOUT

字符串

新登录的时间需要用户重新输入其密码

示例5m

USERFILES_LOCATION

字符串

放置用户上传文件的存储引擎 ID

示例:s3_us_east

USERFILES_PATH

字符串

放置用户上传文件的存储的路径

示例userfiles

USER_RECOVERY_TOKEN_LIFETIME

字符串

恢复用户帐户的令牌时间长度是有效的

Pattern:^[0-9]+(w|m|d|h|s)$
Default:30m

FEATURE_SUPERUSERS_FULL_ACCESS

布尔值

授予超级用户从命名空间中的其他存储库读取、写入和删除它们没有拥有或明确权限的那些存储库的权限。

Default: False

FEATURE_SUPERUSERS_ORG_CREATION_ONLY

布尔值

是否只允许超级用户创建机构。

Default: False

FEATURE_RESTRICTED_USERS

布尔值

当使用 RESTRICTED_USERS_WHITELIST 设置为 True 时:

  • 所有普通用户和超级用户都仅限于在其自己的命名空间中创建机构或内容,除非它们通过 RESTRICTED_USERS_WHITELIST 进行允许。
  • 受限用户根据团队成员资格在机构中保留其正常权限。

Default: False

RESTRICTED_USERS_WHITELIST

字符串

当使用 FEATURE_RESTRICTED_USERS 设置设置时,特定用户将不包括在 FEATURE_RESTRICTED_USERS 设置中。

GLOBAL_READONLY_SUPER_USERS

字符串

设置后,可授予用户对所有存储库的读取访问权限,无论它们是公共存储库。仅适用于通过 SUPER_USERS 配置字段定义的超级用户。

用户 YAML 示例

# ...
FEATURE_SUPER_USERS: true
FEATURE_USER_CREATION: true
FEATURE_INVITE_ONLY_USER_CREATION: false
FEATURE_USER_RENAME: true
FEATURE_SUPERUSERS_FULL_ACCESS: true
FEATURE_SUPERUSERS_ORG_CREATION_ONLY: false
FEATURE_RESTRICTED_USERS: true
RESTRICTED_USERS_WHITELIST: 
1

      - user1
GLOBAL_READONLY_SUPER_USERS:
      - quayadmin
FRESH_LOGIN_TIMEOUT: "5m"
USER_RECOVERY_TOKEN_LIFETIME: "30m"
USERFILES_LOCATION: "s3_us_east"
USERFILES_PATH: "userfiles"
# ...
Copy to Clipboard

1
当设置了 RESTRICTED_USERS_WHITELIST 字段时,用户也可以从存储库创建机构,即使 FEATURE_RESTRICTED_USERS 设置为 true。其他用户(如 user2、 user3user4) 仅限于创建机构、读取或写入内容。

9.3.2. 机器人帐户配置字段

以下配置字段允许全局禁止机器人帐户创建和交互。

其他资源

表 9.11. 机器人帐户配置字段
字段类型描述

ROBOTS_DISALLOW

布尔值

当设置为 true 时,机器人帐户会阻止所有交互,以及创建
默认:False

机器人帐户不允许示例 YAML

# ...
ROBOTS_DISALLOW: true
# ...
Copy to Clipboard

9.3.3. LDAP 配置字段

以下配置字段允许管理员将 Red Hat Quay 与基于 LDAP 的身份验证系统集成。当 AUTHENTICATION_TYPE 设置为 LDAP 时,Red Hat Quay 可以针对 LDAP 目录验证用户,并支持其他可选功能,如团队同步、超级用户访问控制、受限用户角色和安全连接参数。

本节提供了以下 LDAP 情境的 YAML 示例:

  • 基本 LDAP 配置
  • LDAP 受限用户配置
  • LDAP 超级用户配置
表 9.12. LDAP 配置
字段类型描述

AUTHENTICATION_TYPE
(Required)

字符串

必须设置为 LDAP

FEATURE_TEAM_SYNCING

布尔值

是否允许团队成员资格与身份验证引擎中的后备组同步(OIDC、LDAP 或 Keystone)。

默认: true

FEATURE_NONSUPERUSER_TEAM_SYNCING_SETUP

布尔值

如果启用,非超级用户可设置团队同步。

默认: false

LDAP_ADMIN_DN

字符串

用于 LDAP 验证的管理 DN。

LDAP_ADMIN_PASSWD

字符串

LDAP 验证的 admin 密码。

LDAP_ALLOW_INSECURE_FALLBACK

布尔值

是否允许 LDAP 身份验证的 SSL 不安全回退。

LDAP_BASE_DN

字符串数组

用于 LDAP 身份验证的基本 DN。

LDAP_EMAIL_ATTR

字符串

LDAP 身份验证的电子邮件属性。

LDAP_UID_ATTR

字符串

LDAP 身份验证的 uid 属性。

LDAP_URI

字符串

LDAP URI。

LDAP_USER_FILTER

字符串

LDAP 身份验证的用户过滤器。

LDAP_USER_RDN

字符串数组

用于 LDAP 身份验证的用户 RDN。

LDAP_SECONDARY_USER_RDNS

字符串数组

如果用户对象所在的多个机构单元,则提供二级用户相对 DN。

TEAM_RESYNC_STALE_TIME

字符串

如果为团队启用了团队同步,则检查其成员资格和重新同步的频率。

Pattern:
^[0-9]+(w|m|d|h|s)$
Example:
2h
Default:
30m

LDAP_SUPERUSER_FILTER

字符串

LDAP_USER_FILTER 配置字段的子集。配置后,当 Red Hat Quay 使用 LDAP 作为其身份验证提供程序时,允许 Red Hat Quay 管理员将轻量级目录访问协议(LDAP)用户配置为超级用户。

使用此字段,管理员可以添加或删除超级用户,而无需更新 Red Hat Quay 配置文件并重启其部署。

此字段要求将 AUTHENTICATION_TYPE 设置为 LDAP

LDAP_GLOBAL_READONLY_SUPERUSER_FILTER

字符串

设置后,可授予用户对所有存储库的读取访问权限,无论它们是公共存储库。仅适用于通过 LDAP_SUPERUSER_FILTER 配置字段定义的超级用户。

LDAP_RESTRICTED_USER_FILTER

字符串

LDAP_USER_FILTER 配置字段的子集。配置后,当 Red Hat Quay 使用 LDAP 作为其身份验证提供程序时,允许 Red Hat Quay 管理员将轻量级目录访问协议(LDAP)用户配置为受限用户。

此字段要求将 AUTHENTICATION_TYPE 设置为 LDAP

FEATURE_RESTRICTED_USERS

布尔值

当设为 True 时,LDAP_RESTRICTED_USER_FILTER 处于活动状态时,只有定义的 LDAP 组中的用户才会受到限制。

Default: False

LDAP_TIMEOUT

整数

指定 LDAP 操作的时间限制(以秒为单位)。这限制了 LDAP 搜索、绑定或其他操作可以花费的时间。与 ldapsearch 中的 -l 选项类似,它会设置客户端操作超时。

默认 :10

LDAP_NETWORK_TIMEOUT

整数

指定与 LDAP 服务器建立连接的时间限制(以秒为单位)。这是 Red Hat Quay 在网络操作期间等待响应的最长时间,类似于 ldapsearch 中的 -o nettimeout 选项。

默认 :10

基本 LDAP 配置示例 YAML

# ...
AUTHENTICATION_TYPE: LDAP 
1

# ...
LDAP_ADMIN_DN: uid=<name>,ou=Users,o=<organization_id>,dc=<example_domain_component>,dc=com 
2

LDAP_ADMIN_PASSWD: ABC123 
3

LDAP_ALLOW_INSECURE_FALLBACK: false 
4

LDAP_BASE_DN: 
5

  - dc=example
  - dc=com
LDAP_EMAIL_ATTR: mail 
6

LDAP_UID_ATTR: uid 
7

LDAP_URI: ldap://<example_url>.com 
8

LDAP_USER_FILTER: (memberof=cn=developers,ou=Users,dc=<domain_name>,dc=com) 
9

LDAP_USER_RDN: 
10

  - ou=people
LDAP_SECONDARY_USER_RDNS: 
11

    - ou=<example_organization_unit_one>
    - ou=<example_organization_unit_two>
    - ou=<example_organization_unit_three>
    - ou=<example_organization_unit_four>
Copy to Clipboard

1
必需。必须设置为 LDAP
2
必需。用于 LDAP 验证的管理 DN。
3
必需。LDAP 验证的 admin 密码。
4
必需。是否为 LDAP 身份验证允许 SSL/TLS 不安全回退。
5
必需。用于 LDAP 身份验证的基本 DN。
6
必需。LDAP 身份验证的电子邮件属性。
7
必需。LDAP 身份验证的 UID 属性。
8
必需。LDAP URI。
9
必需。LDAP 身份验证的用户过滤器。
10
必需。用于 LDAP 身份验证的用户 RDN。
11
可选。如果有多个机构单元,则二级用户相对 DN。

LDAP 受限用户配置示例 YAML

# ...
AUTHENTICATION_TYPE: LDAP
# ...
FEATURE_RESTRICTED_USERS: true 
1

# ...
LDAP_ADMIN_DN: uid=<name>,ou=Users,o=<organization_id>,dc=<example_domain_component>,dc=com
LDAP_ADMIN_PASSWD: ABC123
LDAP_ALLOW_INSECURE_FALLBACK: false
LDAP_BASE_DN:
    - o=<organization_id>
    - dc=<example_domain_component>
    - dc=com
LDAP_EMAIL_ATTR: mail
LDAP_UID_ATTR: uid
LDAP_URI: ldap://<example_url>.com
LDAP_USER_FILTER: (memberof=cn=developers,ou=Users,o=<example_organization_unit>,dc=<example_domain_component>,dc=com)
LDAP_RESTRICTED_USER_FILTER: (<filterField>=<value>) 
2

LDAP_USER_RDN:
    - ou=<example_organization_unit>
    - o=<organization_id>
    - dc=<example_domain_component>
    - dc=com
# ...
Copy to Clipboard

1
在配置 LDAP 受限用户时,必须设置为 true
2
将指定用户配置为受限用户。

LDAP 超级用户配置参考 YAML 示例

# ...
AUTHENTICATION_TYPE: LDAP
# ...
LDAP_ADMIN_DN: uid=<name>,ou=Users,o=<organization_id>,dc=<example_domain_component>,dc=com
LDAP_ADMIN_PASSWD: ABC123
LDAP_ALLOW_INSECURE_FALLBACK: false
LDAP_BASE_DN:
    - o=<organization_id>
    - dc=<example_domain_component>
    - dc=com
LDAP_EMAIL_ATTR: mail
LDAP_UID_ATTR: uid
LDAP_URI: ldap://<example_url>.com
LDAP_USER_FILTER: (memberof=cn=developers,ou=Users,o=<example_organization_unit>,dc=<example_domain_component>,dc=com)
LDAP_SUPERUSER_FILTER: (<filterField>=<value>) 
1

LDAP_USER_RDN:
    - ou=<example_organization_unit>
    - o=<organization_id>
    - dc=<example_domain_component>
    - dc=com
# ...
Copy to Clipboard

1
将指定用户配置为超级用户。

9.3.4. OAuth 配置字段

以下字段定义 Red Hat Quay 在使用 OAuth 通过外部身份提供程序进行身份验证时的行为。您可以配置全局 OAuth 选项,如令牌分配和白名单客户端 ID,以及 GitHub 和 Google 的特定于供应商的设置。

表 9.13. OAuth 字段
字段类型描述

DIRECT_OAUTH_CLIENTID_WHITELIST

字符串数组

允许在没有用户批准的情况下执行直接 OAuth 批准的 Quay 管理 的应用程序的客户端 ID 列表。

FEATURE_ASSIGN_OAUTH_TOKEN

布尔值

允许机构管理员将 OAuth 令牌分配给其他用户。

全局 OAuth 示例 YAML

# ...
DIRECT_OAUTH_CLIENTID_WHITELIST:
  - <quay_robot_client>
  - <quay_app_token_issuer>
FEATURE_ASSIGN_OAUTH_TOKEN: true
# ...
Copy to Clipboard

表 9.14. GitHub OAuth 配置字段
字段类型描述

FEATURE_GITHUB_LOGIN

布尔值

是否支持 GitHub 登录

**默认:False

GITHUB_LOGIN_CONFIG

对象

使用 GitHub (Enterprise)作为外部登录提供程序的配置。

   .ALLOWED_ORGANIZATIONS

字符串数组

GitHub (企业)组织的名称,使用 ORG_RESTRICT 选项。

   .API_ENDPOINT

字符串

要使用的 GitHub (企业)API 的端点。对于 github.com

,必须被覆盖: https://api.github.com/

   .CLIENT_ID
   (Required)

字符串

此 Red Hat Quay 实例的注册客户端 ID;无法与 GITHUB_TRIGGER_CONFIG.

示例

   .CLIENT_SECRET
(Required)

字符串

此 Red Hat Quay 实例的注册客户端 secret。

:< client_secret>

   .GITHUB_ENDPOINT
(Required)

字符串

GitHub 的端点(Enterprise)。

示例 :https://github.com/

   .ORG_RESTRICT

布尔值

如果为 true,只有机构白名单中的用户才能使用这个供应商登录。

GitHub OAth 示例 YAML

# ...
FEATURE_GITHUB_LOGIN: true
GITHUB_LOGIN_CONFIG:
  ALLOWED_ORGANIZATIONS:
    - <myorg>
    - <dev-team>
  API_ENDPOINT: <https://api.github.com/>
  CLIENT_ID: <client_id>
  CLIENT_SECRET: <client_secret>
  GITHUB_ENDPOINT: <https://github.com/>
  ORG_RESTRICT: true
# ...
Copy to Clipboard

表 9.15. Google OAuth 配置字段
字段类型描述

FEATURE_GOOGLE_LOGIN

布尔值

是否支持 Google 登录。

(默认: False

GOOGLE_LOGIN_CONFIG

对象

使用 Google 进行外部身份验证的配置。

   .CLIENT_ID
   (Required)

字符串

此 Red Hat Quay 实例的注册客户端 ID。

示例: < client_id>

   .CLIENT_SECRET
(Required)

字符串

此 Red Hat Quay 实例的注册客户端 secret。

:< client_secret>

Google OAuth 示例 YAML

# ...
FEATURE_GOOGLE_LOGIN: true
GOOGLE_LOGIN_CONFIG:
  CLIENT_ID: <client_id>
  CLIENT_SECRET: <client_secret>
# ...
Copy to Clipboard

9.3.5. OIDC 配置字段

您可以配置 Red Hat Quay,以通过任何兼容 OpenID Connect (OIDC)的身份提供程序验证用户,包括 Azure Entra ID (以前称为 Azure AD)、Okta、Keycloak 等。这些字段定义 OIDC 登录流过程中使用的必要客户端凭证、端点和令牌行为。

表 9.16. OIDC 字段
字段类型描述

<string>_LOGIN_CONFIG
(Required)

字符串

包含 OIDC 配置设置的父密钥。通常,OIDC 供应商的名称,如 AZURE_LOGIN_CONFIG,但接受任何任意字符串。

.CLIENT_ID
(Required)

字符串

此 Red Hat Quay 实例的注册客户端 ID。

0e8dbe15c4c7630b6780

.CLIENT_SECRET
(Required)

字符串

此 Red Hat Quay 实例的注册客户端 secret。

e4a58ddd3d7408b7aec109e85564a0d153d3e846

   .DEBUGLOG

布尔值

是否启用调试。

   .LOGIN_BINDING_FIELD

字符串

当内部授权设置为 LDAP 时使用。Red Hat Quay 读取此参数,并尝试使用此用户名为用户搜索 LDAP 树。如果存在,它会自动创建到该 LDAP 帐户的链接。

   .LOGIN_SCOPES

对象

添加 Red Hat Quay 用来与 OIDC 供应商通信的其他范围。

   .OIDC_ENDPOINT_CUSTOM_PARAMS

字符串

支持 OIDC 端点上的自定义查询参数。支持以下端点: authorization_endpointtoken_endpointuser_endpoint

   .OIDC_ISSUER

字符串

允许用户定义签发者进行验证。例如,JWT 令牌容器( 称为 )参数定义谁签发令牌。默认情况下,这从 .well-know/openid/configuration 端点读取,该端点由每个 OIDC 供应商公开。如果这个验证失败,则没有登录。

.OIDC_SERVER
(Required)

字符串

用于身份验证的 OIDC 服务器的地址。



https://sts.windows.net/6c878…​ /

   .PREFERRED_USERNAME_CLAIM_NAME

字符串

将首选 username 设置为来自令牌的参数。

   .SERVICE_ICON

字符串

更改登录屏幕上的图标。

.SERVICE_NAME
(Required)

字符串

要验证的服务名称。

MicrosoftEntra ID

   .VERIFIED_EMAIL_CLAIM_NAME

字符串

用于验证用户电子邮件地址的声明名称。

   .PREFERRED_GROUP_CLAIM_NAME

字符串

OIDC 令牌有效负载中的密钥名称,其中包含用户组成员资格的信息。

   .OIDC_DISABLE_USER_ENDPOINT

布尔值

是否允许或拒绝 /userinfo 端点。如果使用 Azure Entra ID,此字段必须设置为 true,因为 Azure 从令牌获取用户信息,而不是调用 /userinfo 端点。

默认: false

OIDC 示例 YAML

AUTHENTICATION_TYPE: OIDC
# ...
<oidc_provider>_LOGIN_CONFIG:
  CLIENT_ID: <client_id>
  CLIENT_SECRET: <client_secret>
  DEBUGLOG: true
  LOGIN_BINDING_FIELD: <login_binding_field>
  LOGIN_SCOPES:
    - openid
    - email
    - profile
  OIDC_ENDPOINT_CUSTOM_PARAMS:
    authorization_endpoint:
      some: "param"
    token_endpoint:
      some: "param"
    user_endpoint:
      some: "param"
  OIDC_ISSUER: <oidc_issuer_url>
  OIDC_SERVER: <oidc_server_address>
  PREFERRED_USERNAME_CLAIM_NAME: <preferred_username_claim>
  SERVICE_ICON: <service_icon_url>
  SERVICE_NAME: <service_name>
  VERIFIED_EMAIL_CLAIM_NAME: <verified_email_claim>
  PREFERRED_GROUP_CLAIM_NAME: <preferred_group_claim>
  OIDC_DISABLE_USER_ENDPOINT: true
# ...
Copy to Clipboard

9.3.6. reCAPTCHA 配置字段

您可以在 Red Hat Quay 实例中启用 Recaptcha 支持,以帮助保护用户登录和帐户恢复表单被自动化系统滥用。

表 9.17. reCAPTCHA 配置字段
字段类型描述

FEATURE_RECAPTCHA

布尔值

用户登录和恢复需要 Recaptcha

Default: False

RECAPTCHA_SECRET_KEY

字符串

如果启用了 recaptcha,则 Recaptcha 服务的 secret 键

RECAPTCHA_SITE_KEY

字符串

如果启用了 recaptcha,则 Recaptcha 服务的站点键

reCAPTCHA 示例 YAML

# ...
FEATURE_RECAPTCHA: true
RECAPTCHA_SITE_KEY: "<site_key>"
RECAPTCHA_SECRET_KEY: "<secret_key>"
# ...
Copy to Clipboard

9.3.7. JWT 配置字段

Red Hat Quay 可以配置为支持使用 JSON Web 令牌(JWT)进行外部身份验证。此集成允许第三方身份提供程序或令牌签发者通过调用处理令牌验证、用户查找和权限查询的特定端点来进行验证和授权用户。

表 9.18. JWT 配置字段
字段类型描述

JWT_AUTH_ISSUER

字符串

JWT 用户的端点

Pattern:^http (s)?://(.)+$
Example:http://192.168.99.101:6060

JWT_GETUSER_ENDPOINT

字符串

JWT 用户的端点
Pattern:^http (s)?://(.)+$
示例:http://192.168.99.101:6060

JWT_QUERY_ENDPOINT

字符串

JWT 查询的端点

Pattern:^http (s)?://(.)+$
Example:http://192.168.99.101:6060

JWT_VERIFY_ENDPOINT

字符串

JWT 验证的端点

Pattern:^http (s)?://(.)+$
Example:http://192.168.99.101:6060

JWT 示例 YAML

# ...
JWT_AUTH_ISSUER: "http://192.168.99.101:6060"
JWT_GETUSER_ENDPOINT: "http://192.168.99.101:6060/getuser"
JWT_QUERY_ENDPOINT: "http://192.168.99.101:6060/query"
JWT_VERIFY_ENDPOINT: "http://192.168.99.101:6060/verify"
# ...
Copy to Clipboard

9.3.8. 应用令牌配置字段

特定于应用的令牌允许用户使用基于令牌的凭证通过 Red Hat Quay 进行身份验证。这些字段对于 Docker 等 CLI 工具可能有用。

表 9.19. 应用令牌配置字段
字段类型描述

FEATURE_APP_SPECIFIC_TOKENS

布尔值

如果启用,用户可以创建令牌以供 Docker CLI

默认值: True

APP_SPECIFIC_TOKEN_EXPIRATION

字符串

外部应用令牌的过期时间。

默认 None
Pattern: ^[0-9]+(w|m|d|h|s)$

EXPIRED_APP_SPECIFIC_TOKEN_GC

字符串

过期的外部应用程序令牌的持续时间将在垃圾回收前保留

默认: 1d

应用程序令牌示例 YAML

# ...
FEATURE_APP_SPECIFIC_TOKENS: true
APP_SPECIFIC_TOKEN_EXPIRATION: "30d"
EXPIRED_APP_SPECIFIC_TOKEN_GC: "1d"
# ...
Copy to Clipboard

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat