5.3. Service Registry 身份验证和授权配置选项


Service Registry 为 OpenID Connect 提供与红帽单点登录或 HTTP 基本身份验证的身份验证选项。

Service Registry 为基于角色的方法和基于内容的方法提供授权选项:

  • 默认 admin、write 和 read-only 用户角色的基于角色的授权。
  • 基于内容的模式或 API 工件授权,其中只有工件或工件组的所有者才能更新或删除工件。
注意

默认情况下禁用 Service Registry 身份验证和授权选项。

本章详细介绍了以下配置选项:

使用带有红帽单点登录的 OpenID Connect 进行 Service Registry 身份验证

您可以使用 Red Hat Single Sign-On 设置以下环境变量来为 Service Registry web 控制台和 API 配置身份验证:

Expand
表 5.6. 配置 Service Registry 身份验证选项
环境变量描述类型默认

AUTH_ENABLED

在 Service Registry 中启用或禁用身份验证。当设置为 true 时,需要遵循的环境变量。

字符串

false

KEYCLOAK_URL

要使用的 Red Hat Single Sign-On 身份验证服务器的 URL。必须以 /auth 结尾。

字符串

-

KEYCLOAK_REALM

用于身份验证的 Red Hat Single Sign-On 域。

字符串

-

KEYCLOAK_API_CLIENT_ID

Service Registry REST API 的客户端 ID。

字符串

registry-api

KEYCLOAK_UI_CLIENT_ID

Service Registry web 控制台的客户端 ID。

字符串

apicurio-registry

使用 HTTP 基本进行 Service Registry 身份验证

注意

默认情况下,Service Registry 支持使用 OpenID Connect 进行身份验证。用户(或 API 客户端)必须获取访问令牌,才能对 Service Registry REST API 发出经过身份验证的调用。但是,由于有些工具不支持 OpenID Connect,您也可以将 Service Registry 配置为支持 HTTP 基本身份验证,方法是将以下配置选项设置为 true

Expand
表 5.7. 配置 Service Registry HTTP 基本身份验证
环境变量Java 系统属性类型默认值

CLIENT_CREDENTIALS_BASIC_AUTH_ENABLED

registry.auth.basic-auth-client-credentials.enabled

布尔值

false

基于 Service Registry 角色的授权

您可以将以下选项设置为 true,以在 Service Registry 中启用基于角色的授权:

Expand
表 5.8. 配置 Service Registry 基于角色的授权
环境变量Java 系统属性类型默认值

ROLE_BASED_AUTHZ_ENABLED

registry.auth.role-based-authorization

布尔值

false

然后,您可以将基于角色的访问控制中的授权配置为使用用户身份验证令牌中包含的角色(例如,在使用 Red Hat Single Sign-On 进行身份验证时),或使用由 Service Registry 内部管理的角色映射。

使用 Red Hat Single Sign-On 中分配的角色

要使用 Red Hat Single Sign-On 分配的角色启用,请设置以下环境变量:

Expand
表 5.9. 使用 Red Hat Single Sign-On 配置基于 Service Registry 角色的授权
环境变量描述类型默认

ROLE_BASED_AUTHZ_SOURCE

当设置为 token 时,从身份验证令牌获取用户角色。

字符串

token

REGISTRY_AUTH_ROLES_ADMIN

表示用户是 admin 的角色的名称。

字符串

sr-admin

REGISTRY_AUTH_ROLES_DEVELOPER

表示用户是开发人员的角色名称。

字符串

sr-developer

REGISTRY_AUTH_ROLES_READONLY

表示用户具有只读访问权限的角色名称。

字符串

SR-readonly

当 Service Registry 配置为使用 Red Hat Single Sign-On 中的角色时,您必须将 Service Registry 用户分配给 Red Hat Single Sign-On 中至少以下用户角色之一。但是,您可以使用 表 5.9 “使用 Red Hat Single Sign-On 配置基于 Service Registry 角色的授权” 中的环境变量配置不同的用户角色名称。

Expand
表 5.10. 用于身份验证和授权的 Service Registry 角色
角色名称读取工件写入工件全局规则描述

sr-admin

完全访问所有创建、读取、更新和删除操作。

sr-developer

除了配置全局规则和导入/导出外,还可访问创建、读取、更新和删除操作。此角色只能配置工件规则。

SR-readonly

只访问读取和搜索操作。此角色无法配置任何规则。

在 Service Registry 中直接管理角色

要使用由 Service Registry 内部管理的角色启用,请设置以下环境变量:

Expand
表 5.11. 使用内部角色映射配置基于 Service Registry 角色的授权
环境变量描述类型默认

ROLE_BASED_AUTHZ_SOURCE

当设置为 应用程序时,用户角色由 Service Registry 内部管理。

字符串

token

在使用内部管理的角色映射时,可以使用 Service Registry REST API 中的 /admin/roleMappings 端点来分配一个角色。如需了解更多详细信息,请参阅 Apicurio Registry REST API 文档

用户可以精确授予一个角色: ADMINDEVELOPERREAD_ONLY。只有具有 admin 特权的用户才能向其他用户授予访问权限。

Service Registry admin-override 配置

由于 Service Registry 中没有默认的管理员用户,因此配置其他用户通常有助于用户被识别为管理员。您可以使用以下环境变量配置此 admin-override 功能:

Expand
表 5.12. 配置 Service Registry admin-override
环境变量描述类型默认

REGISTRY_AUTH_ADMIN_OVERRIDE_ENABLED

启用 admin-override 功能。

字符串

false

REGISTRY_AUTH_ADMIN_OVERRIDE_FROM

查找 admin-override 信息的位置。目前只支持 令牌

字符串

token

REGISTRY_AUTH_ADMIN_OVERRIDE_TYPE

用于确定用户是否为管理员的信息类型。值取决于 FROM 变量的值,例如,当 FROM 是 令牌时roleclaim

字符串

role

REGISTRY_AUTH_ADMIN_OVERRIDE_ROLE

表示用户是 admin 的角色的名称。

字符串

sr-admin

REGISTRY_AUTH_ADMIN_OVERRIDE_CLAIM

用于确定 admin-override 的 JWT 令牌声明的名称。

字符串

org-admin

REGISTRY_AUTH_ADMIN_OVERRIDE_CLAIM_VALUE

JWT 令牌声明由 CLAIM 变量表示的值必须为用户授予 admin-override。

字符串

true

例如,您可以使用此 admin-override 功能将 sr-admin 角色分配给红帽单点登录中的单个用户,这将授予该用户 admin 角色。然后,该用户可以使用 /admin/roleMappings REST API (或关联 UI)为其他用户(包括其他管理员)授予角色。

Service Registry 所有者授权

您可以将以下选项设置为 true,以启用仅所有者授权以用于 Service Registry 中工件或工件组的更新:

Expand
表 5.13. 配置仅所有者授权
环境变量Java 系统属性类型默认值

REGISTRY_AUTH_OBAC_ENABLED

registry.auth.owner-only-authorization

布尔值

false

REGISTRY_AUTH_OBAC_LIMIT_GROUP_ACCESS

registry.auth.owner-only-authorization.limit-group-access

布尔值

false

当启用了仅限所有者授权时,只有创建工件的用户才能修改或删除该工件。

当启用了仅所有者授权和组所有者授权时,只有创建工件组的用户才能对该工件组的写入权限,例如在该组中添加或删除工件。

Service Registry 验证的读访问权限

当启用了经过身份验证的读取访问选项时,Service Registry 至少授予对同一机构中任何经过身份验证的用户请求的只读访问权限,而不考虑其用户角色。

要启用经过身份验证的读取访问权限,您必须首先启用基于角色的访问控制的授权,然后将以下选项设置为 true

Expand
表 5.14. 配置经过身份验证的读取访问权限
环境变量Java 系统属性类型默认值

REGISTRY_AUTH_AUTHENTICATED_READS_ENABLED

registry.auth.authenticated-read-access.enabled

布尔值

false

如需了解更多详细信息,请参阅 “基于 Service Registry 角色的授权”一节

Service Registry 匿名只读访问

除了两种主要授权类型(基于角色的访问控制和基于所有者的授权)外,Service Registry 还支持匿名只读访问选项。

要允许匿名用户(如 REST API 调用没有身份验证凭证)对 REST API 发出只读调用,将以下选项设置为 true

Expand
表 5.15. 配置匿名只读访问
环境变量Java 系统属性类型默认值

REGISTRY_AUTH_ANONYMOUS_READ_ACCESS_ENABLED

registry.auth.anonymous-read-access.enabled

布尔值

false

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部