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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Kuniteru Asami
September 03, 2026
Technology
260
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
84
Azure Load Testingを利用したパフォーマンステスト
kuniteru
1
89
Understanding Azure Application Gateway
kuniteru
0
68
堅牢&運用楽々な WordPress を Azure App Service で
kuniteru
0
160
Azure PaaS とのよりセキュアな接続 - 初級編
kuniteru
0
69
あらためて Azure Virtual Network
kuniteru
0
54
Other Decks in Technology
See All in Technology
Oracle Cloud Infrastructure(OCI):Onboarding Session(はじめてのOCI/Oracle Supportご利⽤ガイド)
oracle4engineer
PRO
3
21k
spanner-autoscalerに学ぶ CRD設計パターン 〜自動化と緊急時対応を両立する Kubernetesコントローラーの作り方〜
tkuchiki
0
210
Account Factory for Terraformによる 標準化されたアカウント発行の自動化
pensuke628
0
120
全社共通データ基盤をつくる。ソニーのDatabricks活用とデータガバナンス設計の裏側
sony
0
280
生成AIを使って「人が」考える技術 ― AI時代の人機共想と実践ノウハウ|UNITT AC2026
ishiirikie
0
480
AWS DevOps Agent スキルをつかいこなそう / Master AWS DevOps Agent Skills
kinunori
2
650
スキルを作る、その前に!複数人で使われるスキルを 作るためのプロセス
junkifurukawa
1
120
個別開発で終わらせない。 現場の課題をプロダクトの強さに変える StockmarkのFDE
ktkrhr
0
470
20260930_Gemma4_Hands-on
tsho
0
190
ログラスのマルチプロダクトを 支える認証基盤 〜テナントごとに異なる統制とどう向き合うか〜
dada4386
3
280
顧客の成果創出とプロダクトの成長を 両立するためのFDE
sansantech
PRO
0
540
Execution in the Kingdom of Agents: Reflections on Abstraction and Complexity
bcantrill
0
410
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
331
22k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Writing Fast Ruby
sferik
630
63k
What's in a price? How to price your products and services
michaelherold
247
13k
The Curious Case for Waylosing
cassininazir
1
550
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Leo the Paperboy
mayatellez
10
2.3k
sira's awesome portfolio website redesign presentation
elsirapls
0
430
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
First, design no harm
axbom
PRO
2
1.3k
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
400
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 トレーニング