Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Keycloak で SSO 
田邊 義真(たなべ よしまさ) 
@emaggame 
http://morec.at 
2014-12-13(土) 第九回 #渋谷java 1
2014-12-13(土) 第九回 #渋谷java 2 
アジェンダ 
● SSOの悩み 
● Keycloakとは 
● Keycloak導入 
● Keycloakデモ 
● Keycloakの個人的に思ういいところ 
● 本日のまとめ
2014-12-13(土) 第九回 #渋谷java 3 
SSOの悩み 
● 仕組み作りが難しい 
– 統一インターフェースを用意し、関連するアプリ 
ケーションすべてが利用する必要がある。既存のア 
プリケーションはユーザ情報の DB 変更発...
Keycloakとは 
● SSO認証フレームワーク+管理コンソール 
– http://keycloak.jboss.org 
– Javaで実装 
● OAuth 2.0, Open ID Connect, etc... 
● 豊富な管理 ...
Keycloak導入(サーバ) 
● Keycloakサーバ 
– 管理コンソールのデプロイ 
● WildFly 8, JBoss AS 7.1.1, JBoss EAP 6.x 
– 今後Tomcat, Jettyにもデプロイ可能になる予定...
Keycloak導入(クライアント) 
● 設定ファイルの用意 
– keycloak.json 
2014-12-13(土) 第九回 #渋谷java 6 
{ 
"realm": "demo", 
"realm­public­key": 
"...
Keycloak導入(クライアント) 
● warアプリケーション 
– 設定ファイル(WEB-INF/keycloak.json)の配置 
– デプロイ先のAPサーバにアダプタをインストール 
● JBoss AS7, WildFly 8, ...
Keycloak導入(クライアント) 
● スタンドアロンJavaアプリケーション 
– 設定ファイル(META-INF/keycloak.json)の配置 
– Keycloakが用意しているAPIだけでログイン可 
● KeycloakIn...
Keycloak導入(クライアント) 
● クライアントサイドJavaScript 
– 設定ファイル(keycloak.json)の配置 
– APIはKeycloakサーバから取得 
<script src="https://keycloa...
Keycloak導入(クライアント) 
● Node.js, RoR, Grails 
– 今後サポート予定 
2014-12-13(土) 第九回 #渋谷java 10
Keycloakデモ 
1. Keycloakで用意しているサンプル 
– Realm,ユーザ,ロールなどを一括で設定済み 
– 手順などは拙ブログでも紹介しています 
● http://morec.at/blog/2014/11/24/get...
Keycloakデモ 
2014-12-13(土) 第九回 #渋谷java 12
Keycloakデモ 
2014-12-13(土) 第九回 #渋谷java 13
Keycloakデモ 
demo というRealm を設定 
2014-12-13(土) 第九回 #渋谷java 14
Keycloakデモ 
4人のユーザ 
2014-12-13(土) 第九回 #渋谷java 15
Keycloakデモ 
demo Realm にたくさんのアプリケーションを登録 
2014-12-13(土) 第九回 #渋谷java 16
Keycloak導入(クライアント) 
customer-portal アプリケーション。 
Customer Listing はログインが必要なリソース 
2014-12-13(土) 第九回 #渋谷java 17
Keycloak導入(クライアント) 
Customer Listing にアクセスしようとすると、 
Keycloak が用意しているログインにリダイレクト 
2014-12-13(土) 第九回 #渋谷java 18
Keycloakデモ 
Keycloakでのログインを経由して 
Product Listing リソースにアクセスできるようになった 
2014-12-13(土) 第九回 #渋谷java 19
Keycloakデモ 
管理コンソールからもcustomer-portal にセッ 
ションが1つできていることを確認できる 
2014-12-13(土) 第九回 #渋谷java 20
Keycloakデモ 
誰がログインしているかもわかる 
2014-12-13(土) 第九回 #渋谷java 21
Keycloakデモ 
demo Realm に属する別のアプリケーションである Product Portal にアクセス。 
Product Listing はログインが必要なリソース 
2014-12-13(土) 第九回 #渋谷java 2...
Keycloakデモ 
ログインなしにアクセスできた! 
2014-12-13(土) 第九回 #渋谷java 23
Keycloakデモ 
ppprrroooddduuucccttt---pppooorrrtttaaalll にもセッションが生成されたことを確認できる
2014-12-13(土) 第九回 #渋谷java 24
Keycloakデモ(Social Login) 
Social login を有効にし、 
2014-12-13(土) 第九回 #渋谷java 25
Keycloakデモ(Social Login) 
... ... 
TwitterのAPI TTwwiitttteerrAAPPII KKKeeeyyyとAAAPPPIII SSSeeecccrrreeetttを入力するだけで...........
Keycloakデモ(Social Login) 
Twitterでログインボタンが出現 
2014-12-13(土) 第九回 #渋谷java 27
Keycloakデモ(Social Login) 
Twitterでログインできた! 
2014-12-13(土) 第九回 #渋谷java 28
Keycloakデモ(Social Login) 
ユーザも増えてる 
2014-12-13(土) 第九回 #渋谷java 29
Keycloakの個人的に思ういいところ 
2014-12-13(土) 第九回 #渋谷java 30 
● 導入が簡単! 
– まずはと自作ブログに導入してみました 
– 小さなアプリなので、少しのDB変更(ユーザーエン 
ティティ)とそれを参...
本日のまとめ 
● SSOの仕組みづくりは大変 
● Keycloakを利用することで、少なくとも統一 
した認証のインターフェースを用意できる 
2014-12-13(土) 第九回 #渋谷java 31 
● Keycloakは 
– Jav...
2014-12-13(土) 第九回 #渋谷java 32 
参考 
● Keycloakサイト 
– http://keycloak.jboss.org/ 
● ドキュメント 
– http://keycloak.jboss.org/docs
Nächste SlideShare
Wird geladen in …5
×

Keycloak で SSO #渋谷java

4.087 Aufrufe

Veröffentlicht am

2014-12-14 第九回 #渋谷java の LT 資料です。

Veröffentlicht in: Software
  • Als Erste(r) kommentieren

Keycloak で SSO #渋谷java

  1. 1. Keycloak で SSO 田邊 義真(たなべ よしまさ) @emaggame http://morec.at 2014-12-13(土) 第九回 #渋谷java 1
  2. 2. 2014-12-13(土) 第九回 #渋谷java 2 アジェンダ ● SSOの悩み ● Keycloakとは ● Keycloak導入 ● Keycloakデモ ● Keycloakの個人的に思ういいところ ● 本日のまとめ
  3. 3. 2014-12-13(土) 第九回 #渋谷java 3 SSOの悩み ● 仕組み作りが難しい – 統一インターフェースを用意し、関連するアプリ ケーションすべてが利用する必要がある。既存のア プリケーションはユーザ情報の DB 変更発生 – SSLクライアント証明書はユーザに導入する敷居が 高い(社内システムであれば一番有効?) ● APサーバ固有機能も利用できるが、SSO認証 が利用できるアプリケーションは同一ホスト内 にデプロイされたもののみ、といったような制 限がネック
  4. 4. Keycloakとは ● SSO認証フレームワーク+管理コンソール – http://keycloak.jboss.org – Javaで実装 ● OAuth 2.0, Open ID Connect, etc... ● 豊富な管理 RESTful API ● Social login(Twitter, Google, etc...) ● スペックリードはBill Burke氏 – RESTEasyのリードでもある 2014-12-13(土) 第九回 #渋谷java 4
  5. 5. Keycloak導入(サーバ) ● Keycloakサーバ – 管理コンソールのデプロイ ● WildFly 8, JBoss AS 7.1.1, JBoss EAP 6.x – 今後Tomcat, Jettyにもデプロイ可能になる予定 ● セッション情報を管理 – SSOを利用するアプリケーションはKeycloakサー バの提供するログインページにリダイレクトされる 2014-12-13(土) 第九回 #渋谷java 5
  6. 6. Keycloak導入(クライアント) ● 設定ファイルの用意 – keycloak.json 2014-12-13(土) 第九回 #渋谷java 6 { "realm": "demo", "realm­public­key": "MIGfMA...", "auth­server­url": "https://keycloak­server/ auth", "ssl­required": "external", "resource": "customer­portal", "credentials": { "secret": "ea16..." } }
  7. 7. Keycloak導入(クライアント) ● warアプリケーション – 設定ファイル(WEB-INF/keycloak.json)の配置 – デプロイ先のAPサーバにアダプタをインストール ● JBoss AS7, WildFly 8, Tomcat 6-8, Jetty 8-9 利用可 – Servletと統合。web.xmlに以下を設定 2014-12-13(土) 第九回 #渋谷java 7 <login­config> <auth­method> KEYCLOAK</auth­method> <realm­name> demo</realm­name> </login­config>
  8. 8. Keycloak導入(クライアント) ● スタンドアロンJavaアプリケーション – 設定ファイル(META-INF/keycloak.json)の配置 – Keycloakが用意しているAPIだけでログイン可 ● KeycloakInstalled#login – GUI環境の有無も判断し、以下のいずれかが選ばれる。直接呼 び出すのもOK ● GUI環境有: ブラウザでログイン(loginDesktop) ● GUI環境無: マニュアルログイン(loginManual) 2014-12-13(土) 第九回 #渋谷java 8
  9. 9. Keycloak導入(クライアント) ● クライアントサイドJavaScript – 設定ファイル(keycloak.json)の配置 – APIはKeycloakサーバから取得 <script src="https://keycloak­server/ auth/js/keycloak.js"></script> 2014-12-13(土) 第九回 #渋谷java 9
  10. 10. Keycloak導入(クライアント) ● Node.js, RoR, Grails – 今後サポート予定 2014-12-13(土) 第九回 #渋谷java 10
  11. 11. Keycloakデモ 1. Keycloakで用意しているサンプル – Realm,ユーザ,ロールなどを一括で設定済み – 手順などは拙ブログでも紹介しています ● http://morec.at/blog/2014/11/24/getting-started-wit h-keycloak 2. Social Login 2014-12-13(土) 第九回 #渋谷java 11 – Twitter
  12. 12. Keycloakデモ 2014-12-13(土) 第九回 #渋谷java 12
  13. 13. Keycloakデモ 2014-12-13(土) 第九回 #渋谷java 13
  14. 14. Keycloakデモ demo というRealm を設定 2014-12-13(土) 第九回 #渋谷java 14
  15. 15. Keycloakデモ 4人のユーザ 2014-12-13(土) 第九回 #渋谷java 15
  16. 16. Keycloakデモ demo Realm にたくさんのアプリケーションを登録 2014-12-13(土) 第九回 #渋谷java 16
  17. 17. Keycloak導入(クライアント) customer-portal アプリケーション。 Customer Listing はログインが必要なリソース 2014-12-13(土) 第九回 #渋谷java 17
  18. 18. Keycloak導入(クライアント) Customer Listing にアクセスしようとすると、 Keycloak が用意しているログインにリダイレクト 2014-12-13(土) 第九回 #渋谷java 18
  19. 19. Keycloakデモ Keycloakでのログインを経由して Product Listing リソースにアクセスできるようになった 2014-12-13(土) 第九回 #渋谷java 19
  20. 20. Keycloakデモ 管理コンソールからもcustomer-portal にセッ ションが1つできていることを確認できる 2014-12-13(土) 第九回 #渋谷java 20
  21. 21. Keycloakデモ 誰がログインしているかもわかる 2014-12-13(土) 第九回 #渋谷java 21
  22. 22. Keycloakデモ demo Realm に属する別のアプリケーションである Product Portal にアクセス。 Product Listing はログインが必要なリソース 2014-12-13(土) 第九回 #渋谷java 22
  23. 23. Keycloakデモ ログインなしにアクセスできた! 2014-12-13(土) 第九回 #渋谷java 23
  24. 24. Keycloakデモ ppprrroooddduuucccttt---pppooorrrtttaaalll にもセッションが生成されたことを確認できる 2014-12-13(土) 第九回 #渋谷java 24
  25. 25. Keycloakデモ(Social Login) Social login を有効にし、 2014-12-13(土) 第九回 #渋谷java 25
  26. 26. Keycloakデモ(Social Login) ... ... TwitterのAPI TTwwiitttteerrAAPPII KKKeeeyyyとAAAPPPIII SSSeeecccrrreeetttを入力するだけで......... 2014-12-13(土) 第九回 #渋谷java 26
  27. 27. Keycloakデモ(Social Login) Twitterでログインボタンが出現 2014-12-13(土) 第九回 #渋谷java 27
  28. 28. Keycloakデモ(Social Login) Twitterでログインできた! 2014-12-13(土) 第九回 #渋谷java 28
  29. 29. Keycloakデモ(Social Login) ユーザも増えてる 2014-12-13(土) 第九回 #渋谷java 29
  30. 30. Keycloakの個人的に思ういいところ 2014-12-13(土) 第九回 #渋谷java 30 ● 導入が簡単! – まずはと自作ブログに導入してみました – 小さなアプリなので、少しのDB変更(ユーザーエン ティティ)とそれを参照するものぐらいの修正です みました ● 管理APIが豊富なため、管理コンソールが気に 入らなければ気軽に自作できる – http://docs.jboss.org/keycloak/docs/1.1.0.Beta2 /rest-api/overview-index.html
  31. 31. 本日のまとめ ● SSOの仕組みづくりは大変 ● Keycloakを利用することで、少なくとも統一 した認証のインターフェースを用意できる 2014-12-13(土) 第九回 #渋谷java 31 ● Keycloakは – Javaユーザにとって導入の敷居が低い。たぶん... – 現状すでにひととおりの機能を揃えている
  32. 32. 2014-12-13(土) 第九回 #渋谷java 32 参考 ● Keycloakサイト – http://keycloak.jboss.org/ ● ドキュメント – http://keycloak.jboss.org/docs

×