Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
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
Próxima SlideShare
Cargando en…5
×

Keycloak で SSO #渋谷java

4.089 visualizaciones

Publicado el

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

Publicado en: Software
  • Sé el primero en comentar

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

×