Keycloakのクラスタ環境を構成してみよう:Keycloak超入門(4)(3/3 ページ)
本連載では、近年注目されている認証プロトコル「OpenID Connect」をサポートするオープンソースのシングルサインオン(SSO)ソフトウェア「Keycloak」の活用方法を解説していきます。今回は、Keycloakのクラスタ環境を構成する方法を解説します。
クラスタの動作を確認してみよう
mod_clusterおよびKeycloakが起動すると、Apache HTTPDサーバに対して自動的にKeycloakに対するプロキシ設定が行われます。プロキシ設定を確認するには、「mod_cluster_manager」を利用します。
httpdが動作しているサーバで「http://localhost:6666/mod_cluster-manager」にアクセスします(画面1)。
画面1の内容から、mod_clusterに2つのホストが認識されていることが分かります。この状態で、「http://localhost/auth」にアクセスすると、Keycloakの画面が表示されます。
この状態で画面操作を行いながらアクセスログを確認すると、リクエストが分散されていることが分かります。
- アクセスログ(keycloak-01)
127.0.0.1 - - [18/Dec/2017:16:58:46 +0900] "GET /auth/admin/realms HTTP/1.1" 200 5109 127.0.0.1 - - [18/Dec/2017:16:58:48 +0900] "GET /auth/admin/realms HTTP/1.1" 200 5109 127.0.0.1 - - [18/Dec/2017:16:58:51 +0900] "GET /auth/admin/realms/demo/client-templates HTTP/1.1" 200 2 127.0.0.1 - - [18/Dec/2017:16:58:51 +0900] "GET /auth/admin/realms HTTP/1.1" 200 5109 127.0.0.1 - - [18/Dec/2017:16:58:51 +0900] "GET /auth/admin/realms/demo/clients HTTP/1.1" 200 13788
- アクセスログ(keycloak-02)
127.0.0.1 - - [18/Dec/2017:16:58:48 +0900] "GET /auth/admin/realms/demo HTTP/1.1" 200 2436 127.0.0.1 - - [18/Dec/2017:16:58:48 +0900] "GET /auth/admin/realms/demo/clients?viewableOnly=true HTTP/1.1" 200 13788 127.0.0.1 - - [18/Dec/2017:16:58:50 +0900] "POST /auth/realms/master/protocol/openid-connect/token HTTP/1.1" 200 3319 127.0.0.1 - - [18/Dec/2017:16:58:50 +0900] "GET /auth/admin/realms/demo HTTP/1.1" 200 2436 127.0.0.1 - - [18/Dec/2017:16:58:50 +0900] "GET /auth/admin/realms/demo/clients/a8cbdfe1-23ff-4750-aadc-cc7fd41797b4 HTTP/1.1" 200 2672
次に、フェイルオーバー機能を試すために、片方のKeycloakサーバでプロセスを停止します。片方のプロセスを停止した場合でも、セッション情報などが共有されているため、引き続き同じセッションで接続できることが確認できます。
以上で2つのKeycloakサーバがクラスタ化されていることが確認できました。今回は単純な構成で構築を行いましたが、「マルチキャストが利用できない場合の構成」「複数データセンター間での構成」など、環境に合わせたさまざまな構成でクラスタ環境を構築できるようになっています。詳しくはKeycloakのドキュメントや、WildFlyのドキュメントを参照してください。
次回は、Keycloakで外部アイデンティティープロバイダーと連携する方法を解説します。
筆者紹介
茂木 昂士(もぎ たかし)
株式会社日立製作所 OSSソリューションセンタ所属。これまではソフトウェアエンジニアとしてストレージやサーバの管理ソフトウェア開発に従事してきた。現在は、主にアイデンティティー管理OSSやAPI管理OSSの検証、導入支援を行っている。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- なぜ「シングルサインオン」が必要なのか?
企業でのWebサービスの実現が具体的になるにつれ、パスワード/IDマネジメントが重視されるようになり、「シングル・サインオン」がますます注目を集めている。この連載では、シングル・サインオンの実践ステップなど具体的な考え方を紹介する。また、メタディレクトリやLDAPなど「ディレクトリ統合」をキーワードとしてシングル・サインオンを実現するための技術を分かりやすく解説する。(編集部) - 第1回 もはや企業のID管理で避けては通れない「IDaaS」とは?
これまで社内設置が当たり前だったアイデンティティ(ID)管理/認証システム。でも「クラウド」「モバイル」に代表される激烈な変化に対応できる、と本当に思っていますか? ID管理/シングルサインオンの新たな選択肢「IDaaS」について解説する連載開始! - 強力なSSOを実現するXML認証・認可サービス(SAML)
- OpenIG、OpenDJと連携したOpenAMの新機能
今回は、OpenAMの姉妹製品で既存アプリケーションを改修せずにシングルサインオンを可能にする「OpenIG」と、OpenAMのデフォルトデータストアである「OpenDJ」について解説します。