ドメイン指定Cookieとサービス間共有Redisで作る認証基盤サービス
Kaigi on Rails 2025 セッションの発表資料です https://kaigionrails.org/2025/talks/kokuyouwind/#day2
https://slides.com/kokuyouwind/kaigi-on-rails-2025
こんにちは、ウォンテッドリーでバックエンドエンジニアをしている平岡です 。
2025年9月26日、27日にKaigi on Rails 2025が開催され、普段業務でRuby on Railsに触れているバックエンドエンジニアのメンバーと2日間参加してきました 。
Kaigi on Railsは、「初学者から上級者まで楽しめるWeb系技術カンファレンス」というコアコンセプトを持つ技術カンファレンスです 。
Kaigi on Rails 2025の雰囲気や現地の様子などについては、エンジニアリングマネージャーの鴛海が執筆した「Kaigi on Rails 2025 参加レポートと現地参加する価値」という記事もありますので、ぜひ併せてご確認ください 。
この記事では、Kaigi on Rails 2025に現地参加、もしくはオンライン視聴をされていなかった方に向けてのセッション紹介です。私が参加してきたセッションの中で、特に印象に残った2つのセッションをご紹介します 。(Kaigi on Rails 2025で行われたセッションの一覧へはこちらのリンクからアクセス可能です)
高度なUI/UXこそHotwireで作ろう
ドメイン指定Cookieとサービス間共有Redisで作る認証基盤サービス
最後に
このセッションでは、Webサービス構築においてユーザ向けの高度なUI/UXをHotwireを用いて構築されている事例や具体的にどのように構築するかという方法が紹介されました。
まず最初に、BasecampやCookpadなど有名な企業の運営するサービス内で導入実績があることが挙げられていました 。
2点目に、「Next.jsよりもHotwireの方が良いUI/UXが作りやすい」との見解も示されていました 。具体的なUI/UXの例として、デフォルトのローディングUIやSWR型のキャッシュによるページ遷移 、部分的な画面の書き換えやPrefetchが効いてヌルサク(※1)なタブの実現 などが紹介されました。(※1 スマートフォンやタブレットの動作が滑らかで速いことを称賛するネット用語)
最後にユーザ向けの高度なUI/UXを構築するための具体的な手法として、Hotwire上でstateおよび one-way data flowを使うと作りやすいと述べられ、その実現のためにZustandという状態管理ライブラリの使用が有用であるということでした 。
Howireに関するセッションは、本年(2025年)2件、昨年(2024年)も2件あり、コミュニティ内で盛り上がっている印象を持ちました。社内でも活用するチャンスがあれば使ってみたいと思いました。
このセッションは、自社の複数プロダクトから利用される認証基盤を作った話が中心でした 。認証・認可・セッション管理の基本的な説明から、Railsにおけるセッション管理方法などが解説されました 。
認証共通化のアーキテクチャ選択肢として、「認証結果だけ渡してセッション個別に管理する」方法、「ロードバランサなどアプリケーションサーバの前段階でセッションを集約管理する」方法、「認証基盤とセッションを共有」方法の3つを比較検討し、最終的には「セッションストアにRedisを採用してsession_idをcookieで共有する」方式が採られたとのことでした。
その理由として、マルチプロダクト戦略では認証基盤サービスが欲しくなるものの、認証結果の連携の技術標準であるOIDCはサードパーティーを考慮していて仕様が複雑なため、自社サービス内だけならセッション共有がシンプルではないかという結論に至ったとのことでした 。
セッションを通して、認証・認可 について適切な例を用いて説明されており 、プレゼンテーションの内容が非常にわかりやすかったのが印象的でした 。また技術選定の理由も明確に説明されていて、検討の過程が大変勉強になりました 。
私は今回がKaigi on Railsの現地初参加でした 。各企業が抱えるリアルな技術的課題への取り組みに触れることができ、多くの刺激を受けた2日間となりました 。
すばらしいカンファレンスを主催してくださった運営の皆様に、改めて感謝を申し上げます 。