Lambda@EdgeでEntra ID認証をシュッと追加する

>100 Views

August 06, 25

スライド概要

Serverless Meetup Tokyo #21登壇資料

profile-image

フルマラソン 2:29:56 で走る日本最速ITエンジニア JBCC株式会社 カスタマー・イノベーション・ラボ Technical Expert AWS Samurai 2024 / AWS Community Builder / JAWS-UG横浜支部 / ChatGPT Meetup / Cloudflare meetup slideshare: https://www.slideshare.net/akifuminiida

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

#serverlesstokyo #serverlesstokyo Lambda@EdgeでEntra ID認証を シュッと追加する Serverless Meetup Tokyo #21 JBCC株式会社 新居田晃史 2025.08.06

2.

#serverlesstokyo #serverlesstokyo 自己紹介 • 新居田 晃史(にいだ あきふみ) • 所属 – JBCC株式会社 カスタマー・イノベーションラボ - Technical Expert • 日本最速ITエンジニア(※週刊BCN編集部調べ) – フルマラソン 2:29:56 • コミュニティ – AWS Samurai 2024 – JAWS DAYS 2025 実行委員長 – JAWS-UG 横浜支部 – AWS Community Builder – Container – Cloudflare Meetup – ChatGPT Meetup Tokyo Twitter @nid777 Facebook Akifumi Niida

3.

#serverlesstokyo #serverlesstokyo こんな悩み、ありませんか? 1 2 3 アプリに一切手を入れずにSSOし たい インフラレベルで認証がつけられ ると嬉しい CloudFrontで認証させてみよう 既存システムのコード変更なしでセキュリ Cognitoの設定は大変。もっと簡単な方法 最小限の変更で最大の効果を得たい。複雑 ティを強化したい場合に最適 で認証を実装できないか? な構成は避けたい。

4.

#serverlesstokyo #serverlesstokyo アーキテクチャ概要 (余談) 認証ロジックとCDKのコードはバイブコーディングしました Claude Code + Claude Opus 4が優秀すぎます インフラレベルで認証を実装

5.

#serverlesstokyo #serverlesstokyo 認証フロー詳細 未認証アクセス Entra IDリダイレクト CloudFrontにアクセスすると、Lambda@EdgeがCookieをチェック 認証情報がなければEntra IDのログイン画面へリダイレクト 認証処理 JWT保存 ユーザーがログイン後、OIDCフローでトークン取得 トークンをCookieに保存し、元のURLへリダイレクト Lambda@EdgeのViewer Requestで認証状態を検証 デモアプリケーション:https://d3buhhosrcok41.cloudfront.net

6.
[beta]
#serverlesstokyo

#serverlesstokyo

CDKに3行足すだけ
AuthLambdaEdge constructの設定
import { AuthLambdaEdge } from './auth-lambda-edge’;

既存DistributionへaddBehaviorで追加
distribution.addBehavior(

…

'/*',

const authEdge = new AuthLambdaEdge(

origin,

this, 'AuthEdge', {

{

tenantId: props.tenantId,

edgeLambdas: [authEdge.authLambda],

clientId: props.clientId,
clientSecret: props.clientSecret,

}
);

});

既存のCloudFrontのリソースにシンプルにアドオンできるようにしてみました。

7.

#serverlesstokyo #serverlesstokyo Entra ID側の設定 Entra ID設定手順 1. AzureポータルでEntraIDにアプリケーション登録 2. リダイレクトURIに「https://[CloudFront Domain]/callback」を設定 3. クライアントシークレットを生成 4. APIアクセス許可を設定 SSMパラメータストアに以下を保存: • テナントID • クライアントID • クライアントシークレット

8.

#serverlesstokyo #serverlesstokyo メリットと注意点 メリット 注意点 • アプリ改修不要で実装可能 • Edgeなのでus-east-1にデプロイ • CDKで再利用可能なコンストラクト • 複雑なアクセス制御には不向き • Entra IDの設定が別途必要 • Lambda@Edgeの制約を理解する必要あり

9.

#serverlesstokyo #serverlesstokyo CDKコピペで"シュッと"SSO! ぜひお試しください! GitHubリポジトリ: https://github.com/nidcode/cloudfront-entraid-sample ご清聴ありがとうございました