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/latest/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 现在无法正常工作,因为您需要先创建领域。

登录管理控制台

  1. 转到 Keycloak 管理控制台。

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

创建领域

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

请按照以下步骤创建第一个领域。

  1. 打开 Keycloak 管理控制台。

  2. 单击 master realm 旁边的 Keycloak,然后单击 Create Realm

  3. Realm name 字段中输入 myrealm

  4. 单击 Create

Add realm

创建用户

最初,领域没有用户。请按照以下步骤创建用户

  1. 验证您是否仍然处于 myrealm 领域,该领域显示在单词 Manage 上方。

  2. 单击左侧菜单中的 Users

  3. 单击 Create new user

  4. 使用以下值填写表单

    • Username: myuser

    • First name: 任何名字

    • Last name: 任何姓氏

  5. 单击 Create

Create user

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

  1. 单击页面顶部的 Credentials

  2. 使用密码填写 Set password 表单。

  3. Temporary 切换到 Off,这样用户在首次登录时就不需要更新此密码。

Set password

登录帐户控制台

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

  1. 打开 Keycloak 帐户控制台。

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

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

Keycloak Account Console

保护第一个应用程序

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

  1. 打开 Keycloak 管理控制台。

  2. 单击左上角的单词 master,然后单击 myrealm

  3. 单击 Clients

  4. 单击 Create client

  5. 使用以下值填写表单

    • Client type: OpenID Connect

    • Client ID: myclient

      Add Client
  6. 单击 Next

  7. 确认 Standard flow 已启用。

  8. 单击 Next

  9. Login settings 下进行以下更改。

    • Valid redirect URIs 设置为 http://keycloak.java.net.cn/app/*

    • Web origins 设置为 http://keycloak.java.net.cn

  10. 单击 Save

Update Client

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

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

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

  3. 单击 Save

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

采取下一步

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

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

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

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

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

本页内容