>100 Views
August 06, 25
スライド概要
Serverless Meetup Tokyo #21登壇資料
フルマラソン 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
#serverlesstokyo #serverlesstokyo Lambda@EdgeでEntra ID認証を シュッと追加する Serverless Meetup Tokyo #21 JBCC株式会社 新居田晃史 2025.08.06
#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
#serverlesstokyo #serverlesstokyo こんな悩み、ありませんか? 1 2 3 アプリに一切手を入れずにSSOし たい インフラレベルで認証がつけられ ると嬉しい CloudFrontで認証させてみよう 既存システムのコード変更なしでセキュリ Cognitoの設定は大変。もっと簡単な方法 最小限の変更で最大の効果を得たい。複雑 ティを強化したい場合に最適 で認証を実装できないか? な構成は避けたい。
#serverlesstokyo #serverlesstokyo アーキテクチャ概要 (余談) 認証ロジックとCDKのコードはバイブコーディングしました Claude Code + Claude Opus 4が優秀すぎます インフラレベルで認証を実装
#serverlesstokyo #serverlesstokyo 認証フロー詳細 未認証アクセス Entra IDリダイレクト CloudFrontにアクセスすると、Lambda@EdgeがCookieをチェック 認証情報がなければEntra IDのログイン画面へリダイレクト 認証処理 JWT保存 ユーザーがログイン後、OIDCフローでトークン取得 トークンをCookieに保存し、元のURLへリダイレクト Lambda@EdgeのViewer Requestで認証状態を検証 デモアプリケーション:https://d3buhhosrcok41.cloudfront.net
#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のリソースにシンプルにアドオンできるようにしてみました。
#serverlesstokyo #serverlesstokyo Entra ID側の設定 Entra ID設定手順 1. AzureポータルでEntraIDにアプリケーション登録 2. リダイレクトURIに「https://[CloudFront Domain]/callback」を設定 3. クライアントシークレットを生成 4. APIアクセス許可を設定 SSMパラメータストアに以下を保存: • テナントID • クライアントID • クライアントシークレット
#serverlesstokyo #serverlesstokyo メリットと注意点 メリット 注意点 • アプリ改修不要で実装可能 • Edgeなのでus-east-1にデプロイ • CDKで再利用可能なコンストラクト • 複雑なアクセス制御には不向き • Entra IDの設定が別途必要 • Lambda@Edgeの制約を理解する必要あり
#serverlesstokyo #serverlesstokyo CDKコピペで"シュッと"SSO! ぜひお試しください! GitHubリポジトリ: https://github.com/nidcode/cloudfront-entraid-sample ご清聴ありがとうございました