SlideShare a Scribd company logo
1 of 21
Download to read offline
© Hitachi, Ltd. 2023. All rights reserved.
KeycloakのCNCF incubating project入りまでの
アップストリーム活動の歩み
2023/12/12
日立製作所 OSSソリューションセンタ
中村 雄一
Linkedin: yuichi-nakamura-b8b953154
1
© Hitachi, Ltd. 2023. All rights reserved.
- SELinuxのコミュニティ活動、ビジネス開発
- パッチ書いたりツール公開、情報家電向けSELinuxの開発
- 執筆(書籍・雑誌記事・学術論文)・国内外講演多数
中村 雄一
株式会社 日立製作所、博士(工学)
自己紹介
~2008年
- Keycloak関連ビジネスやコントリビューション活動の立上げ
API管理・認証関連サービス立上げ
Keycloakメンテナを育成
Keycloak書籍執筆: 認証と認可Keycloak入門(リックテレコム)
- OSSコミュニティ活動
「OSSセキュリティ技術の会」の会長として勉強会開催や学術界との連携
The Linux Foundation BoardとしてOpenSSFやCNCF加入に携わる
Cloud Native Community Japanの立上げにも関わる
現在
2
© Hitachi, Ltd. 2023. All rights reserved.
前史: SELinuxに関するコミュニティ活動 (2001年~2006年頃)
執筆活動
OSS開発活動
まさに順風満帆
・ SELinux Policy Editorを当時の所属としては、初めてOSS公開。
商用distroにも採用。
・ 組込み向けにSELinuxをチューニングし数々contribute。
・ 開発者に会いに渡米。
・ Ottawa Linux Symposium、Embedded Linux Conference, USENIX LISAなど
様々な場所で成果を発表。
・ 当時世界初のSELinux書籍「SELinux徹底ガイド」を日経BP社から出版。
・ 複数の出版社で連載・特集執筆、講師としても多数お呼ばれした。
国内コミュニティ立上げ
「SELinuxユーザ会」立上げ、多数の仲間を獲得。
研究開発部門に配属されSELinux(Linuxカーネルのセキュリティ強化機能)をテーマに活動
3
© Hitachi, Ltd. 2023. All rights reserved.
SELinuxの活動の失敗…
https://xtech.nikkei.com/it/article/NEWS/20071114/287229/
https://xtech.nikkei.com/it/article/NEWS/20080530/305495/
https://enterprise.watch.impress.co.jp/cda/software/2005/03/24/4898.html
・ しばらくは「元気な若手」として見守って頂けたが…
・ ビジネス化しないと研究予算つかないことをある時に気づく!
しかしSELinuxは当時の自社ビジネスとして厳しかった…
・ 技術開発しても商用distro・機器ベンダが自力で使うだけで会社にお金落ちない
「個人」に声はかかるが(執筆とか講師とか)、組織が食える規模の仕事は取れず。
二系統Windows
情報家電向けSELinux
・ 色々なアイデアを考えて提案 Android SELinux
その他色々ネタを出して動き回った
→ 活動原資がつかなくなり、断念し、しばらく別の分野でビジネス含めて修行。
4
© Hitachi, Ltd. 2023. All rights reserved.
SELinuxの事例からの学び
・ 業務でコミュニティ活動をやる場合の注意点
・ コミュニティ活動だけなら、一定の成果を出すことはできる。
多くのコミュニティでは人手不足であり、貢献は歓迎されるため。
・ 社外に仲間ができて盛り上がると、うまく行っているように錯覚してしまう。
・ 所属組織のビジネスと結び付け、自身のミッションとして評価される形でないと長続きしない
・ 何が残ったか? : 技術とOSS経験は残った。
- Contributeしたパッチは小さくともAndroid SELinux適用の礎に
- 学術論文も残り、学位取得できた
- コミュニティ活動の回し方は分かった
趣味でやるのもいいけど、業務でフルにOSS活動に時間を使いたい…
5
© Hitachi, Ltd. 2023. All rights reserved.
Keycloakとは?
Keycloak
主要標準に対応したID連携
(OAuth2.0認可サーバ含む)
ソーシャルログイン
(Identity Brokering) ID管理と認証
LDAP
Active
Directory
RDB
OpenID SAML XML.org
GitHub
Twitter Facebook
Keycloakは、IDアクセス管理を担うOSS。
シングルサインオンやOAuth2.0に対応したAPIの認可認証サーバーの機能を提供。
2023年4月にCNCFのIncubating Projectとして承認
6
© Hitachi, Ltd. 2023. All rights reserved.
Keycloakを始めたきっかけ
「Keycloakありき」ではないところがポイント
・ 2017年ごろ、新規ソリューション(API管理)を検討したところ、OAuth 2.0の認可サーバ
が必要だった。
・ いくつか評価したところKeycloakが認可サーバの部材としてよさそうだった。
・周辺システムとの連携が充実
・拡張性のある実装
・スター数は数百だったが、開発コミュニティが活発で伸びそう
・ けど、弊社顧客が求めるだろう高いセキュリティ機能が不足していた
→ コントリビューションして育てよう!
育てて目立てば、売りにもできそう!
・ 当時、開発のほとんどがRed Hat社のメンバによるものだった。他社が受け入れられるか心配はあった。
7
© Hitachi, Ltd. 2023. All rights reserved.
コントリビューションのテーマ: APIの認可とFAPI(Financial Grade API)
金融機関
Fintech
サービス
企業
個人資産
管理
サービス
ユーザー
API公開する
機能・サービス
口座情報
OAuth 2.0でのAPI連携
認可
サーバー
ID/PW
アクセス
トークン
ID/PWを
持たない
・ 当時、API公開の際のセキュリティとして認可の仕様「OAuth 2.0」が必須になりつつあった。
OAuth 2.0は実装の自由度が高く、周辺規格が沢山。作りを間違えると事故直結。まさに沼な分野。
・ OpenID Foundationで、FAPIというOAuth 2.0のセキュリティプロファイルの議論が進んでおり、
界隈では注目されていたが、Keycloakコミュニティでは盛り上がってなかった。
→ FAPIの実装をコントリビューションのテーマに設定
- 金融取引などユーザーの資産を取り扱うAPI
- 個人情報などセンシティブな情報を取り扱うAPI
→ FAPIが求められる
- 認可コードやアクセストークンの横取りや漏洩
- リプレイアタックやCross-Site Request
Forgeries(CSRF)などの攻撃
リソース
サーバー
セキュリティリスクの例
より高いセキュリティを求められるAPI活用
8
© Hitachi, Ltd. 2023. All rights reserved.
最初のコントリビューション
https://github.com/keycloak/keycloak/pull/3831
RFC7636(Proof Key for Code Exchange:PKCE)というFAPI関連で最初に求められそうな機能を開発
2017年2月3日:初PR提出!
2週間後…メンテナから「同じ機能のPR出てるよ」
もたついているうちに他の人が同じ機能の開発をしていた…
当方のPRのほうがカバー範囲が広いことが分かり、
該当PR作者と会話し、当方のPRに一本化
2017年4月7日:初PRマージ!
9
© Hitachi, Ltd. 2023. All rights reserved.
他社の方々と協力した開発に発展
・ その後、FAPI関連の小さな機能やKeycloak案件適用のフィードバックを
コントリビュートしているうちに、リリースノートに謝辞が掲載されたり、
メンテナ達からの反応も良くなっていった
・ 他社の方と協力した開発も実現: WebAuthn(パスキー・パスワードレス認証で使う機能)
「OSSセキュリティ技術の会」で知り合った能島さん(@ynojima)達と協力して開発
能島さんはWebAuthnのライブラリ「Webauthn4j」を開発されており、
これを使ってKeycloakにWebAuthnサポート
https://github.com/keycloak/keycloak/pull/6248
https://github.com/webauthn4j/keycloak-webauthn-
authenticator/pull/1
Webauthn4jのrepoでプロトタイプを日本コミュニティで開発 プロトをベースにKeycloak側に提出しブラッシュアップ
10
© Hitachi, Ltd. 2023. All rights reserved.
SIGを立上げ国境を超えた開発
・ KeycloakコミュニティでFAPIに関心を持つ人が増えてきたのと、FAPIの開発項目が増えてきたため、
Keycloak Project leadより「SIG」を立上げて進めてはどうかと助言を頂いた
・ FAPI-SIGを立上げ
- 隔週~月1のWeb会議で、開発項目の分担や進捗を共有
- 2020年7月に第1回開催、45回開催された。およそ8か国11社の方々と連携して開発
- 活動の結果、FAPI関連の主要なセキュリティプロファイルをほぼサポート
現在は、スコープを拡大し、「OAuth SIG」と名称変更して活動継続中
主要なセキュリティプロファイルの対応状況。https://github.com/keycloak/kc-sig-fapi より抜粋
11
© Hitachi, Ltd. 2023. All rights reserved.
ビジネスの立上げ
課題: APIをセキュアに公開したい、しかしセキュリティには高度な専門知識が必要
ソリューション: KeycloakやOSS・クラウドサービスを活用してAPIセキュリティを確保
出典: https://www.hitachi.co.jp/products/it/oss/solution/basic_api_mgmt_model/index.html
並行してKeycloakを活用したソリューションを立上げ多くの業種に適用してきた
案件フィードバックをコントリビュートするほどKeycloakが使いやすくなる手ごたえ
12
© Hitachi, Ltd. 2023. All rights reserved.
好循環、そしてメンテナ輩出
技術・ノウハウ
OSSサービス
フィードバック
コミュニティ貢献
有用なOSSの目利き
OSSの発展への寄与、技術蓄積
お客さまビジネスでの活用
OSSを活用したシステム開発・構築
API管理ソリューション提供
OSSサービス提供
OSSを安心して使うための
サービスの提供
コミュニティ活動を認知し
お客様よりお声がけ
コミュニティとOSSが発展し
もっと使ってもらえるように 技術的な知見が深まる
OSSコミュニティ活動とビジネスを両輪で回し、好循環を形成。
2021年10月に乗松さんがメンテナに就任!複数のコントリビュータを輩出。
13
© Hitachi, Ltd. 2023. All rights reserved.
CNCFプロジェクト入りの支援:CNCFプロジェクトとは?
https://github.com/cncf/toc/blob/main/process/project_proposals.md
3つのステージで管理、育成しており、特典もある。
Sandbox: KubeConでブースを持てる
Incubating以上: KubeConでメンテナトラックセッションを持てる、KubeConキーノートでビデオを流せる
など。
比較的ハードルが低い
Graduation前提なので
TOC(Technical Oversight Committee)
による厳しい審査がある。
採用実績、ガバナンスなどが審査され、
CNCF TOCのsponsorがついた上で
TOCの投票で承認
セキュリティのプロセス面を
特に厳しく指導され
審査を経てGraduationとなる
14
© Hitachi, Ltd. 2023. All rights reserved.
Keycloakも応募したが…
2018年8月頃より、CNCFプロジェクト入りのための運動を開始。
当初sandbox提案を予定していたが、途中からincubationへ切り替え
Security-TAGによるSecurity Assessmentを実施。
次に後見人である「sponsor」をTOCからアサインしてもらう必要があるが、sponsorが現れず…
2020年のincubationの提案 https://github.com/cncf/toc/pull/463
2020年6月にRed Hat社の方が
incubationの提案提出
1年以上放置され、このままだと
クローズだよと連絡
弊社もLFのパスで進まない理由をヒアリング。一番の理由は「クラウドネイティブではない」こと…
Keycloakのベースは伝統的なJavaのAPサーバであるWildflyであることが大きかった。
また、メンテナも当時はRed Hat社のエンジニアのみだった
15
© Hitachi, Ltd. 2023. All rights reserved.
その後の動き
・ Red Hat社を中心に「クラウドネイティブ」に改造。
・ ベースをクラウドネイティブなJavaフレームワークであるQuarkusに
・ Operatorの開発
・ 複数社のメンテナ就任
codecentric AG社、Bosch社、日立から就任
・ 利用実績の積み上げ(これも大事)、弊社からも利用実績をプッシュ
16
© Hitachi, Ltd. 2023. All rights reserved.
ついに動いた
incubationの提案PR https://github.com/cncf/toc/pull/463
TOCのRicardo Rochaさんが動いてくれた!
Ricardo RochaさんがSponsorとなり、DD(Due diligence)が開始。
DDドキュメントに弊社の実績をネタとして使って頂けたほか、TOCからのヒアリング(電話会議)にも協力
https://docs.google.com/document/d/1oLCHd6b-jkISl-9ACy3hlDEmSoRKai3McKBcizBTxbc/edit?usp=sharing
本番利用実績のネタ
Red Hat社以外の
開発者巻き込み実績
17
© Hitachi, Ltd. 2023. All rights reserved.
Incubating Projectへ
ToCの投票が行われ、Incubating Projectとして承認!
アナウンスのブログポスト
https://www.cncf.io/blog/2023/04/11/keycloak-joins-cncf-as-an-incubating-project/
弊社からもコメント出させて頂きました
KubeCon EU 2023でも紹介
メンテナトラックも共同登壇させて頂けました
18
© Hitachi, Ltd. 2023. All rights reserved.
まとめ
・ 業務でOSSのアップストリーム活動を行うには、ビジネスとコミュニティ活動を両輪で回すことが重要。
・ 好循環を形成すれば、OSSの発展、所属組織の発展、エンジニアの成長、に同時に寄与することができる。
・ 最後に宣伝
クラウドネイティブ分野の日本におけるアップストリーム活動盛り上げのために、CNCF Japan Chapterとして、
「Cloud Native Community Japan」をコミュニティの方々と立上げました。
12/1にキックオフミートアップを開催済み、
今後も他のコミュニティとも協力しながら継続的にミートアップ開催予定です。
最新の情報は、以下のホームページから。「join」よりメンバになって頂けるとミートアップ開催通知が届きます。
https://community.cncf.io/cloud-native-community-japan/
19
© Hitachi, Ltd. 2023. All rights reserved.
他社商品名、商標等の引用に関する表示
・LinkedInはLinkedIn Corporationの登録商標です。
・Linuxは,Linus Torvalds氏の日本およびその他の国における登録商標または商標です。
・Red Hat is registered trademarks of Red Hat, Inc. in the United States and other
countries.
・OpenID is a trademark or registered trademark of OpenID Foundation in the United States
and other countries.
・NGINXは、NGINX,Inc.の登録商標です。
その他記載の会社名、製品名は、それぞれの会社の商標もしくは登録商標です。
KeycloakのCNCF incubating project入りまでのアップストリーム活動の歩み

More Related Content

What's hot

モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
Apache Avro vs Protocol Buffers
Apache Avro vs Protocol BuffersApache Avro vs Protocol Buffers
Apache Avro vs Protocol BuffersSeiya Mizuno
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれKumazaki Hiroki
 
Amazon EKS への道 ~ EKS 再入門 ~
Amazon EKS への道 ~ EKS 再入門 ~Amazon EKS への道 ~ EKS 再入門 ~
Amazon EKS への道 ~ EKS 再入門 ~Hideaki Aoyagi
 
node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成shigeki_ohtsu
 
忙しい人の5分で分かるMesos入門 - Mesos って何だ?
忙しい人の5分で分かるMesos入門 - Mesos って何だ?忙しい人の5分で分かるMesos入門 - Mesos って何だ?
忙しい人の5分で分かるMesos入門 - Mesos って何だ?Masahito Zembutsu
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjugYahoo!デベロッパーネットワーク
 
Terraform Bootcamp - Azure Infrastructure as Code隊
Terraform Bootcamp - Azure Infrastructure as Code隊Terraform Bootcamp - Azure Infrastructure as Code隊
Terraform Bootcamp - Azure Infrastructure as Code隊Toru Makabe
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能Kohei Tokunaga
 
20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon CognitoAmazon Web Services Japan
 
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会ShuheiUda
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)NTT DATA Technology & Innovation
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)NTT DATA Technology & Innovation
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティスAmazon Web Services Japan
 
オンプレ×Google Cloud PlatformなML基盤におけるRancherの活用
オンプレ×Google Cloud PlatformなML基盤におけるRancherの活用オンプレ×Google Cloud PlatformなML基盤におけるRancherの活用
オンプレ×Google Cloud PlatformなML基盤におけるRancherの活用MicroAd, Inc.(Engineer)
 
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くしたNginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くしたtoshi_pp
 

What's hot (20)

モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
 
Apache Avro vs Protocol Buffers
Apache Avro vs Protocol BuffersApache Avro vs Protocol Buffers
Apache Avro vs Protocol Buffers
 
KubeEdgeを触ってみた
KubeEdgeを触ってみたKubeEdgeを触ってみた
KubeEdgeを触ってみた
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
Amazon EKS への道 ~ EKS 再入門 ~
Amazon EKS への道 ~ EKS 再入門 ~Amazon EKS への道 ~ EKS 再入門 ~
Amazon EKS への道 ~ EKS 再入門 ~
 
node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成
 
忙しい人の5分で分かるMesos入門 - Mesos って何だ?
忙しい人の5分で分かるMesos入門 - Mesos って何だ?忙しい人の5分で分かるMesos入門 - Mesos って何だ?
忙しい人の5分で分かるMesos入門 - Mesos って何だ?
 
Zabbix概論2018
Zabbix概論2018Zabbix概論2018
Zabbix概論2018
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
 
Terraform Bootcamp - Azure Infrastructure as Code隊
Terraform Bootcamp - Azure Infrastructure as Code隊Terraform Bootcamp - Azure Infrastructure as Code隊
Terraform Bootcamp - Azure Infrastructure as Code隊
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
 
20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito
 
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
 
Azure DevOps's security
Azure DevOps's securityAzure DevOps's security
Azure DevOps's security
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
 
オンプレ×Google Cloud PlatformなML基盤におけるRancherの活用
オンプレ×Google Cloud PlatformなML基盤におけるRancherの活用オンプレ×Google Cloud PlatformなML基盤におけるRancherの活用
オンプレ×Google Cloud PlatformなML基盤におけるRancherの活用
 
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くしたNginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
NginxとLuaを用いた動的なリバースプロキシでデプロイを 100 倍速くした
 

Similar to KeycloakのCNCF incubating project入りまでのアップストリーム活動の歩み

パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可Hitachi, Ltd. OSS Solution Center.
 
KubeCon NA 2023 Recap: Challenge to Implementing “Scalable” Authorization wit...
KubeCon NA 2023 Recap: Challenge to Implementing “Scalable” Authorization wit...KubeCon NA 2023 Recap: Challenge to Implementing “Scalable” Authorization wit...
KubeCon NA 2023 Recap: Challenge to Implementing “Scalable” Authorization wit...Hitachi, Ltd. OSS Solution Center.
 
Swaggerのさわりだけ
SwaggerのさわりだけSwaggerのさわりだけ
SwaggerのさわりだけMasakazu Muraoka
 
hbstudy#88 5G+MEC時代のシステム設計
hbstudy#88 5G+MEC時代のシステム設計hbstudy#88 5G+MEC時代のシステム設計
hbstudy#88 5G+MEC時代のシステム設計VirtualTech Japan Inc.
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについてMasahito Zembutsu
 
HTML5でOpen Dataをやってみた
HTML5でOpen DataをやってみたHTML5でOpen Dataをやってみた
HTML5でOpen DataをやってみたMasakazu Muraoka
 
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~Hitachi, Ltd. OSS Solution Center.
 
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイルVisual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイルAkira Inoue
 
Small Language Model Local Launch on AI Tour Tokyo
Small Language Model Local Launch on AI Tour TokyoSmall Language Model Local Launch on AI Tour Tokyo
Small Language Model Local Launch on AI Tour TokyoTakao Tetsuro
 
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみるWeb屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみるMasakazu Muraoka
 
OSC2013 Tokyo Spring OpenStack Overview
OSC2013 Tokyo Spring OpenStack OverviewOSC2013 Tokyo Spring OpenStack Overview
OSC2013 Tokyo Spring OpenStack Overviewirix_jp
 
OSSコンソーシアム 開発基盤部会 2018年度 活動方針・部会紹介
OSSコンソーシアム 開発基盤部会 2018年度 活動方針・部会紹介OSSコンソーシアム 開発基盤部会 2018年度 活動方針・部会紹介
OSSコンソーシアム 開発基盤部会 2018年度 活動方針・部会紹介Daisuke Nishino
 
Open stack概要 lpi-opcelサミット(当日用)
Open stack概要 lpi-opcelサミット(当日用)Open stack概要 lpi-opcelサミット(当日用)
Open stack概要 lpi-opcelサミット(当日用)shintaro mizuno
 
OSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSCOSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSCDaisuke Nishino
 
OpenStackの普及でどう変わる?クラウド時代の次の一手 - ミラクル・リナックス様セミナー 『OpenStack の普及でどう変わる?クラウド時代...
OpenStackの普及でどう変わる?クラウド時代の次の一手  - ミラクル・リナックス様セミナー 『OpenStack の普及でどう変わる?クラウド時代...OpenStackの普及でどう変わる?クラウド時代の次の一手  - ミラクル・リナックス様セミナー 『OpenStack の普及でどう変わる?クラウド時代...
OpenStackの普及でどう変わる?クラウド時代の次の一手 - ミラクル・リナックス様セミナー 『OpenStack の普及でどう変わる?クラウド時代...VirtualTech Japan Inc.
 
OpenStackの普及でどう変わる?クラウド時代の次の一手 - ミラクル・リナックス様セミナー 『OpenStack の普及でどう変わる?クラウド時代...
OpenStackの普及でどう変わる?クラウド時代の次の一手  - ミラクル・リナックス様セミナー 『OpenStack の普及でどう変わる?クラウド時代...OpenStackの普及でどう変わる?クラウド時代の次の一手  - ミラクル・リナックス様セミナー 『OpenStack の普及でどう変わる?クラウド時代...
OpenStackの普及でどう変わる?クラウド時代の次の一手 - ミラクル・リナックス様セミナー 『OpenStack の普及でどう変わる?クラウド時代...Nobuyuki Tamaoki
 
FxOSはウェアラブルデバイスの夢を見るか?
FxOSはウェアラブルデバイスの夢を見るか?FxOSはウェアラブルデバイスの夢を見るか?
FxOSはウェアラブルデバイスの夢を見るか?Masakazu Muraoka
 
Interop tokyo2018 openstack-present-and-future
Interop tokyo2018 openstack-present-and-futureInterop tokyo2018 openstack-present-and-future
Interop tokyo2018 openstack-present-and-futureshintaro mizuno
 

Similar to KeycloakのCNCF incubating project入りまでのアップストリーム活動の歩み (20)

パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
 
KubeCon NA 2023 Recap: Challenge to Implementing “Scalable” Authorization wit...
KubeCon NA 2023 Recap: Challenge to Implementing “Scalable” Authorization wit...KubeCon NA 2023 Recap: Challenge to Implementing “Scalable” Authorization wit...
KubeCon NA 2023 Recap: Challenge to Implementing “Scalable” Authorization wit...
 
Thing.jsについて
Thing.jsについてThing.jsについて
Thing.jsについて
 
Swaggerのさわりだけ
SwaggerのさわりだけSwaggerのさわりだけ
Swaggerのさわりだけ
 
hbstudy#88 5G+MEC時代のシステム設計
hbstudy#88 5G+MEC時代のシステム設計hbstudy#88 5G+MEC時代のシステム設計
hbstudy#88 5G+MEC時代のシステム設計
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
 
HTML5でOpen Dataをやってみた
HTML5でOpen DataをやってみたHTML5でOpen Dataをやってみた
HTML5でOpen Dataをやってみた
 
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
 
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイルVisual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
 
Small Language Model Local Launch on AI Tour Tokyo
Small Language Model Local Launch on AI Tour TokyoSmall Language Model Local Launch on AI Tour Tokyo
Small Language Model Local Launch on AI Tour Tokyo
 
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみるWeb屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
 
Osaka-Meetup-Sep2016
Osaka-Meetup-Sep2016Osaka-Meetup-Sep2016
Osaka-Meetup-Sep2016
 
OSC2013 Tokyo Spring OpenStack Overview
OSC2013 Tokyo Spring OpenStack OverviewOSC2013 Tokyo Spring OpenStack Overview
OSC2013 Tokyo Spring OpenStack Overview
 
OSSコンソーシアム 開発基盤部会 2018年度 活動方針・部会紹介
OSSコンソーシアム 開発基盤部会 2018年度 活動方針・部会紹介OSSコンソーシアム 開発基盤部会 2018年度 活動方針・部会紹介
OSSコンソーシアム 開発基盤部会 2018年度 活動方針・部会紹介
 
Open stack概要 lpi-opcelサミット(当日用)
Open stack概要 lpi-opcelサミット(当日用)Open stack概要 lpi-opcelサミット(当日用)
Open stack概要 lpi-opcelサミット(当日用)
 
OSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSCOSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSC
 
OpenStackの普及でどう変わる?クラウド時代の次の一手 - ミラクル・リナックス様セミナー 『OpenStack の普及でどう変わる?クラウド時代...
OpenStackの普及でどう変わる?クラウド時代の次の一手  - ミラクル・リナックス様セミナー 『OpenStack の普及でどう変わる?クラウド時代...OpenStackの普及でどう変わる?クラウド時代の次の一手  - ミラクル・リナックス様セミナー 『OpenStack の普及でどう変わる?クラウド時代...
OpenStackの普及でどう変わる?クラウド時代の次の一手 - ミラクル・リナックス様セミナー 『OpenStack の普及でどう変わる?クラウド時代...
 
OpenStackの普及でどう変わる?クラウド時代の次の一手 - ミラクル・リナックス様セミナー 『OpenStack の普及でどう変わる?クラウド時代...
OpenStackの普及でどう変わる?クラウド時代の次の一手  - ミラクル・リナックス様セミナー 『OpenStack の普及でどう変わる?クラウド時代...OpenStackの普及でどう変わる?クラウド時代の次の一手  - ミラクル・リナックス様セミナー 『OpenStack の普及でどう変わる?クラウド時代...
OpenStackの普及でどう変わる?クラウド時代の次の一手 - ミラクル・リナックス様セミナー 『OpenStack の普及でどう変わる?クラウド時代...
 
FxOSはウェアラブルデバイスの夢を見るか?
FxOSはウェアラブルデバイスの夢を見るか?FxOSはウェアラブルデバイスの夢を見るか?
FxOSはウェアラブルデバイスの夢を見るか?
 
Interop tokyo2018 openstack-present-and-future
Interop tokyo2018 openstack-present-and-futureInterop tokyo2018 openstack-present-and-future
Interop tokyo2018 openstack-present-and-future
 

More from Hitachi, Ltd. OSS Solution Center.

Guide of authentication and authorization for cloud native applications with ...
Guide of authentication and authorization for cloud native applications with ...Guide of authentication and authorization for cloud native applications with ...
Guide of authentication and authorization for cloud native applications with ...Hitachi, Ltd. OSS Solution Center.
 
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Hitachi, Ltd. OSS Solution Center.
 
Challenge to Implementing "Scalable" Authorization with Keycloak
Challenge to Implementing "Scalable" Authorization with KeycloakChallenge to Implementing "Scalable" Authorization with Keycloak
Challenge to Implementing "Scalable" Authorization with KeycloakHitachi, Ltd. OSS Solution Center.
 
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開するKeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開するHitachi, Ltd. OSS Solution Center.
 
Why Assertion-based Access Token is preferred to Handle-based one?
Why Assertion-based Access Token is preferred to Handle-based one?Why Assertion-based Access Token is preferred to Handle-based one?
Why Assertion-based Access Token is preferred to Handle-based one?Hitachi, Ltd. OSS Solution Center.
 
What API Specifications and Tools Help Engineers to Construct a High-Security...
What API Specifications and Tools Help Engineers to Construct a High-Security...What API Specifications and Tools Help Engineers to Construct a High-Security...
What API Specifications and Tools Help Engineers to Construct a High-Security...Hitachi, Ltd. OSS Solution Center.
 
Implementing security and availability requirements for banking API system us...
Implementing security and availability requirements for banking API system us...Implementing security and availability requirements for banking API system us...
Implementing security and availability requirements for banking API system us...Hitachi, Ltd. OSS Solution Center.
 
Lightweight Zero-trust Network Implementation and Transition with Keycloak an...
Lightweight Zero-trust Network Implementation and Transition with Keycloak an...Lightweight Zero-trust Network Implementation and Transition with Keycloak an...
Lightweight Zero-trust Network Implementation and Transition with Keycloak an...Hitachi, Ltd. OSS Solution Center.
 
Overall pictures of Identity provider mix-up attack patterns and trade-offs b...
Overall pictures of Identity provider mix-up attack patterns and trade-offs b...Overall pictures of Identity provider mix-up attack patterns and trade-offs b...
Overall pictures of Identity provider mix-up attack patterns and trade-offs b...Hitachi, Ltd. OSS Solution Center.
 

More from Hitachi, Ltd. OSS Solution Center. (20)

Guide of authentication and authorization for cloud native applications with ...
Guide of authentication and authorization for cloud native applications with ...Guide of authentication and authorization for cloud native applications with ...
Guide of authentication and authorization for cloud native applications with ...
 
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
 
Challenge to Implementing "Scalable" Authorization with Keycloak
Challenge to Implementing "Scalable" Authorization with KeycloakChallenge to Implementing "Scalable" Authorization with Keycloak
Challenge to Implementing "Scalable" Authorization with Keycloak
 
KubeConRecap_nakamura.pdf
KubeConRecap_nakamura.pdfKubeConRecap_nakamura.pdf
KubeConRecap_nakamura.pdf
 
NGINXでの認可について考える
NGINXでの認可について考えるNGINXでの認可について考える
NGINXでの認可について考える
 
Security Considerations for API Gateway Aggregation
Security Considerations for API Gateway AggregationSecurity Considerations for API Gateway Aggregation
Security Considerations for API Gateway Aggregation
 
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開するKeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
 
IDガバナンス&管理の基礎
IDガバナンス&管理の基礎IDガバナンス&管理の基礎
IDガバナンス&管理の基礎
 
Keycloakのステップアップ認証について
Keycloakのステップアップ認証についてKeycloakのステップアップ認証について
Keycloakのステップアップ認証について
 
NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話
 
Why Assertion-based Access Token is preferred to Handle-based one?
Why Assertion-based Access Token is preferred to Handle-based one?Why Assertion-based Access Token is preferred to Handle-based one?
Why Assertion-based Access Token is preferred to Handle-based one?
 
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門するKeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
 
What API Specifications and Tools Help Engineers to Construct a High-Security...
What API Specifications and Tools Help Engineers to Construct a High-Security...What API Specifications and Tools Help Engineers to Construct a High-Security...
What API Specifications and Tools Help Engineers to Construct a High-Security...
 
Implementing security and availability requirements for banking API system us...
Implementing security and availability requirements for banking API system us...Implementing security and availability requirements for banking API system us...
Implementing security and availability requirements for banking API system us...
 
Lightweight Zero-trust Network Implementation and Transition with Keycloak an...
Lightweight Zero-trust Network Implementation and Transition with Keycloak an...Lightweight Zero-trust Network Implementation and Transition with Keycloak an...
Lightweight Zero-trust Network Implementation and Transition with Keycloak an...
 
Overall pictures of Identity provider mix-up attack patterns and trade-offs b...
Overall pictures of Identity provider mix-up attack patterns and trade-offs b...Overall pictures of Identity provider mix-up attack patterns and trade-offs b...
Overall pictures of Identity provider mix-up attack patterns and trade-offs b...
 
Apache con@home 2021_sha
Apache con@home 2021_shaApache con@home 2021_sha
Apache con@home 2021_sha
 
Node-RED Installer, Standalone Installer using Electron
Node-RED Installer, Standalone Installer using ElectronNode-RED Installer, Standalone Installer using Electron
Node-RED Installer, Standalone Installer using Electron
 
Hacktoberfest 概要、Node-REDプロジェクト貢献手順
Hacktoberfest 概要、Node-REDプロジェクト貢献手順Hacktoberfest 概要、Node-REDプロジェクト貢献手順
Hacktoberfest 概要、Node-REDプロジェクト貢献手順
 
Node-RED v2.0新機能紹介
Node-RED v2.0新機能紹介Node-RED v2.0新機能紹介
Node-RED v2.0新機能紹介
 

KeycloakのCNCF incubating project入りまでのアップストリーム活動の歩み

  • 1. © Hitachi, Ltd. 2023. All rights reserved. KeycloakのCNCF incubating project入りまでの アップストリーム活動の歩み 2023/12/12 日立製作所 OSSソリューションセンタ 中村 雄一 Linkedin: yuichi-nakamura-b8b953154
  • 2. 1 © Hitachi, Ltd. 2023. All rights reserved. - SELinuxのコミュニティ活動、ビジネス開発 - パッチ書いたりツール公開、情報家電向けSELinuxの開発 - 執筆(書籍・雑誌記事・学術論文)・国内外講演多数 中村 雄一 株式会社 日立製作所、博士(工学) 自己紹介 ~2008年 - Keycloak関連ビジネスやコントリビューション活動の立上げ API管理・認証関連サービス立上げ Keycloakメンテナを育成 Keycloak書籍執筆: 認証と認可Keycloak入門(リックテレコム) - OSSコミュニティ活動 「OSSセキュリティ技術の会」の会長として勉強会開催や学術界との連携 The Linux Foundation BoardとしてOpenSSFやCNCF加入に携わる Cloud Native Community Japanの立上げにも関わる 現在
  • 3. 2 © Hitachi, Ltd. 2023. All rights reserved. 前史: SELinuxに関するコミュニティ活動 (2001年~2006年頃) 執筆活動 OSS開発活動 まさに順風満帆 ・ SELinux Policy Editorを当時の所属としては、初めてOSS公開。 商用distroにも採用。 ・ 組込み向けにSELinuxをチューニングし数々contribute。 ・ 開発者に会いに渡米。 ・ Ottawa Linux Symposium、Embedded Linux Conference, USENIX LISAなど 様々な場所で成果を発表。 ・ 当時世界初のSELinux書籍「SELinux徹底ガイド」を日経BP社から出版。 ・ 複数の出版社で連載・特集執筆、講師としても多数お呼ばれした。 国内コミュニティ立上げ 「SELinuxユーザ会」立上げ、多数の仲間を獲得。 研究開発部門に配属されSELinux(Linuxカーネルのセキュリティ強化機能)をテーマに活動
  • 4. 3 © Hitachi, Ltd. 2023. All rights reserved. SELinuxの活動の失敗… https://xtech.nikkei.com/it/article/NEWS/20071114/287229/ https://xtech.nikkei.com/it/article/NEWS/20080530/305495/ https://enterprise.watch.impress.co.jp/cda/software/2005/03/24/4898.html ・ しばらくは「元気な若手」として見守って頂けたが… ・ ビジネス化しないと研究予算つかないことをある時に気づく! しかしSELinuxは当時の自社ビジネスとして厳しかった… ・ 技術開発しても商用distro・機器ベンダが自力で使うだけで会社にお金落ちない 「個人」に声はかかるが(執筆とか講師とか)、組織が食える規模の仕事は取れず。 二系統Windows 情報家電向けSELinux ・ 色々なアイデアを考えて提案 Android SELinux その他色々ネタを出して動き回った → 活動原資がつかなくなり、断念し、しばらく別の分野でビジネス含めて修行。
  • 5. 4 © Hitachi, Ltd. 2023. All rights reserved. SELinuxの事例からの学び ・ 業務でコミュニティ活動をやる場合の注意点 ・ コミュニティ活動だけなら、一定の成果を出すことはできる。 多くのコミュニティでは人手不足であり、貢献は歓迎されるため。 ・ 社外に仲間ができて盛り上がると、うまく行っているように錯覚してしまう。 ・ 所属組織のビジネスと結び付け、自身のミッションとして評価される形でないと長続きしない ・ 何が残ったか? : 技術とOSS経験は残った。 - Contributeしたパッチは小さくともAndroid SELinux適用の礎に - 学術論文も残り、学位取得できた - コミュニティ活動の回し方は分かった 趣味でやるのもいいけど、業務でフルにOSS活動に時間を使いたい…
  • 6. 5 © Hitachi, Ltd. 2023. All rights reserved. Keycloakとは? Keycloak 主要標準に対応したID連携 (OAuth2.0認可サーバ含む) ソーシャルログイン (Identity Brokering) ID管理と認証 LDAP Active Directory RDB OpenID SAML XML.org GitHub Twitter Facebook Keycloakは、IDアクセス管理を担うOSS。 シングルサインオンやOAuth2.0に対応したAPIの認可認証サーバーの機能を提供。 2023年4月にCNCFのIncubating Projectとして承認
  • 7. 6 © Hitachi, Ltd. 2023. All rights reserved. Keycloakを始めたきっかけ 「Keycloakありき」ではないところがポイント ・ 2017年ごろ、新規ソリューション(API管理)を検討したところ、OAuth 2.0の認可サーバ が必要だった。 ・ いくつか評価したところKeycloakが認可サーバの部材としてよさそうだった。 ・周辺システムとの連携が充実 ・拡張性のある実装 ・スター数は数百だったが、開発コミュニティが活発で伸びそう ・ けど、弊社顧客が求めるだろう高いセキュリティ機能が不足していた → コントリビューションして育てよう! 育てて目立てば、売りにもできそう! ・ 当時、開発のほとんどがRed Hat社のメンバによるものだった。他社が受け入れられるか心配はあった。
  • 8. 7 © Hitachi, Ltd. 2023. All rights reserved. コントリビューションのテーマ: APIの認可とFAPI(Financial Grade API) 金融機関 Fintech サービス 企業 個人資産 管理 サービス ユーザー API公開する 機能・サービス 口座情報 OAuth 2.0でのAPI連携 認可 サーバー ID/PW アクセス トークン ID/PWを 持たない ・ 当時、API公開の際のセキュリティとして認可の仕様「OAuth 2.0」が必須になりつつあった。 OAuth 2.0は実装の自由度が高く、周辺規格が沢山。作りを間違えると事故直結。まさに沼な分野。 ・ OpenID Foundationで、FAPIというOAuth 2.0のセキュリティプロファイルの議論が進んでおり、 界隈では注目されていたが、Keycloakコミュニティでは盛り上がってなかった。 → FAPIの実装をコントリビューションのテーマに設定 - 金融取引などユーザーの資産を取り扱うAPI - 個人情報などセンシティブな情報を取り扱うAPI → FAPIが求められる - 認可コードやアクセストークンの横取りや漏洩 - リプレイアタックやCross-Site Request Forgeries(CSRF)などの攻撃 リソース サーバー セキュリティリスクの例 より高いセキュリティを求められるAPI活用
  • 9. 8 © Hitachi, Ltd. 2023. All rights reserved. 最初のコントリビューション https://github.com/keycloak/keycloak/pull/3831 RFC7636(Proof Key for Code Exchange:PKCE)というFAPI関連で最初に求められそうな機能を開発 2017年2月3日:初PR提出! 2週間後…メンテナから「同じ機能のPR出てるよ」 もたついているうちに他の人が同じ機能の開発をしていた… 当方のPRのほうがカバー範囲が広いことが分かり、 該当PR作者と会話し、当方のPRに一本化 2017年4月7日:初PRマージ!
  • 10. 9 © Hitachi, Ltd. 2023. All rights reserved. 他社の方々と協力した開発に発展 ・ その後、FAPI関連の小さな機能やKeycloak案件適用のフィードバックを コントリビュートしているうちに、リリースノートに謝辞が掲載されたり、 メンテナ達からの反応も良くなっていった ・ 他社の方と協力した開発も実現: WebAuthn(パスキー・パスワードレス認証で使う機能) 「OSSセキュリティ技術の会」で知り合った能島さん(@ynojima)達と協力して開発 能島さんはWebAuthnのライブラリ「Webauthn4j」を開発されており、 これを使ってKeycloakにWebAuthnサポート https://github.com/keycloak/keycloak/pull/6248 https://github.com/webauthn4j/keycloak-webauthn- authenticator/pull/1 Webauthn4jのrepoでプロトタイプを日本コミュニティで開発 プロトをベースにKeycloak側に提出しブラッシュアップ
  • 11. 10 © Hitachi, Ltd. 2023. All rights reserved. SIGを立上げ国境を超えた開発 ・ KeycloakコミュニティでFAPIに関心を持つ人が増えてきたのと、FAPIの開発項目が増えてきたため、 Keycloak Project leadより「SIG」を立上げて進めてはどうかと助言を頂いた ・ FAPI-SIGを立上げ - 隔週~月1のWeb会議で、開発項目の分担や進捗を共有 - 2020年7月に第1回開催、45回開催された。およそ8か国11社の方々と連携して開発 - 活動の結果、FAPI関連の主要なセキュリティプロファイルをほぼサポート 現在は、スコープを拡大し、「OAuth SIG」と名称変更して活動継続中 主要なセキュリティプロファイルの対応状況。https://github.com/keycloak/kc-sig-fapi より抜粋
  • 12. 11 © Hitachi, Ltd. 2023. All rights reserved. ビジネスの立上げ 課題: APIをセキュアに公開したい、しかしセキュリティには高度な専門知識が必要 ソリューション: KeycloakやOSS・クラウドサービスを活用してAPIセキュリティを確保 出典: https://www.hitachi.co.jp/products/it/oss/solution/basic_api_mgmt_model/index.html 並行してKeycloakを活用したソリューションを立上げ多くの業種に適用してきた 案件フィードバックをコントリビュートするほどKeycloakが使いやすくなる手ごたえ
  • 13. 12 © Hitachi, Ltd. 2023. All rights reserved. 好循環、そしてメンテナ輩出 技術・ノウハウ OSSサービス フィードバック コミュニティ貢献 有用なOSSの目利き OSSの発展への寄与、技術蓄積 お客さまビジネスでの活用 OSSを活用したシステム開発・構築 API管理ソリューション提供 OSSサービス提供 OSSを安心して使うための サービスの提供 コミュニティ活動を認知し お客様よりお声がけ コミュニティとOSSが発展し もっと使ってもらえるように 技術的な知見が深まる OSSコミュニティ活動とビジネスを両輪で回し、好循環を形成。 2021年10月に乗松さんがメンテナに就任!複数のコントリビュータを輩出。
  • 14. 13 © Hitachi, Ltd. 2023. All rights reserved. CNCFプロジェクト入りの支援:CNCFプロジェクトとは? https://github.com/cncf/toc/blob/main/process/project_proposals.md 3つのステージで管理、育成しており、特典もある。 Sandbox: KubeConでブースを持てる Incubating以上: KubeConでメンテナトラックセッションを持てる、KubeConキーノートでビデオを流せる など。 比較的ハードルが低い Graduation前提なので TOC(Technical Oversight Committee) による厳しい審査がある。 採用実績、ガバナンスなどが審査され、 CNCF TOCのsponsorがついた上で TOCの投票で承認 セキュリティのプロセス面を 特に厳しく指導され 審査を経てGraduationとなる
  • 15. 14 © Hitachi, Ltd. 2023. All rights reserved. Keycloakも応募したが… 2018年8月頃より、CNCFプロジェクト入りのための運動を開始。 当初sandbox提案を予定していたが、途中からincubationへ切り替え Security-TAGによるSecurity Assessmentを実施。 次に後見人である「sponsor」をTOCからアサインしてもらう必要があるが、sponsorが現れず… 2020年のincubationの提案 https://github.com/cncf/toc/pull/463 2020年6月にRed Hat社の方が incubationの提案提出 1年以上放置され、このままだと クローズだよと連絡 弊社もLFのパスで進まない理由をヒアリング。一番の理由は「クラウドネイティブではない」こと… Keycloakのベースは伝統的なJavaのAPサーバであるWildflyであることが大きかった。 また、メンテナも当時はRed Hat社のエンジニアのみだった
  • 16. 15 © Hitachi, Ltd. 2023. All rights reserved. その後の動き ・ Red Hat社を中心に「クラウドネイティブ」に改造。 ・ ベースをクラウドネイティブなJavaフレームワークであるQuarkusに ・ Operatorの開発 ・ 複数社のメンテナ就任 codecentric AG社、Bosch社、日立から就任 ・ 利用実績の積み上げ(これも大事)、弊社からも利用実績をプッシュ
  • 17. 16 © Hitachi, Ltd. 2023. All rights reserved. ついに動いた incubationの提案PR https://github.com/cncf/toc/pull/463 TOCのRicardo Rochaさんが動いてくれた! Ricardo RochaさんがSponsorとなり、DD(Due diligence)が開始。 DDドキュメントに弊社の実績をネタとして使って頂けたほか、TOCからのヒアリング(電話会議)にも協力 https://docs.google.com/document/d/1oLCHd6b-jkISl-9ACy3hlDEmSoRKai3McKBcizBTxbc/edit?usp=sharing 本番利用実績のネタ Red Hat社以外の 開発者巻き込み実績
  • 18. 17 © Hitachi, Ltd. 2023. All rights reserved. Incubating Projectへ ToCの投票が行われ、Incubating Projectとして承認! アナウンスのブログポスト https://www.cncf.io/blog/2023/04/11/keycloak-joins-cncf-as-an-incubating-project/ 弊社からもコメント出させて頂きました KubeCon EU 2023でも紹介 メンテナトラックも共同登壇させて頂けました
  • 19. 18 © Hitachi, Ltd. 2023. All rights reserved. まとめ ・ 業務でOSSのアップストリーム活動を行うには、ビジネスとコミュニティ活動を両輪で回すことが重要。 ・ 好循環を形成すれば、OSSの発展、所属組織の発展、エンジニアの成長、に同時に寄与することができる。 ・ 最後に宣伝 クラウドネイティブ分野の日本におけるアップストリーム活動盛り上げのために、CNCF Japan Chapterとして、 「Cloud Native Community Japan」をコミュニティの方々と立上げました。 12/1にキックオフミートアップを開催済み、 今後も他のコミュニティとも協力しながら継続的にミートアップ開催予定です。 最新の情報は、以下のホームページから。「join」よりメンバになって頂けるとミートアップ開催通知が届きます。 https://community.cncf.io/cloud-native-community-japan/
  • 20. 19 © Hitachi, Ltd. 2023. All rights reserved. 他社商品名、商標等の引用に関する表示 ・LinkedInはLinkedIn Corporationの登録商標です。 ・Linuxは,Linus Torvalds氏の日本およびその他の国における登録商標または商標です。 ・Red Hat is registered trademarks of Red Hat, Inc. in the United States and other countries. ・OpenID is a trademark or registered trademark of OpenID Foundation in the United States and other countries. ・NGINXは、NGINX,Inc.の登録商標です。 その他記載の会社名、製品名は、それぞれの会社の商標もしくは登録商標です。