連載
» 2017年10月04日 05時00分 公開

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

[茂木昂士,株式会社日立製作所]

サンプルアプリケーションでSSO機能を確認する

サンプルアプリケーションのダウンロード

 Keycloakのダウンロードサイトから「Old examples」という名前のZIPファイルをダウンロードします。他に「Quickstarts distribution」という名前のファイルもありますが、Old examplesは設定が簡単で内容もシンプルなので、今回はこちらを使用します。

サンプルアプリケーションの構成

 今回は「keycloak-examples-3.2.0.Final/preconfigured-demo」以下にあるアプリケーションを利用して、KeycloakによるSSOの機能を確認します。これらのアプリケーションはKeycloakを実行しているWildfly上で動作させるため、別途APサーバを用意する必要はありません。

 今回使用するサンプルアプリケーションは「product-app」「customer-app」「database-service」の3つです。

  • product-app/customer-app

 product-appとcustomer-appは、それぞれWebブラウザからアクセスするアプリケーションです。どちらも「Keycloakクライアントアダプター」によってアクセスが制限されており、特定のURLにアクセスするためには、Keycloakからの認可情報が必要になります。また、同じくKeycloakクライアントアダプターでアクセスが制限されたdatabase-serviceアプリケーションから情報を取得し、その内容をWebブラウザ上に表示します。

  • database-service

 database-serviceは、「/customers」「/products」というエンドポイントを提供するAPIサーバとして動作します。database-serviceもKeycloakによってアクセスが制限されており、Keycloakから発行されたアクセストークンが付いたアクセスにのみレスポンスを返します。

サンプルアプリケーション起動前の準備

 サンプルアプリケーションを起動する前に、Keycloakに対して以下の設定を行います。

  • (1)Keycloakクライアントアダプターのインストール

 今回のサンプルアプリケーションは、Keycloakの「Wildflyアダプター」を利用します。そのため、Keycloakに付属するWildflyに、クライアントアダプターをインストールする必要があります。Wildflyアダプターは、Keycloakのダウンロードサイトからダウンロードします。今回は「keycloak-wildfly-adapter-dist-3.2.0.Final.zip」(Wildfly 9/10向けのクライアントアダプター)が必要になります。ダウンロードしたファイルは、Keycloakのディレクトリで解凍します。

# <keycloak.home>は適宜変更してください。
$ cp keycloak-wildfly-adapter-dist-3.2.0.Final.zip <keycloak.home>
$ cd <keycloak.home>
$ unzip keycloak-wildfly-adapter-dist-3.2.0.Final.zip

 ファイルを解凍後に以下のコマンドを実行して、WildflyサーバにKeycloakクライアントアダプターをインストールします。

$ ./bin/jboss-cli.sh --file=bin/adapter-install-offline.cli

 これでクライアントアダプターのインストールが完了しました。

  • (2)アプリケーション情報のインポート

 サンプルアプリケーションを起動する前には、これらアプリケーションの情報をKeycloakに登録しておく必要があります。サンプルケーションには「testrealm.json」というファイルが付属していますが、これはサンプルアプリケーション向けのKeycloak設定内容をエクスポートしたものになります。このファイルをKeycloakにインポートします。

 ファイルをインポートするには、まず、Keycloakの「Administration Console」にログインし、画面左上の「Master」と表示されている部分にマウスを移動します。すると「Add realm」というボタンが表示されるので、これをクリックして「Realm」作成画面に移動します。

 Realm作成画面で「Import」メニューからサンプルアプリケーションに付属している「preconfigured-demo/testrealm.json」ファイルを選択し、設定項目をインポートします(画面3)。

画面3 画面3 「Realm」作成画面の「Import」メニューから「testrealm.json」ファイルをインポートする

 これでサンプルアプリケーションの設定が完了しました。

サンプルアプリケーションの起動

 ここまでの設定が完了したら、いよいよサンプルアプリケーションを実行します。サンプルアプリケーションは、Mavenで下記のコマンドを実行することでデプロイできます。

$ mvn wildfly:deploy

 Mavenでのデプロイが完了したら、各サンプルアプリケーションへのアクセスを確認します。Webブラウザから以下のURLへアクセスしてみてください。なお、database-serviceだけは「Unauthorized」と表示されます。

アプリケーション URL
product-app http://localhost:8080/product-portal/
customer-app http://localhost:8080/customer-portal/
database-service http://localhost:8080/database/

 ここまでで、サンプルアプリケーションの準備が終わりました。次は実際にアプリケーションにアクセスし、Keycloakによる認可処理の流れを確認していきます。

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。