Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Azure App Service / Container Apps の組み込み認証
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Kuniteru Asami
September 03, 2026
Technology
270
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Azure App Service / Container Apps の組み込み認証
2026/09/03 第 62 回 Tokyo Jazug Night
Kuniteru Asami
September 03, 2026
More Decks by Kuniteru Asami
See All by Kuniteru Asami
Azure Load Testing と Azure用 Jmeter Plugins
kuniteru
0
35
どう買う?Azure
kuniteru
1
760
スケールアウトできるManaged RDBMS - Azure Cosmos DB for PostgreSQL
kuniteru
0
140
現場からみた Azure リファレンスアーキテクチャ答え合わせ | Microsoft Build 2022
kuniteru
1
85
Azure Load Testingを利用したパフォーマンステスト
kuniteru
1
90
Understanding Azure Application Gateway
kuniteru
0
69
堅牢&運用楽々な WordPress を Azure App Service で
kuniteru
0
160
Azure PaaS とのよりセキュアな接続 - 初級編
kuniteru
0
70
あらためて Azure Virtual Network
kuniteru
0
55
Other Decks in Technology
See All in Technology
自律型 AI をセキュアに実装!Gemini と MIG で作る動的コード実行環境
recruitengineers
PRO
1
180
VS Code × GitHub Copilot での Fabric 開発
ryomaru0825
1
260
インバスケット試験対策アプリを 作って見えたAIエージェント構築 ナレッジ2選
shichijoyuhi
1
120
人にやさしく、AIにやさしく、書き手を選ばないIaCのガードレール再考 / Rethinking IaC Guardrails for Humans and AI Alike
kohbis
6
2.1k
個別開発で終わらせない。 現場の課題をプロダクトの強さに変える StockmarkのFDE
ktkrhr
0
560
Codex概要
ymiya55
0
280
20260930_Gemma4_Hands-on
tsho
0
210
Claude Designがめちゃくちゃ便利なので使ってほしい
diggymo
0
280
spanner-autoscalerに学ぶ CRD設計パターン 〜自動化と緊急時対応を両立する Kubernetesコントローラーの作り方〜
tkuchiki
0
230
[2026 Oracle Technical Deep Dive] VMwareワークロードのOCI移行実践ガイド - OCVSでの継続利用からOCIコンピュートへの移行まで (2026年9月17日開催)
oracle4engineer
PRO
0
100
Incremental HTTP
kazuho
5
2k
HacobuにおけるFDEとは/登壇資料(戸井田 裕貴)
hacobu
PRO
1
740
Featured
See All Featured
sira's awesome portfolio website redesign presentation
elsirapls
0
440
Building Adaptive Systems
keathley
44
3.2k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
500
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
560
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
540
Exploring anti-patterns in Rails
aemeredith
4
520
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
550
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
WCS-LA-2024
lcolladotor
0
840
Code Review Best Practice
trishagee
74
20k
Everyday Curiosity
cassininazir
0
340
How to make the Groovebox
asonas
2
2.5k
Transcript
Azure App Service / Container Apps 組み込み認証 その仕組みと、ローカル開発への対応 20 26
/ 09 / 03 第 62 回 Tokyo Jazug Night 浅見 城輝 -株式会社 pnop の
About me Microsoft Azure Database Microsoft Azure 浅見 城輝(あさみ くにてる)
kuniteru.asami @kunyami Find me Find me Microsoft Azure 2012~ BEER Microsoft Azure 2012~ kuniteru.asami @kunyami
Agenda Azure の組み込み認証とは? Azure の組み込み認証を 利用しているサイトの 開発
認証を自前で作るのは大変 •ログイン画面、 IdP との OAuth2 / OIDC のやり取り、セッ ション・トークン管理、 CSRF
対策、複数 IdP 対応などを 自分のアプリケーションに組み込む必要がある •言語やフレームワークのライブラリで楽になる部分はある が、実装・設定の手間とリスクは残る •実装ミスが起きやすく、セキュリティリスクが高い領域で もある
Azure の組み込み認証とは 認証ゲートウェイ 認証処理のコード変更ゼロ •対象は App Service と Container Apps
Apps は仕組みが異なり 別枠で後述) ( Static Web •認証ゲートウェイがリクエストに 割り 込み、 未認証ならロ グイン 画面へ自動リダイレクトする •認証後は、 アプリコードを 書かずに 「 誰がログインしてい るか 」 がヘッダーで 渡ってくる •組み込み認証は主に「 誰であるか 」 を 確認する 仕組み。 ロ グイン 後に何を 許可するかは 、 設定またはアプリ 側で別途 判断する •正式名称ではないが 、 Easy Auth と 呼ばれることも 多い
未認証でアクセス ユーザーからの初回リクエスト IdP へリダイレクト ログイン画面へ転送 リクエストヘッダー ユーザー情報 認証の流れ •リクエストがサイトに 届く
前に、 認証ゲートウェイが •未認証なら 、 IdP ( Entra ID / Google / GitHub イン 画面へ自動リダイレクトされる 割り 込む など ) のログ •認証後はアプリコードを 書かずとも 、 リクエストヘッダー ( X-MS -CLIENT -PRINCIPAL -NAME など ) にユーザー 情報 が含まれる
デモ #1
2つの認証フロー Cookie で管理 Server -directed flow X-ZUMO -AUTH ヘッダー /
Authorization: Bearer ヘッダー Client -directed flow •サーバー(組み込み認証)側が Cookie で認証状態を管理。 ブラウザは意識せず、 Cookie が自動で付いていくだけ •クライアントが 保持したトークンを 、 X-ZUMO -AUTH ヘッダーまたは Authorization: Bearer ヘッダーで 渡す
Token Store •IdP から取得したアクセストークン・リフレッシュトーク ンを、プラットフォーム側が自動的に保存・更新する仕組 み •X-MS -TOKEN -AAD -ACCESS
-TOKEN などのヘッダー経由 で取得できる •認証後に外部API ( Graph API など)を呼びたいときに、 自分でトークン管理をしなくて済む •App Service / Functions / Container Apps 機能 共通で使える
ユーザー属性情報の取得 •名前と ID はそれぞれのヘッダー( PRINCIPAL -NAME/ -ID )で取得 X-MS -CLIENT
- •一部の情報は、 X-MS -CLIENT -PRINCIPAL をデコードし て確認(既定の preferred_username や、 Entra ID のア プリ登録のトークン構成で追加したオプション /グループな ど) •ヘッダーに含まれない情報は、 Token Store のアクセス トークン( X-MS -TOKEN -AAD -ACCESS -TOKEN )を使っ た Graph API 呼び出しで取得 ※Graph API 呼び出しには、 Entra ID のアプリの登録での API アクセ ス許可と、 App Service 側でログイン時に要求するスコープの設定 ( authsettingsV2 )が必要 参考: learn.microsoft.com/en -us/azure/app -service/scenario access -microsoft -graph -as -user -secure -app -
Token Store を使った Graph API 呼び出し # Token Store のトークンをそのまま使う
token = request.headers[ "X-MS-TOKEN-AAD-ACCESS-TOKEN"] resp = requests.get( "https://graph.microsoft.com" "/v1.0/me/memberOf", headers={"Authorization": f"Bearer {token}"}, ) groups = [g["displayName"] for g in resp.json()["value"]]
認証必須ページと 認証不要ページを 混在 •ARM Template の globalValidation 認証を除外したいパスを指定する .excludedPaths に、
サインインできるユーザーを 限定する •Entra ID では、エンタープライズ アプリケーションの「割 り当てが必要ですか?」を「はい」に設定し、対象のユー ザー・グループを割り当てることで、許可した相手に限定 してサインインできるようになる
Static Web Apps 組み込み認証 の •設定方法もアーキテクチャも Apps とは 別物 App
Service/Container •設定方法は staticwebapp.config.json 参考: learn.microsoft.com/en で行う -us/azure/static -web -apps/configuration
リバースプロキシ 経由の注意点 •Front Door や Application Gateway 経由では、設定に よってはバックエンドへの転送時に Host
ヘッダーが書き換 えられる •X-Forwarded -Host ヘッダーの転送設定 + App Service の forwardProxy 設定が必要 側 •設定が無いと、組み込み認証が組み立てるコールバック URL が内部ホスト名になり、 Entra ID 側で「 redirect URI mismatch 」エラーになる
開発時の課題 •組み込み認証は「 Azure 上でしか動かない」ため、ローカ ル開発では未認証・認証済みのいずれの状態も再現できな い •ありがちな回避策:ヘッダーを手動で偽装する、本番/検 証環境に都度デプロイして確認する、など
Azure の組み込み認証を 利用しているサイトの開発 EasyAuth Emulator github.com/pnopjp/easyauth -emulator •oauth 2-proxy をベースにした
、 組み込み認証互換のゲートウェイ を 再現する OSS •対応 IdP : Microsoft Entra ID / Google / GitHub / Apple / Facebook / OIDC •再現しているもの : /.auth/* エンドポイント PRINCIPAL* などの 互換ヘッダー 、 X-MS -CLIENT - •Server -directed flow ( Cookie ) ・ Client -directed flow ( XZUMO -AUTH ヘッダー / Authorization: Bearer ヘッダー ) 対応
デモ #2
VS Code 拡張機能 </> •デバッグセッションの開始・終了に連動して、 EasyAuth Emulator が自動起動・停止する •デバッグを開始するだけで、認証ゲートウェイが裏で立ち 上がっている状態を再現できる
marketplace.visualstudio.com/items?itemName=pnop.e asyauth -emulator
デモ #3
現時点の制限事項 組み込み認証の完全なクローンではない 。 例えば、 次のような 違いがある •Static Web Apps は「
サインインが 必要かどうか 」 の切り 替えのみ 対応 •ヘッダーは 部分実装: X-MS -TOKEN -AAD -EXPIRES -ON / X-MS -TOKEN -AAD -REFRESH -TOKEN など 、 一部のヘッダーは 未対応 •エンドポイントは 実装済みだが完全一致ではない •/.auth/me は動作するがレスポンスは 完全に同一ではない •/.auth/refresh はスタブで 実際のトークン 更新はしない
まとめ Azure の 組み込み認証 ローカル開発 の悩み 認証を肩代わり Azure 専用の壁 •Azure
App Service / Container Apps してくれる 仕組み EasyAuth Emulator Token Store トークンを 自動管理 の組み込み認証は、 アプリコードを •Token Store を 使えば 、 外部API の呼び出しもトークン ローカルで再現 書かずに 認証を 肩代わり 管理を 自分で行わずに済む •一方でAzure 上でしか 動かないため 、 ローカル 開発でのテストでは 利用できない •本番は Azure の組み込み認証 / ローカル 開発は EasyAuth Emulator
株式会社 pnop 株式会社 pnop は Microsoft Azure 皆様のプロジェクトに、 に関する課題解決のプロフェッショナル集団です。 Azure
経験豊富なエンジニアがノウハウを提供いたします。 新規システムを 既存システムを パッケージ・ソリューションを Azure を 利用することで Azure で稼働させしたい Azure に移行したい Azure に対応したい システムコストを Azure で安全・ 安心な Azure を利用することで Azure を 利用しているうえで システムを 提供したい 運用担当者の負担を軽減したい 困っていることを Azure Azure アーキテクチャ 運用設計 設計相談 相談 Azure 開発 Azure 環境構築 下げたい Azure のスキルを向上したい 解決したい Azure トラブル シューティング Azure に関するご相談・お問い合わせ:
[email protected]
https://www.pnop.co.jp Azure トレーニング