第 5 章 保护 Apicurio Registry 部署
Apicurio Registry 通过使用基于 OpenID Connect (OIDC)和 HTTP 基本的 Red Hat Single Sign-On 提供身份验证和授权。您可以使用 Red Hat Single Sign-On Operator 自动配置所需的设置,或者在 Red Hat Single Sign-On 和 Apicurio Registry 中手动配置它们。
Apicurio Registry 还使用基于 OpenID Connect (OIDC)和 OAuth 授权代码流的 Microsoft Azure Active Directory 提供验证和授权。您可以在 Azure AD 和 Apicurio Registry 中手动配置所需的设置。
除了 Red Hat Single Sign-On 或 Azure AD 的基于角色的授权选项外,Apicurio Registry 还在 schema 或 API 级别提供基于内容的授权,其中只有工件创建者具有写入访问权限。您还可以从 OpenShift 集群内部或外部配置到 Apicurio Registry 的 HTTPS 连接。
本章介绍了如何在 OpenShift 中为 Apicurio Registry 部署配置以下安全选项:
- 第 5.1 节 “使用 Red Hat Single Sign-On Operator 保护 Apicurio Registry”
- 第 5.2 节 “使用 Red Hat Single Sign-On 配置 Apicurio Registry 身份验证和授权”
- 第 5.3 节 “使用 Microsoft Azure Active Directory 配置 Apicurio Registry 身份验证和授权”
- 第 5.4 节 “Apicurio Registry 身份验证和授权配置选项”
- 第 5.5 节 “从 OpenShift 集群内配置到 Apicurio Registry 的 HTTPS 连接”
- 第 5.6 节 “从 OpenShift 集群外部配置到 Apicurio Registry 的 HTTPS 连接”
以下流程演示了如何将 Apicurio Registry REST API 和 Web 控制台配置为受 Red Hat Single Sign-On 保护。
Apicurio Registry 支持以下用户角色:
| Name | 功能 |
|---|---|
|
| 完全访问权限,没有限制。 |
|
|
创建工件并配置工件规则。无法修改全局规则、执行导入/导出或使用 |
|
|
仅查看和搜索。无法修改工件或规则,执行导入/导出或使用 |
ApicurioRegistry CRD 中有一个相关的配置选项,可用于将 Web 控制台设置为只读模式。但是,此配置不会影响 REST API。
先决条件
- 您必须已安装了 Apicurio Registry Operator。
- 您必须安装 Red Hat Single Sign-On Operator,或者可从 OpenShift 集群访问 Red Hat Single Sign-On。
此流程中的示例配置仅用于开发和测试。为了保持流程简单,它不会在生产环境中使用 HTTPS 和其他推荐的防御。如需了解更多详细信息,请参阅 Red Hat Single Sign-On 文档。
流程
- 在 OpenShift Web 控制台中,点 Installed Operators 和 Red Hat Single Sign-On Operator,然后点 Keycloak 选项卡。
点 Create Keycloak 置备一个新的 Red Hat Single Sign-On 实例来保护 Apicurio Registry 部署。您可以使用默认值,例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 等待实例创建好,然后单击 Networking,然后单击 Routes 以访问 keycloak 实例的新路由。
- 点 Location URL,复制显示的 URL 值,以便在部署 Apicurio Registry 时使用。
点 Installed Operators 和 Red Hat Single Sign-On Operator,然后点 Keycloak Realm 选项卡,然后点 Create Keycloak Realm 来创建
registry示例域:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要如果要部署到生产环境,则必须使用适合您的环境的值自定义此
KeycloakRealm资源。您还可以使用 Red Hat Single Sign-On Web 控制台创建和管理域。如果您的集群没有配置有效的 HTTPS 证书,您可以创建以下 HTTP
Service和Ingress资源作为临时临时解决方案:点 Networking,然后点 Create Service,使用以下示例点 Create Service:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 点 Networking,然后点 Ingresses,使用以下示例点 Create Ingress:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 修改
主机值,以创建 Apicurio Registry 用户访问的路由,并使用它而不是 Red Hat Single Sign-On Operator 创建的 HTTPS 路由。
点 Apicurio Registry Operator,在 ApicurioRegistry 选项卡中,点 Create ApicurioRegistry,使用以下示例,但替换
keycloak部分中的值。Copy to Clipboard Copied! Toggle word wrap Toggle overflow