本連載では、近年注目されている認証プロトコル「OpenID Connect」をサポートするオープンソースのシングルサインオン(SSO)ソフトウェア「Keycloak」の活用方法を解説していきます。今回は、サンプルアプリケーションを使って、KeycloakによるSSOの動作を確認してみます。
連載第2回目となる今回は「Keycloak」サーバを起動して、Keycloakが提供するサンプルアプリケーションを実行し、シングルサインオン(SSO)の動作を確認してみます。確認に利用したKeycloak、サンプルアプリケーションのバージョンは「3.2.0.Final」です。
今回はCent OS 7.2 64bitを使用しますが、他のLinux系OSやWindows OS上でも実行可能です。また、Keycloakのサンプルアプリケーションをビルド、デプロイするには「Java Development Kit(JDK)」および「Maven」が必要になりますので、適宜インストールを行ってください。
まずは、Keycloakを起動し、「Administration Console」(Keycloakの設定を行うWeb GUI)へアクセスするまでの手順を説明します。
Keycloakの本体は、ダウンロードサイト(http://www.keycloak.org/downloads.html)から「Standalone server distribution」を入手します。本稿ではバージョン「3.2.0.Final」を使用しています。
ダウンロードしたファイルには、Keycloakアプリケーションの他、Keycloakを実行するためのアプリケーション(AP)サーバ「Wildfly」と、デフォルトの設定ファイルが含まれているので、ダウンロードしたものをそのまま実行することが可能です。ダウンロードしたファイルを解凍後、Keycloakのディレクトリに移動して「./bin/standalone.sh」を実行することで、Keycloakサーバが起動します。
Keycloakサーバ起動後は「http://localhost:8080/auth」からアクセスできるようになります。なお、初回起動時には初期管理ユーザーを作成する必要があります。適当なユーザーを作成してください(画面1)。
デフォルト設定でKeycloakを起動した場合は、ローカルの「http://localhost:8080/auth」からのみアクセスすることができます。外部のリモートマシンからはアクセスできません。Keycloakを起動したサーバ以外のマシンからWebブラウザでリモートアクセスする場合は、「bin/standalone.sh」を実行する際、以下のように「-b」オプションを付けて起動する必要があります。
$ ./bin/standalone.sh -b 0.0.0.0
また、初期管理ユーザーの作成画面も「http://localhost:8080/auth」でアクセスした場合にのみ表示されます。KeycloakをインストールしたサーバにWebブラウザ環境がない場合には、「bin/add-user-keycloak.sh」スクリプトで初期管理ユーザーを追加することができます。
$ ./bin/add-user-keycloak.sh --user admin --password password
初期ユーザー登録後、「Administration Console」をクリックすると、ログイン画面が表示されます。ここで、初回起動時に作成した初期ユーザーのユーザー名とパスワードを入力すると、Keycloakにログインすることができます(画面2)。
これでKeycloakサーバの起動が確認できました。次はサンプルアプリケーションの準備を行います。
Copyright © ITmedia, Inc. All Rights Reserved.