Successfully reported this slideshow.
Your SlideShare is downloading. ×

Keycloak で SSO #渋谷java

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 32 Ad

More Related Content

Slideshows for you (20)

Similar to Keycloak で SSO #渋谷java (20)

Advertisement

Recently uploaded (20)

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

×