CloudNative Days Tokyo 2023から、業務でのOSSコントリビューションのありかたとKeycloakについて解説したセッションを紹介
2023年12月11日、12日の両日にハイブリッド形式で開催されたCloudNative Days Tokyo 2023のキーノートから、日立製作所の中村雄一氏による、企業における業務でのOSSコントリビューションと、アイデンティティ管理ソフトウェアであるKeycloakのCNCFプロジェクト入りへの活動について語ったセッションを紹介する。
タイトルは「KeycloakのCNCF incubating project入りまでのアップストリーム活動の歩み」。自身がかつてOSS活動をリードしたときの反省と、そこからKeycloakプロジェクトに参加した経緯、そしてKeycloakプロジェクトにも自社ビジネスにも貢献するように活動した経験が語られた。
OSS活動が一見順調でもビジネスにつながらず続かなかった経験
中村氏は2001~2006年ごろに、会社の研究部門の若手として、Linuxカーネルのセキュリティ強化機能であるSELinuxに着目し、国内のコミュニティを立ち上げるなどの活動をしていた。仲間を作り、設定ツールを開発し、アップストリームにコントリビュートし、執筆や講演の声がかかるなど、一見順風満帆だった。
ただし、企業の研究者としてはビジネスにつながらず、研究費用がつかずに打ち切りになってしまったという。この経験から、業務でOSS活動をするには、所属組織のビジネスに結びつけて、社内での評価につなげなければ長続きしないことを学んだ。
業務起点でKeycloakに参加し機能強化、自社ビジネスにもつなげる
こうして業務でフルにOSS活動ができる機会を探していた中で出会ったのがKeycloakだった。
KeycloakはIDアクセス管理(Identity and Access Management:IAM)のOSSで、シングルサインオンのサーバーやAPIの認可認証サーバーとして動く。後述するように2023年4月にCNCFのIncubating Projectとなった、勢いのあるプロジェクトだ。
Keycloakを始めたのは、SELinuxでの教訓に学び、「Keycloakありき」ではないところがポイントだと中村氏は強調した。2017年ごろ、当時所属していた部署でAPI管理の新規ソリューションを検討する中で、OAuth 2.0に対応した認可サーバーが必要となったことが出発点だ。
その中でよさそうだったKeycloakに着目した。拡張性などの機能面に加えて、開発コミュニティが活発だったことがその理由である。一方でKeycloakには、日立の顧客であるミッションクリティカル分野に向けた高度なセキュリティ機能が不足していたが、これを逆にコントリビューションのチャンスであると考えたという。
具体的なコントリビューションのテーマは、「OAuthを安全に使うためのFAPI(Financial-grade API)」という仕様だ。
まずはFAPI関連で最初に求められそうな、認可コード横取りを防止する機能であるRFC7636の仕様を実装して、2017年2月にGitHubへプルリクエストを提出した。
開発を始めたときには既存実装はないことを確認していた。しかし、プルリクエストを出すまで慎重に進めていたところ、提出したときには同じ機能のプルリクエストが出ていた。ただし、中村氏たちのプルリクエストのほうがカバーする範囲も広いため、先方と会話してこちらに一本化し、4月にマージされた。
その後、FAPI関連の機能や、Keycloakを実案件に使ったときに出たフィードバックなどをコントリビュートしていき、常連化していき他のメンテナーたちの反応もよくなっていった。また、WebAuthnのJavaライブラリ「WebAuthn4J」の作者の能島氏と協力して、KeycloakでのWebAuthnサポートを開発し、Keycloakにマージされた。
さらに、国境を越えた開発としてKeycloakのFAPI-SIGを立ち上げた。Web会議で開発項目の分担や進捗を共有するもので、およそ8か国11社が開発した。その結果、FAPIの主要な機能を全部サポートした。
自社のビジネスにおいても、Keycloakの商用版であるRed Hat SSOとNginxを組み合わせて、APIをセキュアに公開するサービスを立ち上げた。そこで出てきたフィードバックをKeycloakに反映していくとともに、エンジニアは技術的な知見を深めることができた。そしてビジネス面でも、そうしたOSS活動により顧客から評価を得て利用が増え、それがまたKeycloakへの貢献につながるという、好循環が得られた。
KeycloakのCNCFプロジェクト入りの活動
続いて、こうして盛り上げたKeycloakをIncubating Project入りさせた話だ。
Keycloakプロジェクトでは2018年ごろからCNCFプロジェクト入りの活動を始めだ。CNCFのプロジェクトには3段階あり、「Sandbox」が最もハードルが低いが、Keycloakは実績もあるのでその上の「Incubating」に挑戦していた。
2020年にはRed Hat社の人がIncubatingの提案を提出したが、1年以上動きがなかった。進まない理由としては、クラウドネイティブでない点、そしてメンテナーもRed Hatのエンジニアのみだったことがあった。
そこで、まずクラウドネイティブなJavaのフレームワークであるQuarkusをベースに改造。また日立を含む3社からメンテナーを就任させた。さらに、つまずくプロジェクトが多いという利用実績についても、日立を含むさまざまな実績をプッシュした。
こうした活動の結果、2021年にTOC(Technical Oversight Committee)のRicardo Rocha氏がスポンサーになってくれて、DD(デューデリジェンス)の過程に進んだ。これはTOCと協力して、利用実績やガバナンス、開発状況などのレポートを提出するものだ。
そしてTOCの投票が2月ごろに行われ、3月に通り、「KubeCon EU 2023」で承認されてアナウンスされた。
過去の経験から、OSSコントリビューションを自社ビジネスと両立させることを目指して、業務起点でOSSプロジェクトを選んで両者とも成功させた話が語られた。
特に必要性があり、開発が活発で、なおかつコントリビューションの余地があるプロジェクトを選んだこと。そして、そのプロジェクトに対して戦略的に取り組んで、OSSと自社ビジネスの好循環を作ったところが成功の要因といえる。
さらにそうした活動がKeycloakのCNCFプロジェクト入りにもつながったということで、開発コミュニティの勢いを感じさせるセッションだった。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Cloud Native Community Japanキックオフミートアップ レポート
- CNCFプロジェクトとKeycloakの動向
- Keycloakの最前線を体感できるイベント「Keyconf 23」レポート
- 日立のOSSコントリビュータに訊いた組織のあり方と失敗談
- LFが「LF Research調査レポート」日本語版を公開、オープンソースのクラウドネイティブ技術を推進するCNCFの日本における正式コミュニティを設立
- LFが「Kubernetesプロジェクト ジャーニー レポート」とKubernetesの新トレーニング「Kubernetes アプリケーション開発」を発表
- 恒例となったOSSセキュリティ技術の勉強会、今回はSSOソフトウェア「Keycloak」に注目!
- 注目のWebAuthnと公式より早いKeycloak最新動向を紹介!OSSセキュリティ技術の会 第5回勉強会
- OSSのセキュリティや開発ツール、実行基盤などの最前線の最新情報・動向が得られる ―「DevConf.cz 2020」レポート
- 写真で見るOCP Summit 2015