サンプルアプリケーションでKeycloakのSSO動作を確認してみよう:Keycloak超入門(2)(2/3 ページ)
本連載では、近年注目されている認証プロトコル「OpenID Connect」をサポートするオープンソースのシングルサインオン(SSO)ソフトウェア「Keycloak」の活用方法を解説していきます。今回は、サンプルアプリケーションを使って、KeycloakによるSSOの動作を確認してみます。
サンプルアプリケーションで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)。
これでサンプルアプリケーションの設定が完了しました。
サンプルアプリケーションの起動
ここまでの設定が完了したら、いよいよサンプルアプリケーションを実行します。サンプルアプリケーションは、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 © ITmedia, Inc. All Rights Reserved.
関連記事
- なぜ「シングルサインオン」が必要なのか?
企業でのWebサービスの実現が具体的になるにつれ、パスワード/IDマネジメントが重視されるようになり、「シングル・サインオン」がますます注目を集めている。この連載では、シングル・サインオンの実践ステップなど具体的な考え方を紹介する。また、メタディレクトリやLDAPなど「ディレクトリ統合」をキーワードとしてシングル・サインオンを実現するための技術を分かりやすく解説する。(編集部) - 第1回 もはや企業のID管理で避けては通れない「IDaaS」とは?
これまで社内設置が当たり前だったアイデンティティ(ID)管理/認証システム。でも「クラウド」「モバイル」に代表される激烈な変化に対応できる、と本当に思っていますか? ID管理/シングルサインオンの新たな選択肢「IDaaS」について解説する連載開始! - 強力なSSOを実現するXML認証・認可サービス(SAML)
- OpenIG、OpenDJと連携したOpenAMの新機能
今回は、OpenAMの姉妹製品で既存アプリケーションを改修せずにシングルサインオンを可能にする「OpenIG」と、OpenAMのデフォルトデータストアである「OpenDJ」について解説します。