Kubernetes

在 Kubernetes 上開始使用 Keycloak

開始之前

請確保您的機器或容器平台能夠為您所期望的 Keycloak 使用量提供足夠的記憶體和 CPU。請參閱 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 realm 旁的 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

    • 用戶端 ID: myclient

      Add Client
  6. 按一下 下一步

  7. 確認 標準流程 已啟用。

  8. 按一下 下一步

  9. 登入設定 下進行以下變更。

    • 有效的重新導向 URI 設定為 https://keycloak.dev.org.tw/app/*

    • Web 來源 設定為 https://keycloak.dev.org.tw

  10. 按一下 儲存

Update Client

若要確認用戶端已成功建立,您可以使用 Keycloak 網站上的 SPA 測試應用程式。

  1. 開啟 https://keycloak.dev.org.tw/app/

  2. Keycloak URL 變更為您的 Keycloak 執行個體的 URL。

  3. 按一下 儲存

  4. 按一下 登入,以使用您先前啟動的 Keycloak 伺服器驗證此應用程式。

採取下一步

在您於生產環境中執行 Keycloak 之前,請考慮以下動作

  • 切換至可供生產環境使用的資料庫,例如 PostgreSQL。

  • 使用您自己的憑證設定 SSL。

  • 將管理員密碼切換為更安全的密碼。

如需更多資訊,請參閱伺服器指南

本頁面