OpenShift

在 OpenShift 上开始使用 Keycloak

开始之前

请确保您的机器或容器平台可以为 Keycloak 的预期使用提供足够的内存和 CPU。有关如何开始进行生产环境规模调整的更多信息,请参阅CPU 和内存资源调整的概念

  1. 安装 Red Hat Code Ready Containers 并按照文档中的步骤安装本地 OpenShift 集群。

  2. 通过输入以下命令确保集群功能正常

    crc status
  3. 查找类似于以下内容的输出,以确认集群正在工作。

    CRC VM:          Running
    OpenShift:       Running
    ...
  4. 以用户 developer 身份登录

    oc login -u developer -p developer
  5. 通过输入以下命令创建一个名为 keycloak 的项目

    oc new-project keycloak

启动 Keycloak

  1. 要在您的项目中启动 Keycloak 服务器,请输入以下命令

    oc process -f https://raw.githubusercontent.com/keycloak/keycloak-quickstarts/refs/heads/main/openshift/keycloak.yaml \
        -p KC_BOOTSTRAP_ADMIN_USERNAME=admin \
        -p KC_BOOTSTRAP_ADMIN_PASSWORD=admin \
        -p NAMESPACE=keycloak \
    | oc create -f -

    在此示例中,用户名和密码均为 admin

  2. 上面的命令完成后,查找类似于以下内容的消息

    service/keycloak created
    route.route.openshift.io/keycloak created
    deploymentconfig.apps.openshift.io/keycloak created.

    此时,OpenShift 将配置一个 Keycloak Pod 和相关资源。在此过程中,OpenShift 将尝试拉取 Keycloak 服务器镜像。此操作可能需要一些时间,具体取决于您的网络连接。

  3. 要确保 Keycloak 已配置,请执行以下命令

    oc get pods
  4. 稍等片刻,查找类似于以下内容的消息;它表明 Pod 已准备就绪

    NAME                READY     STATUS      RESTARTS   AGE
    keycloak-1-deploy   0/1       Completed   0          1h
    keycloak-1-l9kdx    1/1       Running     0          1h
  5. 服务器配置完成后,输入以下命令以查找 Keycloak URL

    KEYCLOAK_URL=https://$(oc get route keycloak --template='{{ .spec.host }}') &&
    echo "" &&
    echo "Keycloak:                 $KEYCLOAK_URL" &&
    echo "Keycloak Admin Console:   $KEYCLOAK_URL/admin" &&
    echo "Keycloak Account Console: $KEYCLOAK_URL/realms/myrealm/account" &&
    echo ""
如果您最终想要多个服务器副本,请参阅扩展指南。

请记住这些 URL,因为在本指南中您将需要它们。帐户控制台的 URL 现在无法使用,因为您需要先创建 Realm。

登录到管理控制台

  1. 转到 Keycloak 管理控制台。

  2. 使用您之前创建的用户名和密码登录。

创建 Realm

Keycloak 中的 Realm 相当于租户。每个 Realm 都允许管理员创建隔离的应用程序和用户组。最初,Keycloak 包括一个名为 master 的 Realm。仅使用此 Realm 管理 Keycloak,而不要用于管理任何应用程序。

使用以下步骤创建第一个 Realm。

  1. 打开 Keycloak 管理控制台。

  2. 单击当前 Realm 旁边的 创建 Realm

  3. Realm 名称 字段中输入 myrealm

  4. 单击创建

Add realm
图 1. 添加 Realm

创建用户

最初,Realm 没有用户。使用以下步骤创建用户

  1. 确认您仍然在 myrealm Realm 中,该 Realm 位于 当前 Realm 旁边。

  2. 单击左侧菜单中的 用户

  3. 单击创建新用户

  4. 在表单中填写以下值

    • 用户名myuser

    • 名字:任意名字

    • 姓氏:任意姓氏

  5. 单击创建

Create user
图 2. 创建用户

此用户需要密码才能登录。要设置初始密码

  1. 单击页面顶部的 凭据

  2. 设置密码 表单中填写密码。

  3. 临时 切换为 关闭,以便用户在首次登录时无需更新此密码。

Set password
图 3. 设置密码

登录到帐户控制台

您现在可以登录到帐户控制台以验证此用户配置是否正确。

  1. 打开 Keycloak 帐户控制台。

  2. 使用 myuser 和您之前创建的密码登录。

作为帐户控制台中的用户,您可以管理您的帐户,包括修改您的个人资料、添加双因素身份验证以及包含身份提供商帐户。

Keycloak Account Console

保护第一个应用程序

要保护第一个应用程序,您首先需要向您的 Keycloak 实例注册该应用程序

  1. 打开 Keycloak 管理控制台。

  2. 单击 当前 Realm 旁边的 myrealm

  3. 单击 客户端

  4. 单击创建客户端

  5. 在表单中填写以下值

    • 客户端类型OpenID Connect

    • 客户端 IDmyclient

      Add client
      图 4. 添加客户端
  6. 单击下一步

  7. 确认 标准流程 已启用。

  8. 单击下一步

  9. 登录设置 下进行以下更改。

    • 有效的重定向 URI 设置为 https://keycloak.java.net.cn/app/*

    • Web Origin 设置为 https://keycloak.java.net.cn

  10. 单击保存

Update client
图 5. 更新客户端]

要确认客户端已成功创建,您可以使用 Keycloak 网站上的 SPA 测试应用程序。

  1. 打开 https://keycloak.java.net.cn/app/

  2. Keycloak URL 更改为您的 Keycloak 实例的 URL。

  3. 单击保存

  4. 单击登录以使用您之前启动的 Keycloak 服务器对该应用程序进行身份验证。

下一步

在生产环境中运行 Keycloak 之前,请考虑以下操作

  • 切换到生产就绪的数据库,例如 PostgreSQL。

  • 使用您自己的证书配置 SSL。

  • 将管理员密码切换为更安全的密码。

有关更多信息,请参阅服务器指南

在此页上