搜索

11.3. 使用自定义资源安装 Red Hat Single Sign-On

download PDF

您可以通过创建 Keycloak 自定义资源,使用 Operator 自动安装 Red Hat Single Sign-On。当您使用自定义资源安装 Red Hat Single Sign-On 时,您可以创建此处描述的组件和服务,并在下图所示显示。

  • Keycloak-db-secret - 存储属性,如数据库用户名、密码和外部地址(如果您连接到外部数据库)
  • credentials-<CR-Name > - 用户名和密码登录到 Red Hat Single Sign-On admin 控制台(& lt;CR-Name > 基于 Keycloak 自定义资源名称)
  • Keycloak - Keycloak 部署规格,作为具有高可用性支持的 StatefulSet 实现
  • Keycloak-postgresql - 启动 PostgreSQL 数据库安装
  • Keycloak-discovery Service - 执行 JDBC_PING 发现
  • Keycloak Service - 通过 HTTPS 连接到 Red Hat Single Sign-On(不支持 HTTP)
  • Keycloak-postgresql Service - 连接到内部和外部数据库实例
  • Keycloak Route - 从 OpenShift 访问 Red Hat Single Sign-On 管理控制台的 URL

Operator 组件和服务如何交互

operator components

11.3.1. Keycloak 自定义资源

Keycloak 自定义资源是一个 YAML 文件,它定义了用于安装的参数。此文件包含三个属性:

  • 实例 - 控制在高可用性模式下运行的实例数量。
  • externalAccess - 如果启用 则为 True,Operator 会为 Red Hat Single Sign-On 集群创建一个路由。您可以将 host 设置为覆盖自动选择的 Route 的主机名
  • externalDatabase - 以连接到外部托管数据库。本指南的 外部数据库 部分将涵盖该主题。将其设置为 false 时应用于测试目的,并将安装嵌入的 PostgreSQL 数据库。请注意,在生产环境中不支持 externalDatabase:false。

Keycloak 自定义资源的 YAML 文件示例

apiVersion: keycloak.org/v1alpha1
kind: Keycloak
metadata:
  name: example-sso
  labels:
    app: sso
spec:
  instances: 1
  externalAccess:
    enabled: True

注意

您可以更新 YAML 文件,且 Red Hat Single Sign-On admin 控制台中出现的更改不会更新自定义资源。

11.3.2. 在 OpenShift 中创建 Keycloak 自定义资源

在 OpenShift 中,您可以使用自定义资源来创建路由,该路由是 admin 控制台的 URL,并找到包含 admin 控制台的用户名和密码。

先决条件

  • 对此自定义资源有一个 YAML 文件。
  • 您有 cluster-admin 权限或管理员授予了同等权限的权限级别。

流程

  1. 使用您的 YAML 文件创建路由: oc create -f <filename>.yaml -n <namespace>.例如:

    $ oc create -f sso.yaml -n sso
    keycloak.keycloak.org/example-sso created

    OpenShift 中创建了一个路由。

  2. 登录到 OpenShift Web 控制台。
  3. 选择 Networking,Routes 并搜索 Keycloak。

    OpenShift Web 控制台中的路由屏幕

    route ocp

  4. 在带有 Keycloak 路由的屏幕上,点 Location 下的 URL。

    此时会出现 Red Hat Single Sign-On admin 控制台登录屏幕。

    管理控制台登录屏幕

    login empty

  5. 在 OpenShift web 控制台中找到 admin 控制台的用户名和密码;在 Workloads 下,点 Secrets 并搜索 Keycloak。

    OpenShift Web 控制台中的机密页面

    secrets ocp

  6. 在 admin 控制台登录屏幕中输入用户名和密码。

    管理控制台登录屏幕

    login complete

    您现在已登录到一个由 Keycloak 自定义资源安装的 Red Hat Single Sign-On 实例。您已准备好为 realm、client 和 users 创建自定义资源。

    Red Hat Single Sign-On master realm

    new install cr

  7. 检查自定义资源的状态:

    $ oc describe keycloak <CR-name>

结果

Operator 处理自定义资源后,使用以下命令查看状态:

$ oc describe keycloak <CR-name>

Keycloak 自定义资源状态

Name:         example-keycloak
Namespace:    keycloak
Labels:       app=sso
Annotations:  <none>
API Version:  keycloak.org/v1alpha1
Kind:         Keycloak
Spec:
  External Access:
    Enabled:  true
  Instances:  1
Status:
  Credential Secret:  credential-example-keycloak
  Internal URL:       https://<External URL to the deployed instance>
  Message:
  Phase:              reconciling
  Ready:              true
  Secondary Resources:
    Deployment:
      keycloak-postgresql
    Persistent Volume Claim:
      keycloak-postgresql-claim
    Prometheus Rule:
      keycloak
    Route:
      keycloak
    Secret:
      credential-example-keycloak
      keycloak-db-secret
    Service:
      keycloak-postgresql
      keycloak
      keycloak-discovery
    Service Monitor:
      keycloak
    Stateful Set:
      keycloak
  Version:
Events:

其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.