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 ポッドと関連リソースをプロビジョニングします。このプロセスの一環として、OpenShift は Keycloak サーバーイメージをプルしようとします。この操作は、ネットワーク接続によっては時間がかかる場合があります。

  3. Keycloak がプロビジョニングされていることを確認するには、次のコマンドを実行します

    oc get pods
  4. しばらくすると、次のようなメッセージを探してください。これはポッドの準備ができたことを示しています

    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. [現在のレルム] の横にある [レルムを作成] をクリックします。

  3. [レルム名] フィールドに myrealm と入力します。

  4. [作成] をクリックします。

Add realm
図 1. レルムを追加

ユーザーを作成

当初、レルムにはユーザーがいません。次の手順に従ってユーザーを作成します

  1. [現在のレルム] の横にある myrealm レルムにまだいることを確認します。

  2. 左側のメニューの [ユーザー] をクリックします。

  3. [新しいユーザーを作成] をクリックします。

  4. フォームに次の値を入力します

    • ユーザー名: myuser

    • : 任意の名前

    • : 任意の姓

  5. [作成] をクリックします。

Create user
図 2. ユーザーを作成

このユーザーがログインするにはパスワードが必要です。最初のパスワードを設定するには

  1. ページ上部の [認証情報] をクリックします。

  2. [パスワードを設定] フォームにパスワードを入力します。

  3. [一時的] を [オフ] に切り替えて、ユーザーが最初のログイン時にこのパスワードを更新する必要がないようにします。

Set password
図 3. パスワードを設定

アカウントコンソールにログイン

これでアカウントコンソールにログインして、このユーザーが正しく構成されていることを確認できます。

  1. Keycloak アカウントコンソールを開きます。

  2. myuser と先ほど作成したパスワードでログインします。

アカウントコンソールのユーザーとして、プロフィールの変更、二要素認証の追加、ID プロバイダーアカウントの追加など、アカウントを管理できます。

Keycloak Account Console

最初のアプリケーションを保護する

最初のアプリケーションを保護するには、まずアプリケーションを Keycloak インスタンスに登録することから始めます

  1. Keycloak 管理コンソールを開きます。

  2. [現在のレルム] の横にある myrealm をクリックします。

  3. [クライアント] をクリックします。

  4. [クライアントを作成] をクリックします

  5. フォームに次の値を入力します

    • クライアントタイプ: OpenID Connect

    • クライアント ID: myclient

      Add client
      図 4. クライアントを追加
  6. [次へ] をクリックします

  7. [標準フロー] が有効になっていることを確認します。

  8. [次へ] をクリックします。

  9. [ログイン設定] でこれらの変更を行います。

    • [有効なリダイレクト URI] を https://keycloak.dokyumento.jp/app/* に設定します。

    • [Web オリジン] を https://keycloak.dokyumento.jp に設定します

  10. [保存] をクリックします。

Update client
図 5. クライアントを更新]

クライアントが正常に作成されたことを確認するには、Keycloak Web サイトの SPA テストアプリケーションを使用できます。

  1. https://keycloak.dokyumento.jp/app/ を開きます。

  2. [Keycloak URL] を Keycloak インスタンスの URL に変更します。

  3. [保存] をクリックします。

  4. [サインイン] をクリックして、先ほど起動した Keycloak サーバーを使用してこのアプリケーションを認証します。

次のステップ

Keycloak を本番環境で実行する前に、次のアクションを検討してください

  • PostgreSQL などの本番環境対応データベースに切り替えます。

  • 独自の証明書で SSL を構成します。

  • 管理者パスワードをより安全なパスワードに切り替えます。

詳細については、サーバーガイドを参照してください。

このページについて