Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Keycloakの紹介と最新開発動向

1,037 views

Published on

OSSセキュリティ技術の会第5回勉強会 Keycloakの紹介と最新開発動向

Published in: Software
  • DOWNLOAD FULL BOOKS, INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y3nhqquc } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Keycloakの紹介と最新開発動向

  1. 1. © Hitachi, Ltd. 2019. All rights reserved. 株式会社 日立製作所 中村 雄一 2019/06/07 Keycloakの紹介と最新開発動向 OSSセキュリティ技術の会第5回勉強会
  2. 2. © Hitachi, Ltd. 2019. All rights reserved. 1. Keycloakの概要 2. APIにおけるKeycloak 3. 開発動向 Contents 1
  3. 3. © Hitachi, Ltd. 2019. All rights reserved. 1. Keycloakの概要 2
  4. 4. © Hitachi, Ltd. 2019. All rights reserved. Keycloakとは 3 Red Hatを中心とするコミュニティで開発される ID情報を取り扱うOSSです。 LDAP Active Directory RDB 主要標準に対応したID連携 (Identity Federation) ソーシャルログイン (Identity Brokering) ID管理と認証 (Identity Management)
  5. 5. © Hitachi, Ltd. 2019. All rights reserved. ユースケース1: シングルサインオン Webアプリ ユーザ認証 エージェント型 Webサイトアクセス 認証情報連携 OIDC/SAML ライブラリ Webアプリ ユーザ認証 Webサイトアクセス 認証情報連携 Reverse Proxy (Apache mod_openidc) Webサイトアクセス (ユーザ属性付) Proxy型 Webアプリ側では、 ライブラリを使ってOpenID Connect/SAMLで Keycloakと連携する処理を作り込む Keycloakからは「クライアントアダプタ」を提供。 DBもしくは、LDAP・AD等と 連携して認証し認証結果を Webアプリに送付 Webアプリ側での作り込み は最小限 最近Keycloak用リバプロの 「Gatekeeper」がKeycloak コミュニティよりリリース
  6. 6. © Hitachi, Ltd. 2019. All rights reserved. ユースケース2: ソーシャルログイン 5 Webアプリ ユーザ認証 エージェント型での例 Webサイトアクセス 認証情報連携 OIDC/SAML ライブラリ 外部サイト KeycloakがOpenID Connectを 利用して、外部サイトの 認証画面にフォワード 認証結果 Proxy型でも同様にソーシャルログインに対応可
  7. 7. © Hitachi, Ltd. 2019. All rights reserved. 2. APIにおけるKeycloakの役割 6
  8. 8. © Hitachi, Ltd. 2019. All rights reserved. APIセキュリティの基本: 認証とアクセス制御 7 ユーザは誰? ⇒ユーザ認証 APIを使うアプリは誰? ⇒ クライアント認証 エンド ユーザ APIを利用する アプリ APIサーバ 誰が何をしていいの? ⇒アクセス制御 ブラウザやスマホ でアプリ利用 REST APIコール 認証方式 対応する認証 APIキー クライアント認証 OAuth/OpenID Connect クライアント認証+ユーザ認証 クライアント認証単独 「認証」が大前提 Keycloak
  9. 9. © Hitachi, Ltd. 2019. All rights reserved. APIキー認証 8 問題点: ・ 標準化されていない ・ エンドユーザを認証できない 近年のオープンAPIではOAuth/OpenID Connectが主流 ->API分野でKeycloakが注目
  10. 10. © Hitachi, Ltd. 2019. All rights reserved. OAuth2 と OpenID Connect 9 ・ KeycloakはOAuth/OpenID Connect両方に対応した認可サーバ アクセストークンを発行・管理 「アクセストークン」を発行してもらうためのプロトコル。「認可サーバ」が必要。 ユーザは誰? ⇒ユーザ認証 APIを使うアプリは誰? ⇒ クライアント認証 エンド ユーザ APIを利用する アプリ APIサーバ 誰が何をしていいの? ⇒アクセス制御 ブラウザやスマホ でアプリ利用 REST APIコール アクセストークン アクセストークンを 使って判断 認可 サーバ ・ OAuth2: - 基本的なプロトコル。自由度が高すぎセキュリティホールを作り込みやすい欠点 ・ OpenID Connect : - OAuthの上に認証情報(IDトークン)連携を追加 - OAuthもハードニングされている
  11. 11. © Hitachi, Ltd. 2019. All rights reserved. アクセストークンの例 10 { "jti": "c26a32c4-4b48-4c2f-a7da-3b9b8ecad652", "exp": 1535424101, "nbf": 0, "iat": 1535423801, "iss": "http://localhost:8080/auth/realms/provider", "aud": "broker", "sub": "e4b11e2e-9136-409b-8720-57463c627c10", "typ": "Bearer", "azp": "broker", "auth_time": 0, "session_state": "ac1767e2-2e30-4d44-b6f3-b77935a7a0bc", "acr": "1", "allowed-origins": [], "realm_access": { "roles": [ "read", "additional", "write" ] }, "name": "Takashi Mogi", "preferred_username": "mogi", "given_name": "Takashi", "family_name": "Mogi", "email": "mogi@example.com" } アクセストークンの中身は任意 (認可サーバのソフトウェアによって異なる) Keycloakから発行されたアクセストークンの例: Keycloakでは、 ロールやユーザ名のような属性情報が アクセストークンに入っている (Keycloak独自仕様) APIサーバはこれらを見てアクセス制御できる。
  12. 12. © Hitachi, Ltd. 2019. All rights reserved. 11 エンドユーザ APIサーバ サードパーティー アプリケーション LDAP DBMS 1. ログイン画面リダイレクト 6.アクセストークン 発行 (OpenID Connectの 場合は+IDトークン) 7.アクセストークン付き APIアクセス Keycloakサーバ OAuth/OpenID Connectによるトークン発行フローの例 2. LDAPやDBと 連携してユーザ認証 3. 認可コード返却 4.トークンリクエスト +クライアント秘密情報 API提供者側の認証情報を持たないため OpenID Connectが急速に普及している。 5. クライアント 認証 API提供者Authorization Code Grant
  13. 13. © Hitachi, Ltd. 2019. All rights reserved. Token Introspection 12 Token Introspectionにて聞きに行く APIサーバ サードパーティー アプリケーション トークン付きAPIアクセス Keycloakサーバ ・ トークンが有効か無効かは、認可サーバが管理 認可サーバからプッシュ通知される仕掛けはなく、 認可サーバ側に聞きにいかないとわからない ・ トークンの有効性やメタデータを聞くためのI/FがRFC7662にて規定: Token Introspection ⇒ Keycloakも対応 ・ 万全を期する場合は、APIサーバが毎度アクセスがあるごとに聞きにいく 必要があることに注意。
  14. 14. © Hitachi, Ltd. 2019. All rights reserved. アクセス制御処理 13 APIサーバ サードパーティー アプリケーション 1) トークン付きAPIアクセス Keycloakサーバ 2) トークン正当性・有効性確認 (Token Introspection) 3) トークンデコード 署名確認 4)トークン中の属性を 見て アクセス可否判断 5) APIの結果 アクセス制御処理 ・ Keycloak自身はアクセス制御にはほとんど関与しない ・ APIサーバでアクセス制御を行う必要。 ⇒ API数が増えると実装が煩雑な場合もある リバプロ(APIゲートウェイ)を置くこともある
  15. 15. © Hitachi, Ltd. 2019. All rights reserved. Keycloakの入手 14 Keycloakのダウンロードページから ZIPファイルをダウンロード
  16. 16. © Hitachi, Ltd. 2019. All rights reserved. Keycloakの起動 15 • bin/standalone.bat を実行 • Application Server(Wildfly)、お試し用のDBMS(H2DB)が 付属しているためそのまま動作する
  17. 17. © Hitachi, Ltd. 2019. All rights reserved. 情報源 16 ・ 公式ドキュメントが充実していますので、まずはこちら https://www.keycloak.org/documentation.html ・ 日本語もあります(NRIさん) https://keycloak-documentation.openstandia.jp/ ・ @ITさんKeycloak超入門 https://www.atmarkit.co.jp/ait/series/7363/
  18. 18. © Hitachi, Ltd. 2019. All rights reserved. 3. Keycloakの開発動向 17
  19. 19. © Hitachi, Ltd. 2019. All rights reserved. Red Hat Summitで最新動向探ってきました 18 Red Hat Summit会場にて、 Keycloak主要メンバ(マネージャのMikeさん、主要開発者のMarekさん)と、 日本コミュニティの打ち合わせを開催 トピック: • Financial API (FAPI)について(後述) • WebAuthnについて(後述) • ロードマップについて Red Hat Summit(2019/5/7-9@Boston) ・ 日本コミュニティとのmeeting ・ セッション : ・ Keycloakに関連したセッションは一つだけ 「Security for Open Banking, PSD2, FAPI」 ・ 他のOpenShiftやIntegrationミドルのセッションで部品として 触れられている形
  20. 20. © Hitachi, Ltd. 2019. All rights reserved. FAPI対応について: FAPIとは 19 OAuth OpenID Connect (OIDC) 「アクセストークン」をやり取りする認可の仕様。 自由度が高く、そのまま使うと セキュリティホールを作り込んでしまう。 OAuthの使い方を縛り、かつ 「アクセストークン」の中に「ID情報」を 含めてやり取りできる仕様 ⇒まだ自由度は高く、使い方によって セキュリティレベルがバラバラ OAuth/OIDCの安全な使い方を規定。 オプション仕様の使い方、下のレイヤ (SSL/TLS)の使い方等。 APIの形式などは規定されていない。 FAPI 2019年4月にFAPIのCertificationがOpenID Foundationで開始。 Conformance Testも公開 ・金融API公開にあたっての OAuth/OIDCの安全な使い方の規定。 OpenID Foundationで策定中。UKのOpenbankingで採用、世界中で採用広まりつつある Part1(ReadOnly、照会系API向け), Part2(ReadWrite,更新系API向け) が、現在Implementer’s draft。 最近CIBAプロファイルも出ました。
  21. 21. © Hitachi, Ltd. 2019. All rights reserved. KeycloakのFAPIへの対応状況 20 JIRA Ticket 概要 Pull Request 対応 バージョン KEYCLOAK-2604 RFC 7636(PKCE)対応 3831 3.1.0 KEYCLOAK-5661 アクセストークンにスコープを返す 4527 3.4.0 KEYCLOAK-5811 Support client authentication in client_secret_jwt 4835 4.0.0 KEYCLOAK-6700 Support s_hash 5022 4.0.0 KEYCLOAK-6771 Support Holder of Key mechanism for Tokens ([mtls]対応) 5083 4.0.0 KEYCLOAK-6768 IDトークン暗号化 (optional) 5779 レビュー中 KEYCLOAK-6770 トークン類の ES256/384/512 署名 5533 4.5.0 KEYCLOAK-8460 リクエストオブジェクトの ES256/384/512署名 5603 4.7.0 KEYCLOAK-9756 トークン&リクエストオブジェクトの PS256/384/512署名対応 5974 6.0.0 机上検証し、必要な機能群を乗松さん中心に実装 CIBAはまだですが、 Part1,2は概ね実装できたと思っています。
  22. 22. © Hitachi, Ltd. 2019. All rights reserved. FAPIのConformance Testパスに向けて 21 ・ Keycloakコミュニティとしても、FAPIのテストをパスさせる予定。 ⇒ 実態としては日本勢に期待されている。 コミュニティ打合せの結果、次の日の セッション「Security for Open Banking, PSD2, FAPI」にて、 “We Partner with Hitachi for Open Conformance Testing for FAPI” と記載 ・ 「OSSセキュリティ技術の会」を通じて日本勢で取組中。 ・ 課題解決に向けて下記技術の会Githubで議論中、適宜upstream。 https://github.com/jsoss-sig/keycloak-fapi/
  23. 23. © Hitachi, Ltd. 2019. All rights reserved. WebAuthnについて 22 ・ まずは、2FA対応予定 ・ WebAuthnロジックそのものについては、Keycloak本体に 持つつもりは無く、外部ライブラリ活用の方針 ・ ライブラリとしては、現在webauthn4jが有力候補。 認証プラグイン(authenticator)も合わせて開発・提案中。 https://github.com/webauthn4j/keycloak-webauthn-authenticator ・ 多要素認証全般についてアーキテクチャ見直しが進んでおり githubで延々議論中。 https://github.com/keycloak/keycloak-community/pull/5 ⇒ これらに伴いSPIが変更になる可能性があり、要注意。
  24. 24. © Hitachi, Ltd. 2019. All rights reserved. WebAuthn authenticator開発状況 23 こちらにて開発中。使い方もあります https://github.com/webauthn4j/keycloak-webauthn-authenticator 一通り動くものはでき、keycloak-devで議論しながらブラッシュアップ中。 OS ブラウザ 認証器 ユースケース Windows10 Chrome Firefox Yubico security Key 2要素認証 Edge PC内蔵指紋認証器 2要素認証 指だけ認証 MacOS Mojave Chrome Firefox Yubico security Key 2要素認証 Android 8.1 Chrome 内蔵指紋認証器 確認中 下記で動作確認済(&中)
  25. 25. © Hitachi, Ltd. 2019. All rights reserved. Keycloakにユーザプロファイル登録 (1) 24 ここのパスワード 入力は不要にする予定
  26. 26. © Hitachi, Ltd. 2019. All rights reserved. 25 Keycloakにユーザプロファイル登録 (2)
  27. 27. © Hitachi, Ltd. 2019. All rights reserved. Keycloakにログイン (1) 26
  28. 28. © Hitachi, Ltd. 2019. All rights reserved. Keycloakにログイン (2) 27
  29. 29. © Hitachi, Ltd. 2019. All rights reserved. WebAuthn対応: 今後の予定 28 ・ webauthn4j, authenticatorともに、Keycloakコミュニティ側には認知 (newsletterに掲載されたので) ・ keycloak-community repoにdesignドキュメント出して、本格的に入れ 込み開始予定 ・ Keyconf19でも議論予定
  30. 30. © Hitachi, Ltd. 2019. All rights reserved. ロードマップについて【非公開】 29
  31. 31. © Hitachi, Ltd. 2019. All rights reserved. Keycloakコミュニティトピック 30 ・ バージョニングポリシー 4半期に1回、メジャーバージョン番号が上がるようになった。 Continuous delivery modelのためらしいが。。 https://www.keycloak.org/2019/04/versioning.html ・ ブログの刷新 https://www.keycloak.org/blog.html - 「Keycloak news letter」が月1ぐらい出るように。 - ゲスト記事も受け付けるようになった。Keycloak-users等で申し出ればいい模様。 ・ keycloak-community リポジトリ MLでは議論が収束しなそうな大き目のトピックについては、 https://github.com/keycloak/keycloak-community にdesignドキュメントをPR出して進めることができるように ・ KeyConf19 Keycloakの初のカンファレンス。UKで6/12,13開催予定。 https://www.hartree.stfc.ac.uk/Pages/KeyConf.aspx
  32. 32. 31© Hitachi, Ltd. 2019. All rights reserved. 他社所有商標に関する表示 • HITACHIは、株式会社 日立製作所の商標または登録商標です。 • Red Hatは米国およびその他の国におけるRed Hat, Inc.の登録商標です。 • GitHub は、GitHub Inc.の米国およびその他の国における商標または登録商標です。 • TwitterはTwitter Inc.の米国およびその他の国における商標または登録商標です。 • FacebookはFacebook Inc.の米国およびその他の国における商標または登録商標です。 • Kubernetesは米国およびその他の国におけるThe Linux Foundationの登録商標です。 • OpenShiftは米国およびその他の国におけるRed Hat, Inc.の登録商標です。 • その他記載の会社名、製品名などは、それぞれの会社の商標もしくは登録商標です。

×