Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CDN Edge Computing上で動くOIDC認証Proxyのススメ

Avatar for Atsushi Harada Atsushi Harada
September 19, 2025
1.1k

CDN Edge Computing上で動くOIDC認証Proxyのススメ

2025/9/20 ServerlessDays Tokyo 2025資料 @meteor0090

Avatar for Atsushi Harada

Atsushi Harada

September 19, 2025
Tweet

Transcript

  1. Copyright © LIXIL Corporation. All rights reserved. CDN Edge Computing上で動くOIDC

    認証 Proxy のススメ 株式会社LIXIL CX Digital デジタルインフラエキスパート 原田 篤(@meteor0090 / たこちー) OIDC RelyingPartyの組み込み課題の解決 2025/9/20 ServerlessDays Tokyo 2025
  2. 2 株式会社LIXIL CX Digital デジタルインフラエキスパート 原田 篤(@meteor0090 / たこちー) 顧客認証基盤や見積システムを始め、

    様々なサービスに関わるWebエンジニア兼プロダクトオーナー。 開発以外にも、デジタル部門の組織戦略や採用、人材育成など幅広く携わる。 3児の父。 自己紹介
  3. 3 • 話すこと ◦ OIDCのRelying Party側の話 ◦ CDN上で稼働する認証Proxyの話 • 話さないこと

    ◦ OIDCのOpenID Provider側の話 この発表で話すこと・話さないこと
  4. 4 アジェンダ • LIXILの紹介 • OIDC RelyingParty実装における困りごと • ケース別の考慮 ◦

    スクラッチでOIDCを組み込むケース ◦ ミドルウェアを使ってOIDCを組み込むケース • CDN EdgeComputing上の認証Proxyを使った課題解決 • まとめ
  5. 8 様々な技術スタック、製品を扱っている ・Vue.js, Nuxt ・React.js, Next.js ・Swift ・Dart, Flutter ・Node.js,

    Express, Fastify ・Python, Bottle, Flask ・Go, Gin ・PHP, Laravel ・C#, .NET ・Java ・COBOL ・Terraform, Serverless Framework
  6. 18 AWS Application LoadBalancerのOIDC認証機能を使うケース 出典: https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/ application/listener-authenticate-users.html 1. ユーザーがALBにアクセス 2.

    ALBが必要に応じてOPに Authorized Redirect 3. ユーザーがOP画面で認証 4. AuthZ CodeをALB callbackに返却 5. ALBがToken取得と検証 6. OKならTargetへ転送
  7. 19 Google Cloud Identity-Aware ProxyとIdentity Platformを使うケース 1. ユーザーがURLにアクセス 2. IAPが必要に応じて

    Identity PlatformにRedirect 3. Identity Platformが OpenID ProviderにAuthorized Redirect 4. ユーザーがOP画面で認証 5. AuthZ CodeをIdentity Platform callbackに返却 6. Identity PlatformがToken取得と検証 7. Identity PlatformからIAPに情報受け渡し 8. OKならTargetへ転送
  8. 21 ・ALBやIAPの場合、オンプレ Targetに転送する際に考慮が必要 LIXILはAWS、Google Cloud、Azure、OnpremiseにTargetがあるため、特定の Cloud技術に依存しにくい ・IAPの場合、 IssuerとOPのURLが異なる場合に設定ができない ・IAPの場合、 OP側でユーザーのメールアドレスが変更されたときの挙動が不安定

    ・IAPの場合、 Identity Platformの中間ページの呼び出しに時間がかかるケースがあり UXがいまいち ・IAPの場合、 Third Party Cookieの使用が必要で、ブラウザ側の設定によっては動作しない ・ALBの場合、 LB単位で最低限のコストがかかる (3000円/LBぐらい) ・Nginx Pro等のミドルウェアを使用する場合、ミドルウェア自体のインフラ管理が必要 ・Nginx Pro等のミドルウェアを使用する場合、それ自体のライセンスコスト等がかかる ミドルウェアを使用する場合もいくつか考慮事項がある
  9. 23 Lambda@Edge上でOpenID Connectの Relying Party機能を実装している例がある。 仕組みとしては認証 ProxyをCDNに近い Functionsに設置したイメージ。 ・CDNはOriginがどこにあっても使用するから 環境依存が少ない

    ・Lambda@Edge等のCDN Edge Computing型の仕組みは、 ピュアサーバーレスでメンテナンスフリー ・もともと CDNで使うことを想定しているので動作が早い これはいけるのでは? 調べてみる 出典: https://qiita.com/yh1224/items/2cc440f6fe0fef1502b7 https://zenn.dev/yh1224/articles/f473a9325a48404bd
  10. 26 LIXILではAkamai CDNを全面的に採用しているので、 Akamai CDNに付随する Akamai EdgeWorkersをCDN Edge Computingとして使用 Akamai

    EdgeWorkersのアーキテクチャ Akamai CDN Client Edge Workers Origin Server CDN を通る時に JavaScript が動作
  11. 28 CDN認証Proxyの概要 認証付き ALB・IAP と (ほぼ) 同様の挙動をとる Client Edge Workers

    Edge Workers Service 認証情報がない 場合、 ログイン画面にリダイレクト ある場合はスキップ 認証結果の処理 ユーザー情報をヘッダに 書き込む Ex)My LIXILを利用するサービスにアクセスする場合
  12. 29 ・ProxyとOIDC RelyingPartyを担当する Coreに機能を分離 ・Proxyの機能 ・Sessionハンドリングと Token Verification ・Token Refresh

    ・OriginRequestに対する認証結果 Header情報の付与 ・Coreの機能 ・OIDC Authorizeハンドリング ・OIDC Callbackハンドリング ・OIDC Logoutハンドリング CDN認証Proxyの設計内容
  13. 37 ・認証Proxyを扱う上で幾つかの情報を扱う必要があり、高速な Read, Writeが頻繁に発生する ・Authorize時: PKCE, state, nonce ・認証後 :

    各種tokenや期限など ・Strong Consistencyが求められるユースケースでどこに格納するべきか? セッションに関する情報保持の話
  14. 38 󰢏 Strong Consistencyが満たせる可能性がある 󰢄 レイテンシーが犠牲になる可能性が高い 󰢄 CDNベンダーは RDBMSタイプのネイティブなデータベースをあまり提供してない Cloudfrare

    D1はSQLiteによるデータベースエンジンで例外的。 (ただリードレプリカを使用した場合は Strong Consistencyをサポートしない? ) 出典: https://news.ycombinator.com/item?id=31340942 RDBMSを使用した場合
  15. 39 󰢏 CDNベンダーは NoSQL型のデータベースエンジンを提供していることが多い Cloudflare KV, EdgeKV etc… (ただ、Strong Consistencyはサポートされてない・・・

    ) 󰢄 DynamoDB等の強整合性オプションを使用する手もあるが、レイテンシーが許容できるかが問題 NoSQLを使用した場合
  16. 41 󰢏 Request毎に最新のものが得られるのでレイテンシーと整合性の担保が容易 󰢄 Cookieの横取り対策が必須 (このケースに限った話ではないが・・・ ) 󰢄 ブラウザ側の制約として Cookie毎のSizeには4KBの制限がある

    出典: https://developer.mozilla.org/ja/docs/Web/HTTP/Guides/Cookies#%E3%83%87%E3%83%BC%E3%82%BF%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8 󰢄 HTTP Header Sizeにはホスティング環境により Size制限がある Cookieに格納する場合 現状はCookieに格納し、必要な情報だけを Clientに返却している
  17. 44 ・Multi CloudかつOnpremise併用環境に対する認証ミドルウェア課題のアプローチとして、 CDN上で稼働する OIDC 認証Proxyを実装し運用 ・OIDC認証ProxyのComputing環境として CDN Edge Cpmputingを活用することで、

    Serverlessかつ高速なインフラ運用が可能 ・Javascriptベースの仕組みとして OIDC認証Proxyを実装することで、各社の CDN Edge Computing上でも動作可能なポータビリティの高い仕組みとして設計が可能 ・CDN Edge ServerlessはQuotaやProduct Limitationとうまく付き合っていく必要があるが、 使いこなせると強力なソリューション ぜひCDN Edge Serverlessのユースケースをもっと広げていきましょう!! まとめ