1. ? Hitachi, Ltd. 2018. All rights reserved.
2018/7/13
日立製作所 OSSソリューションセンタ
中村雄一
Keycloak最新動向
Red Hat Summit報告&セキュリティ強化
OSSセキュリティ技術の会 第三回勉強会
2. ? Hitachi, Ltd. 2018. All rights reserved.
なぜRed Hat Summit?
1
? KeycloakのOSSコミュニティはRed Hat社により運営
(メンテナもRed Hat所属の方)
? Red Hat社は商用サポート付きの
Keycloak「Red Hat Single Sign-on(Red Hat SSO)」を提供
? Red Hat Summitに行くと、、、
- Red Hat SSOの最新動向がわかる(Keycloakのほうも想像つく)
- 主要開発者に会えるかも?
? Red Hat Summit 2018/5/8-11 @サンフランシスコ にて開催
? Red Hat SSOロードマップ
? 事例
? メンテナとのコミュニティ打ち合わせ
を報告します
3. ? Hitachi, Ltd. 2018. All rights reserved.
Red Hat SSOロードマップ
2
セッションにてRed Hat SSOのロードマップが紹介
講演時点では7.2
(Keycloak 3.4系)が最新
2019年春ごろに向けて
色々な機能の開発が進んでいる
Istio連携
UMA2.0
WebAuthn
5. ? Hitachi, Ltd. 2018. All rights reserved.
他注目トピック
4
1) UMA2.0への対応
? Authorization ServiceのインタフェースがUMA2.0に対応していく
(Keycloak 4.0.0で対応済)
- Authorization Service
誰が何にアクセスできるのかのポリシー管理とアクセス判断のエンジン
- UMA (User Managed Access) 2.0
Kantara Initiativeにて標準化が進むアクセス権管理の仕様。
https://issues.jboss.org/browse/KEYCLOAK-7159
3) Go言語のProxy
2) WebAuthn対応
? 主要ブラウザが対応を表明したパスワードレス認証規格WebAuthnへRed Hat
SSOも対応していく方針表明。
? Keycloak側ではまだ実装は進んでいない。
- JIRAを要ウォッチ
? これまで、Proxy型のSSOをやりたい場合は他のOSSと組み合わせ。
- Apacheのmod_auth_openidc (一般的なシングルサインオンの場合)
- 3scaleのapicast (API認可認証の場合)
? Red Hat SSOとしてもproxy(Go言語ベース)を用意する方針とのこと。
- JIRA:
https://issues.jboss.org/browse/KEYCLOAK-6203
6. ? Hitachi, Ltd. 2018. All rights reserved.
事例の紹介
5
Red Hat社のAPI管理基盤である3scaleとの連携事例を紹介。
スイス国営鉄道のAPI公開の認可認証をRed Hat SSOで実現。
3scaleのセッションでも、Red Hat SSO(Keycloak)連携事例の紹介あり
7. ? Hitachi, Ltd. 2018. All rights reserved.
コミュニティmeeting
6
Red Hat Summit会場にて、
Keycloak主要メンバ(メンテナのStianさん、エバンジェリストのSebastienさん)と、
日本コミュニティの打ち合わせを開催
色々と意見交換
? Financial API (FAPI)向けの開発項目について
? FAPI、というよりOpenID Connect一般について興味ある感じ
? 優先度と必要性について意識を合わせ、githubベースで議論中
# 後ほど詳細
? OpenStandiaさんの日本語ドキュメントプロジェクト
? 大変好評で、後日Keycloakのページからリンクが貼られた
https://www.keycloak.org/extensions.html
Twitterを活用しているようで、つぶやくと反応してもらえるかも?
8. ? Hitachi, Ltd. 2018. All rights reserved.
セキュリティ強化について
7
日立の乗松さん(@tnorimat)が、OpenID Foundationの
FAPI(Financial API)対応のためのパッチ開発してるので紹介します。
11. ? Hitachi, Ltd. 2018. All rights reserved.
Keycloak 3.0.0 (2017/3リリース)でのFAPI非対応部分
10
非対応部分を洗い出してJIRAに報告。
一つ一つパッチを実装開始!
https://issues.jboss.org/browse/KEYCLOAK-6767
JIRA 課題概要
KEYCLOAK-2604 RFC 7636(PKCE)対応
KEYCLOAK-5661 shall return the list of allowed scopes with
the issued access token
KEYCLOAK-5811 client_secret_jwtでのクライアント認証
KEYCLOAK-6700 s_hashのサポート
KEYCLOAK-6769 多要素認証には対応しているが、IDトークン
のacrセットされていない
KEYCLOAK-6768 IDトークン暗号化
KEYCLOAK-6770 PS256またはES256での署名対応
KEYCLOAK-6771 Holder of Keyへの対応
非対応項目のまとめJIRA:
各項目:
12. ? Hitachi, Ltd. 2018. All rights reserved.
2018/6末 時点の開発状況
11
JIRA 課題概要 @tnorimatの
Pull Request
対応バージョン
KEYCLOAK-2604 RFC 7636(PKCE)対応 3831 3.1.0
KEYCLOAK-5661 shall return the list of allowed scopes with
the issued access token
4527 3.4.0
KEYCLOAK-5811 client_secret_jwtでのクライアント認証 4835 4.0.0
KEYCLOAK-6700 s_hashのサポート 5022 4.0.0
KEYCLOAK-6769 多要素認証には対応しているが、IDトークン
のacrセットされていない
まだ まだ
KEYCLOAK-6768 IDトークン暗号化 まだ まだ
KEYCLOAK-6770 PS256またはES256での署名対応 議論中 まだ
KEYCLOAK-6771 Holder of Keyへの対応 5083 4.0.0
だいぶ整備されました。
13. ? Hitachi, Ltd. 2018. All rights reserved.
トピック: PKCE対応
12
? RFC7636”Proof Key for Code Exchange by OAuth Public Clients” 略して「PKCE」
? OAuthのAuthorization code grantで最初に発行される認可コードの横取り?置換攻撃
を防ぐための仕様(フローの中でパラメタ追加)
? Public client(スマホアプリ等)を想定して作られた仕様だが、最近では全てのclientで
の有用性も指摘されている。
OAuth 2.0 Security Best Current Practice(Mar 18,2018)より引用
https://tools.ietf.org/id/draft-ietf-oauth-security-topics-05.html
Note: although PKCE so far was recommended as mechanism to protect native
apps, this advice applies to all kinds of OAuth clients, including web applications.
Keycloakでは...
? PR3831(@tnorimat)により、認可サーバ側が対応(3.1.0から)。
解説記事: https://qiita.com/tnorimat/items/e2dd3ecd36f192fca5ba
? FAPIの認可サーバ側では、PKCE対応がshall。
PKCEとは
? クライアントアダプタ側の対応も進んでいる。Java scriptクライアントアダプタ
でのPKCE対応:PR5255(@thomasdarimont)、現在レビュー待状態。
17. ? Hitachi, Ltd. 2018. All rights reserved.
残項目
16
?KEYCLOAK-6769: WebAuthn対応の開発が始まったら入れ込みたい
?KEYCLOAK-6768: 雛形はあるため、そんなに時間がかからないと想像。他が片付いたら。
FAPIの公式テストについて
最終的にはCertification用のテストを通す必要があるが、まだない。
それっぽいものがあるので、要ウォッチ。
https://gitlab.com/fintechlabs/fapi-conformance-suite
18. ? Hitachi, Ltd. 2018. All rights reserved.
感想
17
? 製品のベースになってるから、クローズなコミュニティなのかな?
と思っていたが。。。
? 全く部外者でも、パッチを出しているうちに反応がよくなってきた。
気に入らないところがあれば、どんどんパッチ書いてもよい模様
- 最近もOffline Token(Keycloak用語,scope=offline_accessのリフレッシュトークン)の
有効期限の考え方が気に入らなかったのでパッチ出したらすぐ入りました。
KEYCLOAK-7688 Offline Session Max for Offline Token:
https://github.com/keycloak/keycloak/pull/5307
? 日本からもどんどんパッチを出して、良いOSSにしていきましょう!
19. ? Hitachi, Ltd. 2018. All rights reserved.
おまけ
18
Keycloakとその応用の3scale(API管理)について、
Qiitaに記事公開開始しました。
?第一弾公開: 3scale 2.2を使ってみた
https://qiita.com/yo-tabata/items/eb81c5cb324cefa87efc
(Qiitaを”3scale”で検索したらすぐ出てきます)
Keycloakを包含するAPI基盤
3scaleの新バージョン2.2と開発動向の紹介です。
Keycloak関連記事なども準備中。
20. 19? Hitachi, Ltd. 2018. All rights reserved.
他社所有商標に関する表示
? HITACHIは、株式会社 日立製作所の商標または登録商標です。
? Red Hatは米国およびその他の国におけるRed Hat, Inc.の登録商標です。
? Kubernetesは米国およびその他の国におけるThe Linux Foundationの登録商標です。
? OpenShiftは米国およびその他の国におけるRed Hat, Inc.の登録商標です。
? その他記載の会社名、製品名などは、それぞれの会社の商標もしくは登録商標です。