Keycloakクライアントアダプターを利用してAPIサービスを構築してみようKeycloak超入門(3)(4/4 ページ)

» 2017年11月08日 05時00分 公開
[茂木昂士株式会社日立製作所]
前のページへ 1|2|3|4       

アプリケーションの動作確認

 必要なアプリケーションが起動したら、ここまで作成してきたアプリケーションの動作を確認していきます。作成したアプリケーションがKeycloakと連携していること、ユーザーのロールによるアクセス制御が有効になっていることを確認します。

ログイン

 まずは、クライアントアプリケーションにアクセスします。Webブラウザから「http://localhost:9000/」にアクセスします。そして、Keycloakで保護されたパスにアクセスするため「Start Application」をクリックしてください。

 「Start Application」をクリックすると、Keycloakのログイン画面にリダイレクトされます。このログイン画面から、登録したユーザー(user01またはadmin)でログインします。まずはadminユーザーでログインしてみましょう(画面9)。

画面9 画面9 Keycloakのログイン画面からadminユーザーでログインする

 ログインに成功すると、ログインしたユーザーの名前やロールが表示されます(画面10)。また、クライアントアプリケーションが内部でアクセスした「/service/user」および「/service/admin」へのAPIリクエスト結果が表示されます。セッションにログイン情報が保存されているため、クライアントアプリケーションの「/app/user」や「/app/admin」にもそのままアクセスできるようになっています。

画面10 画面10 ログインに成功すると、ログインしたユーザーの名前やロールが表示される

アクセス制御

 次は、APIサーバおよびクライアントアプリケーションのアクセス制御を確認します。今回のアプリケーションでは、adminユーザーは全てのAPIを実行でき、全てのページを表示できるようになっています。

 一方、user01ユーザーはAPIサーバの「/service/admin」APIの実行と、クライアントアプリケーションの「/app/admin」ページへのアクセスが制限される設定になっています。画面下部のボタンからログアウトして、今度はuser01としてログインしてみましょう。

 user01ユーザーでログインすると、ページへのアクセスは許可されているので表示されますが、「/service/admin」へのリクエストが失敗しているためAdmin Requestの結果が表示されません(画面11)。

画面11 画面11 user01でのログイン時。ページへのアクセスは許可されているが、「/service/admin」へのリクエストは許可されていない

 このとき、APIアクセスの失敗により、クライアントアプリケーションでは以下のようなエラーログが表示されます。

org.springframework.web.client.HttpClientErrorException: 403 Forbidden

 また、この状態で「/app/admin」にアクセスすると、権限が足りないためエラーページが表示されます(画面12

画面12 画面12 「/app/admin」にアクセスしても、権限が足りないためエラーページが表示される(画面はSpring Frameworkデフォルトのエラーページ)

 このように、ログインしたユーザーが持つロールによって、クライアントアプリケーション、APIサーバの両方でアクセス制御ができることが確認できました。

 次回は、Keycloakにおけるクラスタリングについて紹介します。

筆者紹介

茂木 昂士(もぎ たかし)

株式会社日立製作所 OSSソリューションセンタ所属。これまではソフトウェアエンジニアとしてストレージやサーバの管理ソフトウェア開発に従事してきた。現在は、主にアイデンティティー管理OSSやAPI管理OSSの検証、導入支援を行っている。


前のページへ 1|2|3|4       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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