検索
連載
Keycloak超入門(2):

サンプルアプリケーションでKeycloakのSSO動作を確認してみよう (1/3)

本連載では、近年注目されている認可プロトコル「OpenID Connect」をサポートするオープンソースのシングルサインオン(SSO)ソフトウェア「Keycloak」の活用方法を解説していきます。今回は、サンプルアプリケーションを使って、KeycloakによるSSOの動作を確認してみます。

PC用表示 関連情報
Share
Tweet
g+
LINE
Hatena
「Keycloak超入門」のインデックス

連載目次

 連載第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の使用方法

 まずは、Keycloakを起動し、「Administration Console」(Keycloakの設定を行うWeb GUI)へアクセスするまでの手順を説明します。

Keycloakの起動

 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)。

画面1
画面1 初期ユーザーの作成画面。Keycloakの初回起動時には管理ユーザーの作成が必要になる

【メモ】リモートマシンからKeycloakへアクセスする場合

 デフォルト設定で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


Keycloakへのログイン

 初期ユーザー登録後、「Administration Console」をクリックすると、ログイン画面が表示されます。ここで、初回起動時に作成した初期ユーザーのユーザー名とパスワードを入力すると、Keycloakにログインすることができます(画面2)。

画面2
画面2 Keycloakの「Administration Console」へのログイン画面。初回起動時に作成したユーザー名/パスワードを入力してログインする

 これでKeycloakサーバの起動が確認できました。次はサンプルアプリケーションの準備を行います。

       | 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

ページトップに戻る