Kubernetes

在 Kubernetes 上开始使用 Keycloak

开始之前

确保您的机器或容器平台能够提供足够的内存和 CPU 来满足您所需的 Keycloak 使用量。有关如何开始进行生产规模调整的更多信息,请参见 CPU 和内存资源大小调整的概念

确保您已安装 Minikube,理想情况下,启用 Ingress 附加组件。

要检查是否启用了 Ingress 附加组件,请输入以下命令

minikube addons list

如果未启用 Ingress 附加组件,请输入以下命令以启用它

minikube addons enable ingress

启动 Keycloak

Keycloak QuickStarts 存储库包含一些示例文件,可帮助将 Keycloak 部署到 Kubernetes。

作为第一步,通过输入以下命令创建 Keycloak 部署和服务

kubectl create -f https://raw.githubusercontent.com/keycloak/keycloak-quickstarts/latest/kubernetes/keycloak.yaml

此命令在 Kubernetes 上启动 Keycloak,并创建一个初始管理员用户,用户名为 admin,密码为 admin

使用启用 Ingress 附加组件访问 Keycloak

现在,通过输入以下命令为 Keycloak 创建一个 Ingress

wget -q -O - https://raw.githubusercontent.com/keycloak/keycloak-quickstarts/latest/kubernetes/keycloak-ingress.yaml | \
sed "s/KEYCLOAK_HOST/keycloak.$(minikube ip).nip.io/" | \
kubectl create -f -

如果 wgetsed 不可用,请下载文件并手动编辑该文件,将 KEYCLOAK_HOST 替换为 keycloak.<minikube ip address>.nip.io

输入以下命令以查看 Keycloak URL

KEYCLOAK_URL=https://keycloak.$(minikube ip).nip.io &&
echo "" &&
echo "Keycloak:                 $KEYCLOAK_URL" &&
echo "Keycloak Admin Console:   $KEYCLOAK_URL/admin" &&
echo "Keycloak Account Console: $KEYCLOAK_URL/realms/myrealm/account" &&
echo ""

在没有 Ingress 的情况下访问 Keycloak

如果未启用 Ingress 附加组件,请在单独的 shell 中输入以下命令

minikube tunnel

您现在可以从以下 URL 访问 Keycloak

KEYCLOAK_URL=http://$(minikube ip):$(kubectl get services/keycloak -o go-template='{{(index .spec.ports 0).nodePort}}') &&
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 领域 旁边的 Keycloak,然后单击 创建领域

  3. 领域名称 字段中输入 myrealm

  4. 单击 创建

Add realm

创建用户

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

  1. 验证您是否仍在 myrealm 领域,该领域显示在单词 管理 上方。

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

  3. 单击 创建新用户

  4. 使用以下值填写表单

    • 用户名myuser

    • :任何名

    • :任何姓

  5. 单击 创建

Create user

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

  1. 单击页面顶部的 凭据

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

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

Set password

登录到帐户控制台

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

  1. 打开 Keycloak 帐户控制台。

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

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

Keycloak Account Console

保护第一个应用程序

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

  1. 打开 Keycloak 管理控制台。

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

  3. 单击 客户端

  4. 单击 创建客户端

  5. 使用以下值填写表单

    • 客户端类型OpenID Connect

    • 客户端 IDmyclient

      Add Client
  6. 单击 下一步

  7. 确认已启用 标准流程

  8. 单击 下一步

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

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

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

  10. 单击 保存

Update Client

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

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

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

  3. 单击 保存

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

迈出下一步

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

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

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

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

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

在本页上