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 現在無法運作,因為您需要先建立 realm。

登入管理控制台

  1. 前往 Keycloak 管理控制台。

  2. 使用您先前建立的使用者名稱和密碼登入。

建立 realm

Keycloak 中的 realm 相當於一個租戶。每個 realm 都允許管理員建立隔離的應用程式和使用者群組。最初,Keycloak 包含一個名為 master 的單一 realm。請僅使用此 realm 來管理 Keycloak,而不要用來管理任何應用程式。

使用這些步驟來建立第一個 realm。

  1. 開啟 Keycloak 管理控制台。

  2. 按一下master realm旁邊的 Keycloak,然後按一下建立 Realm

  3. Realm 名稱欄位中輸入 myrealm

  4. 按一下建立

Add realm

建立使用者

最初,realm 沒有使用者。使用這些步驟建立使用者

  1. 確認您仍然在 myrealm realm 中,它會顯示在 管理 這個詞的上方。

  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 設定為 https://keycloak.dev.org.tw/app/*

    • 網頁來源設定為 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。

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

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

在本頁中