最新はこちらをクリックこのガイドは、KeycloakのレガシーなWildFlyディストリビューション用です。チェックしてください。ガイドの概要このガイドの目的は、Keycloakサーバーの初回起動の前に完了する必要があるいくつかの手順について説明することです。Keycloakをテストしたいだけの場合は、組み込みのローカル専用のデータベースでそのまま実行する方がよいでしょう。実際にプロダクション環境にデプロイしたい場合は、まずどのようにランタイム(スタンドアローン・モードまたはドメインモード)でサーバー設定を管理するか決定して、Keycloakの共有データベースを設定し、暗号化とHTTPSの設定を行い、最後にKeycloakをセットアップしてクラスター内で起動する必要があります。このガイドは、Keycloakサーバーをデプロイする前に、起動に先んじて定義と設定が必要なすべての手順を、ひとつひとつ説明していきます。Serverに基づいていて、Keycloakの設定はWildFlyの設定項目と密接に関わっています。そのためこのガイドでは、詳細な説明について、このチュートリアルとは別の外部ドキュメントを紹介することがあります。その点は留意ください。推奨される追加の外部ドキュメントKeycloakはWildFlyアプリケーション・サーバーに追加構築されたもので、Infinispan(キャッシュのため)およびHibernate(永続化のため)のようなサブプロジェクトのひとつです。このガイドでは、基本的なインフラ構築レベルの設定のみ説明します。したがって、是非WildFlyおよびそのサブプロジェクトのドキュメントを熟読することをお勧めします。ドキュメントへのリンクは以下のとおりです。DocumentationソフトウェアのインストールKeycloakのインストールは、ダウンロードして解凍するだけです。この章では、配布物のディレクトリー構造とシステム要件について説明します。サーバーをインストールするために存在します。JREzipまたはgzip、およびtarRAM512M以上ディスクスペース1G以上PostgreSQL、MySQL、Oracleなどの共有外部データベース。Keycloakをクラスターで実行する場合は、外部共有データベースが必要です。詳細については、このガイドのデータベース設定のセクションを参照してください。マルチキャストなしでもクラスターを構成できますが、多くの設定変更が必要になります。詳しくは、このガイドのクラスタリングセクションを参照してください。使用することをお勧めします。エントロピー不足が原因でKeycloakが固まるのを防ぐことができます。KeycloakサーバーのインストールKeycloakサーバーには、ダウンロード可能な2つの配布物があります。keycloak-17.0.1.[zip|tar.gz]このファイルは、サーバーのみの配布物です。Keycloakサーバーを実行するためのスクリプトとバイナリー以外は何も含まれていません。keycloak-overlay-17.0.1.[zip|tar.gz]このファイルは、既存のWildFlyディストリビューションの上にKeycloakサーバーをインストールするために使用できるWildFlyアドオンです。アプリケーションとKeycloakを同じサーバー・インスタンスで動作させたいというユーザーには対応していません。ファイル上で実行します。Packをインストールするには、別のサーバー・インスタンスにインストールする必要があります。あなたのWildFlyディストリビューションのルート・ディレクトリーに移動します。ファイルを解凍してください。シェルでbinディレクトリーを開きます。重要なディレクトリサーバー配布物の中で重要なディレクトリを以下に示します。bin/サーバーの起動またはサーバー上でその他管理操作を行う、さまざまなスクリプトが含まれています。domain/Keycloakをドメインモードで実行する場合の、設定ファイルとワーキング・ディレクトリーが含まれています。modules/サーバー上で使用されるすべてのJavaライブラリーです。standalone/Keycloakをスタンドアローン・モードで実行する場合の、設定ファイルとワーキング・ディレクトリーが含まれています。standalone/deployments/Keycloakの拡張を作成する場合、ここに配置することができます。themes/このディレクトリーには、サーバーによって表示されるUI画面を表示するために使用されるすべてのHTML、スタイルシート、JavaScriptファイル、および画像が含まれます。ここでは、既存のテーマを変更したり、独自のテーマを作成したりすることができます。動作モードの使い方プロダクション環境にKeycloakを導入する前に、どのタイプの動作モードを使用するかを決める必要があります。Keycloakをクラスター内で実行するか?サーバーの設定を一元的に管理したいか?動作モードの選択は、データベースの設定やキャッシングの設定、さらにはサーバーの起動方法にも影響します。KeycloakはWildFlyアプリケーション・サーバー上に構築されています。このガイドでは、基本的な特定のモードでのデプロイメントについて説明します。Documentationを参照してください。スタンドアローン・モードの使用スタンドアローン動作モードは、サーバーに1つのKeycloakサーバー・インスタンスを起動する場合にのみ有効です。クラスター構成には使用できません。キャッシュは分散されておらずローカル専用です。スタンドアローン・モードは単一障害点となりえるので、プロダクション環境での使用はお勧めしません。スタンドアローン・モードのサーバーがダウンした場合、ユーザーはログインできなくなります。そのため、このモードはテストおよびKeycloakの機能を試す目的にのみ有効です。スタンドアローン・モードでの起動スタンドアローン・モードでサーバーを実行する場合、使用するオペレーティング・システムに応じて、サーバーを起動するために必要な特定のスクリプトがあります。ディレクトリーにあります。スタンドアローン起動スクリプトサーバーを起動するには下記を実行します。...\bin\standalone.batスタンドアローン・モード構成このガイドの大半は、Keycloakの基盤レベルの設定について説明します。このレベルの設定は、Keycloakが構築されたアプリケーション・サーバーに特化した設定ファイル内に定義されます。このファイルはKeycloakのコンポーネントに特化した非基盤レベルの設定にも使用されます。スタンドアローン設定ファイルサーバーの実行中にこのファイルに変更を加えても、反映されず、サーバーに上書きされる可能性があります。その場合は、代わりにWildFlyのwebコンソールまたはコマンドライン・スクリプトを使用します。Documentationを参照してください。スタンドアローン・クラスター・モードの使用スタンドアローン・クラスター動作モードは、クラスター内でKeycloakを実行するときに適用します。このモードでは、サーバー・インスタンスを実行する各マシンにKeycloakの配布物のコピーが保存されている必要があります。このモードは、最初は非常に簡単にデプロイできますが、後でかなり煩雑になる可能性があります。設定を変更するには、各マシンの配布物を修正します。大規模なクラスターの場合、時間がかかり、エラーも発生しやすくなります。スタンドアローン・クラスター設定この配布物には、クラスター内で実行するためのアプリケーション・サーバーの設定ファイルが含まれており、その大半は設定が済んでいます。ネットワーク、データベース、キャッシュ、およびディスカバリーのための基盤設定がすべて含まれています。この設定だけでは足りません。共有データベース接続を設定せずに、クラスター内でKeycloakを実行することはできません。クラスターのフロントに何らかのロードバランサーを配備する必要があります。このガイドのクラスタリングとデータベースのセクションでは、これらのことを説明します。スタンドアローンHA設定サーバーの実行中にこのファイルに変更を加えても、反映されず、サーバーに上書きされる可能性があります。その場合は、代わりにWildFlyのwebコンソールまたはコマンドライン・スクリプトを使用します。Documentationを参照してください。スタンドアローン・クラスター・モードでの起動Keycloakを起動するには、スタンドアローン・モードで実行したのと同じ起動スクリプトを使用します。スタンドアローン・モードとの違いは、HA設定ファイルを指し示す追加フラグを渡すという点になります。スタンドアローン・クラスター起動スクリプトサーバーを起動するには下記を実行します。--server-config=standalone-ha.xmlドメイン・クラスター・モードの使用ドメインモードとは、サーバーの設定を一元管理し、クラスター内の各サーバーに反映させる方法です。標準モードでクラスターを実行すると、クラスターが大きくなり、煩雑化する可能性があります。設定を変更する必要があるたびに、クラスター内の各ノードでそれを実行します。ドメインモードの場合は、設定を保存しパブリッシュするために一元管理する場所を提供することで、この問題を解決できます。セットアップにはかなり手間がかかりますが、最終的にはその工数は見合うことになります。この機能はKeycloakが構成されるWildFlyアプリケーション・サーバーに組み込まれています。このガイドでは、ドメインモードの初歩的なところを説明します。Documentationを参照してください。ドメインモードを実行する基本的なコンセプトは、以下のとおりです。ドメイン・コントローラードメイン・コントローラーとは、クラスター内の各ノードの一般的な設定を保存、管理、パブリッシュする役割をもつ、プロセスのことです。クラスター内の各ノードが取得する設定を一元管理するデータベースでもあります。ホスト・コントローラーホスト・コントローラーの役割は、特定のマシン内のサーバー・インスタンスを管理することです。1つ以上のサーバー・インスタンスを実行できるよう、ホスト・コントローラーを設定することになります。ドメイン・コントローラーはクラスターを管理するために、各マシン内のホスト・コントローラーと連携します。実行プロセスを減らすために、ドメイン・コントローラーに、特定のマシン内のホスト・コントローラーとしての役割を担わせることもできます。ドメイン・プロファイルドメイン・プロファイルとは、サーバーを起動するために使用する、名前付きの設定セットです。ドメイン・コントローラーで、複数のドメイン・プロファイルを定義することができます。さまざまなサーバーがこのドメイン・プロファイルを使うことになります。サーバーグループサーバーグループとは、サーバーの集合体です。ひとつの集合体として管理、設定されます。サーバーグループに、ドメイン・プロファイルを割り当てることができます。そのドメイン・プロファイルはサーバーグループ内のサービスの設定として使用されます。ドメインモードでは、マスターノード上でドメイン・コントローラーが起動されます。クラスターの設定は、ドメイン・コントローラー内にあります。次に、ホスト・コントローラーがクラスター内の各マシンで起動されます。各ホスト・コントローラーのデプロイ設定では、そのマシンで起動するKeycloakサーバー・インスタンスの数を指定します。ホスト・コントローラーが起動すると、指定された数のKeycloakサーバー・インスタンスが起動します。これらのサーバー・インスタンスは、ドメイン・コントローラーから設定を取得します。Azureなどの一部の環境では、ドメインモードは適用されません。WildFlyのドキュメントを参照してください。ドメイン設定このガイドの各章では、データベース、HTTPネットワーク接続、キャッシュ、およびその他の基盤関連のさまざまな設定について説明します。Keycloakサーバーのドメイン・プロファイルとサーバーグループは、以下で定義されます。domain.xmlドメイン・コントローラーの実行中にこのファイルに変更を加えても、変更されず、サーバーに上書きされる可能性があります。その場合は、代わりにWildFlyのwebコンソールまたはコマンドライン・スクリプトを使用します。Documentationを参照してください。ファイルの特徴を確認していきましょう。XMLブロックでは、どのような設定にするかの大半を定義します。ネットワーク接続、キャッシュ、データベース接続などを設定します。プロファイルは、非クラスター構成のセットアップ用です。プロファイルは、クラスター構成のセットアップ用です。</socket-binding-groups>この設定では、各Keycloakサーバー・インスタンスによって開かれる、さまざまなコネクターのデフォルトポートマッピングを定義します。スイッチで上書きできる値です。以下のように上書きできます。XMLブロックにあります。VMのデフォルト起動引数が指定されます。サーバーグループにバインドされます。2つのホスト・コントローラー設定ファイルが付属しています。ドメイン・コントローラー、ロードバランサー、および1つのKeycloakサーバー・インスタンスを起動するように設定されています。ドメイン・コントローラーと通信し、1つのKeycloakサーバー・インスタンスを起動するように設定されています。ロードバランサーは必須サービスではありません。これは、開発マシン上でクラスタリングを簡単にテストできるようにするものです。プロダクション環境で使用可能ですが、使いたい別のハードウェアまたはソフトウェア・ベースのロードバランサーがあるなら、置き換えるかどうかを選択できます。エントリーをコメントアウトまたは削除します。</servers>このファイルのもう一つの興味深い点は、認証サーバー・インスタンスの宣言です。