Azure App Serviceのアプリ認証クイックスタート解説|変更点・影響範囲・確認ポイント

Azure App ServiceのWebアプリに認証を追加するなら、まず確認すべきポイントは「App Service認証を有効にするだけで十分か」「Microsoft Entraのどのテナントを使うか」「未認証アクセスをどう扱うか」の3つです。公式クイックスタートでは、Azure App Service上のWebアプリに組み込み認証を追加し、Microsoft EntraをIDプロバイダーとして使って、組織内ユーザーにアクセスを制限する手順が示されています。(Microsoft Learn)

特に管理者や開発者が注意すべきなのは、この手順が「ログイン画面を付ける方法」だけではない点です。アプリ登録、テナント種別、クライアントシークレット、有効なトークンの対象、未認証リクエスト時の応答、検証方法まで含めて確認しないと、意図せず外部ユーザーが入れる構成になったり、APIで302リダイレクトが返ってクライアント処理が壊れたりする可能性があります。

なお、Microsoft Learnの該当ページでは、確認時点で日本語版は2026年4月13日、英語版は2026年4月17日の最終更新と表示されています。2026年5月20日時点の公式情報として社内展開や記事化を行う場合も、実際の運用判断では公式ページの更新日と現在のAzureポータル表示をあわせて確認してください。(Microsoft Learn)

目次

Azure App Serviceのアプリ認証クイックスタートで整理された内容

今回のクイックスタートは、Azure App Serviceで動作するWebアプリに対して、App Serviceの組み込み認証・承認機能を使い、Microsoft Entraによるサインインを設定する内容です。

App Service認証は、アプリケーションコードの前段で動作する認証モジュールです。有効化すると、受信したHTTPリクエストはアプリコードで処理される前に認証・承認モジュールを通過します。Microsoft Learnでは、SDK、特定言語、アプリケーションコードの変更なしに構成できる機能として説明されています。(Microsoft Learn)

実務上は、次のような用途に向いています。

利用シーンApp Service認証が向いている理由注意点
社内向けポータルMicrosoft Entraの組織ユーザーだけにアクセスを限定しやすい退職者・異動者のアクセス制御はEntra側の運用も必要
開発・検証環境の保護アプリ改修なしで認証を追加できる本番と同じアプリ登録を使い回さない
簡易な業務Webアプリログイン機能を自前実装せずに導入できるロール別権限など細かな認可はアプリ側実装が必要
APIを含むアプリ未認証アクセスをブロックできるWebサイト向けの302ではなく、APIでは401を検討する

ポイントは、App Service認証が「認証を簡単に追加する仕組み」であり、すべての認可要件を自動で満たすものではないことです。Microsoft Learnでも、既定では認証を主に扱い、リソースへのアクセス可否などの認可判断はアプリケーション側で必要になる場合があると説明されています。(Microsoft Learn)

何が変わるのか:実務上の注目ポイント

今回の公式クイックスタートを読むうえで重要なのは、「Azure App Serviceに破壊的変更が入る」というより、現在の推奨手順に沿って認証設定をどう確認すべきかが明確になっている点です。

特に注目すべきポイントは次の4つです。

注目点内容影響を受けやすい担当者
Microsoft Entraを前提にした手順IDプロバイダーとしてMicrosoftを選択し、Microsoft Entraの組織ユーザーに制限するAzure管理者、ID管理者
テナント種別の選択従業員・ビジネスゲスト向けのWorkforce構成と、外部ユーザー向けのExternal構成が分かれる情シス、SaaS開発者
アプリ登録の自動作成App Service認証設定時にMicrosoft Entra側のアプリ登録を作成する手順が含まれるEntra管理者、開発者
未認証リクエストの扱いWebサイトではHTTP 302、APIではHTTP 401など、用途に応じた選択が必要Web開発者、API開発者

クイックスタートでは、従業員やビジネスゲスト向けには「Workforce configuration」、外部ユーザー向けには「External configuration」を使う流れが示されています。社内利用なのに外部構成を選ぶ、または外部顧客向けなのに現在の組織テナントだけに制限する、といった設定ミスは運用後の手戻りにつながります。(Microsoft Learn)

対象者:誰が確認すべきか

この公式情報は、Azure App Serviceを直接操作する開発者だけでなく、Microsoft Entra、セキュリティ、運用管理に関わる担当者も確認すべき内容です。

Azure管理者が確認すべきこと

Azure管理者は、対象のApp Serviceで認証が有効になっているか、どのIDプロバイダーが設定されているかを確認します。

特に確認したい項目は以下です。

確認項目推奨される確認内容
Authentication設定「Require authentication」になっているか
IDプロバイダーMicrosoft Entraが意図したテナントで構成されているか
未認証リクエストWebアプリなら302、APIなら401など用途に合っているか
Token storeアプリがユーザートークンを利用する場合に有効か
デプロイスロット本番・検証で別のアプリ登録を使っているか

App Service認証はポータルから簡単に有効化できますが、簡単であるほど「誰が、どのテナントで、どの権限を持つアプリ登録を作ったか」が見落とされがちです。運用環境では、作業履歴と構成値をチケットや設計書に残しておくことをおすすめします。

開発者が確認すべきこと

開発者は、App Service認証を有効にした後のアプリ動作を確認する必要があります。

たとえば、ログイン後のユーザー情報をアプリ内で使う場合、App Service認証が渡すヘッダーやトークンをどう扱うかを決めます。さらに、管理者だけが見られる画面、一般ユーザーも見られる画面といったロール制御が必要な場合は、App Service認証だけで完結すると考えないほうが安全です。

App Service認証で「ユーザーが誰か」を確認し、アプリ側で「そのユーザーに何を許可するか」を判断する、という分担で設計すると失敗しにくくなります。

Microsoft Entra管理者が確認すべきこと

Microsoft Entra管理者は、アプリ登録、サポートされているアカウントの種類、シークレット、APIアクセス許可を確認します。

クイックスタートでは、組織内ユーザーだけに制限する場合、アプリ登録のサポートされるアカウント種別を「現在のテナント・単一テナント」にする手順が示されています。また、クライアントシークレットの有効期限として推奨180日を選ぶ手順も含まれています。(Microsoft Learn)

180日後に突然ログインできなくなる、といった障害を避けるには、シークレットの期限を監視対象に入れるか、可能な範囲でマネージドIDを使う構成を検討します。Microsoft Learnでは、App Service認証をクライアントシークレットではなくIDで構成する方法にも触れています。(Microsoft Learn)

基本構成:社内向けWebアプリに認証を追加する流れ

社内向けWebアプリであれば、基本的な流れは次のようになります。

手順作業内容確認ポイント
1App ServiceにWebアプリを用意するアプリ名とリソースグループ名を控える
2App Serviceの「認証」からIDプロバイダーを追加するMicrosoftを選択する
3テナント種別を選ぶ社内向けはWorkforce configurationを選ぶ
4アプリ登録を作成する表示名、アカウント種別、シークレット期限を確認する
5追加チェックを設定するクライアント、ID、テナント要件を確認する
6認証設定を有効化するRequire authenticationにする
7アクセス確認を行う組織内ユーザーと外部アカウントでテストする

公式クイックスタートでは、App Serviceの左メニューから「認証」を選び、「IDプロバイダーの追加」を行い、MicrosoftをIDプロバイダーとして選ぶ手順が示されています。その後、現在のテナントを使うWorkforce構成を選び、新しいアプリ登録を作成する流れです。(Microsoft Learn)

「現在のテナント・単一テナント」を選ぶ意味

社内向けWebアプリでは、サポートされるアカウントの種類を「現在のテナント・単一テナント」にするのが基本です。これにより、その組織のMicrosoft Entraテナント内のユーザーを対象にできます。

ただし、「単一テナントにすれば絶対に全アクセス制御が完了する」という意味ではありません。ゲストユーザーを招待している場合、そのゲストが対象になる可能性があります。特定部署だけに限定したい場合や、管理者ロールだけを許可したい場合は、Entra側のユーザー割り当て、グループ、アプリロール、またはアプリケーションコード側の認可処理も検討します。

未認証リクエストはWebサイトとAPIで分ける

未認証リクエストに対する応答は、実務でよくミスが起きる箇所です。

公式ドキュメントでは、WebサイトではHTTP 302リダイレクト、APIではHTTP 401 Unauthorizedが推奨される選択肢として示されています。(Microsoft Learn)

用途選びやすい設定理由
ブラウザで使う社内WebサイトHTTP 302 Found redirect未ログイン時にサインイン画面へ誘導しやすい
REST APIHTTP 401 UnauthorizedAPIクライアントが認証エラーとして処理しやすい
存在を隠したい管理APIHTTP 404 Not foundを検討ただし監査・運用設計と合わせて判断する
明確に拒否したい管理画面HTTP 403 Forbiddenを検討認証済みだが権限不足の扱いと混同しないよう注意

WebアプリとAPIを同じApp Serviceで動かしている場合は、302がAPIクライアントに返ってしまい、JSONを期待する処理がHTMLのログイン画面を受け取ることがあります。API利用がある場合は、エンドポイント構成を分けるか、認証設定とアプリ側処理の役割を事前に整理してください。

外部ユーザー向け構成で注意すべきこと

外部顧客や一般ユーザーにサインインさせる場合は、社内向けのWorkforce構成ではなく、External configurationを使う流れが示されています。外部構成では、既存の外部テナントを選ぶか、新しい外部テナントを作成し、ユーザーフローやブランド設定を行う手順が含まれます。(Microsoft Learn)

外部ユーザー向けで特に注意したいのは、次の点です。

注意点具体例対応策
サインアップ可否誰でもメールアドレスで登録できる状態になるユーザーフローとアクセス条件を確認する
ブランド上書き既存テナントのブランド設定を変更してしまう変更前に影響範囲を確認する
テナント管理検証用外部テナントが残り続ける不要になったら削除手順を実施する
顧客データ保護外部ユーザーの属性・同意管理が必要プライバシー・規約・監査要件を整理する

外部ユーザー向けの認証は、社内SSOよりも運用設計の影響が大きくなります。ユーザー登録、退会、パスワードリセット、サポート窓口、監査ログ確認まで含めて設計してください。

既存環境への影響範囲

今回のクイックスタートを確認して、既存環境で特に棚卸しすべき範囲は次のとおりです。

既存のApp Service認証設定

まず、対象App Serviceの「認証」設定を確認します。古い手順で構成したアプリでは、未認証リクエスト時の動作、トークンストア、アプリ登録、シークレット期限が現在の運用ルールと合っていないことがあります。

確認すべき項目は以下です。

項目確認内容
認証の有効化本当に認証が必須になっているか
IDプロバイダーMicrosoft Entraの正しいテナントを参照しているか
発行者URL単一テナント・マルチテナントの意図と一致しているか
Allowed token audiences想定するaud値だけが許可されているか
Token storeアプリが必要とする場合だけ有効か
クライアントシークレット期限切れ・期限間近ではないか

Allowed token audiencesは、受け入れるアクセストークンのaudクレームを制限する設定です。複数のクライアントアプリやカスタムApplication ID URIを使っている場合、明示的な設定が必要になることがあります。設定されている場合、許可リストに一致しないaudのトークンは拒否されます。(Microsoft Learn)

Microsoft Entraのアプリ登録

App Service認証をポータルから設定すると、Microsoft Entra側にアプリ登録が作成されます。ここで問題になりやすいのが、環境間の使い回しです。

Microsoft Learnでは、各App Serviceアプリに個別のアプリ登録を構成し、権限と同意を分け、本番・検証などの環境間で権限を共有しないことがベストプラクティスとして示されています。(Microsoft Learn)

たとえば、検証スロットと本番スロットで同じアプリ登録を使っていると、検証用に追加したリダイレクトURIや権限が本番にも影響する可能性があります。安全に運用するなら、少なくとも本番、ステージング、開発でアプリ登録を分ける設計にしてください。

Azure AD Graphを使っていた古い実装

古いアプリでは、Azure AD Graphに依存している場合があります。Microsoft Learnでは、Azure AD GraphからMicrosoft Graphへの移行が必要であり、App Service認証の構成変更が必要になる場合があると説明されています。(Microsoft Learn)

特に、https://graph.windows.netへの参照、古いresourceパラメーター、Azure AD Graph向けの権限要求が残っていないかを確認してください。アプリコード内でグループメンバーシップ確認やユーザー属性取得を行っている場合は、Microsoft Graphへの移行計画もあわせて立てる必要があります。

管理者・開発者向けチェックリスト

公開前、または既存環境の棚卸し時には、次のチェックリストを使うと抜け漏れを減らせます。

チェック項目管理者開発者確認のポイント
対象App Serviceを特定したアプリ名、リソースグループ、サブスクリプションを確認
認証が必須になっている「Require authentication」か
IDプロバイダーが正しいMicrosoft Entraの意図したテナントか
アカウント種別が適切社内向けなら単一テナントを基本に検討
未認証時の応答が適切Webは302、APIは401を基本に検討
Token storeの要否を判断したMicrosoft Graphなどのトークン利用があるか
アプリ登録を環境ごとに分けた本番と検証で使い回していないか
クライアントシークレット期限を管理している期限切れ前の更新手順があるか
外部アカウントで侵入テストをした個人Microsoftアカウントや別テナントで確認
アプリ側の認可処理を確認したロール、グループ、部署制御が必要か

このチェックリストで重要なのは、Azureポータルの設定だけを見て終わらせないことです。実際に未ログイン状態、組織内ユーザー、権限のないユーザー、外部アカウントでアクセスし、期待通りの挙動になるかを確認してください。

展開時に失敗しやすいポイント

302リダイレクトをAPIに返してしまう

最もよくある失敗の一つが、APIに対して302リダイレクトを返してしまうことです。

ブラウザで見るWebサイトなら、未ログイン時にサインイン画面へリダイレクトされるのは自然です。しかしAPIクライアントやバッチ処理では、302を認証エラーとして扱えない場合があります。その結果、HTMLのログイン画面をAPIレスポンスとして受け取り、JSONパースエラーが発生することがあります。

APIを守る場合は、HTTP 401 Unauthorizedを基本に検討してください。(Microsoft Learn)

「認証」と「認可」を混同する

App Service認証を有効にすると、ログインしていないユーザーをブロックできます。しかし、ログインしたユーザー全員に同じ操作を許可してよいとは限りません。

たとえば、社内ポータルで次のような要件がある場合は、アプリ側の認可処理が必要です。

  • 人事部だけが従業員情報を閲覧できる
  • 管理者だけがマスターデータを更新できる
  • 営業担当者は自分の顧客だけを閲覧できる
  • ゲストユーザーは一部画面に入れない

App Service認証は、ユーザーやクレーム情報をアプリ側へ渡せます。そこから先の業務権限制御は、アプリケーション側で実装・検証するのが基本です。

クライアントシークレットの期限切れを見落とす

クイックスタートでは、クライアントシークレットの有効期限として推奨180日を選ぶ手順が示されています。(Microsoft Learn)

これはセキュリティ上は望ましい一方、運用上は期限切れによる障害の原因になります。特に、作成者が退職した、検証時に作った設定を本番で使い続けている、更新手順がない、といった環境では注意が必要です。

対応策としては、以下を検討してください。

対応策内容
期限を台帳化するアプリ登録名、シークレット名、期限、担当者を記録する
監視・通知する期限前に更新作業が発生するよう運用に組み込む
更新手順を作るシークレット更新後のApp Service設定変更と動作確認を明文化する
マネージドIDを検討するシークレット管理を減らせる構成が適用できるか確認する

外部テナントを作ったまま放置する

外部構成を試すと、外部テナント、ユーザーフロー、アプリ登録などが作成される場合があります。公式クイックスタートでも、不要になったリソース、アプリ登録、外部テナントは削除するよう説明されています。(Microsoft Learn)

検証後に放置すると、課金だけでなく、使われていないID基盤が残るリスクもあります。検証用に作ったものは、作成時点で削除予定日と担当者を決めておくと管理しやすくなります。

移行・見直し時の進め方

既存のApp Serviceに認証を追加する、または古い認証設定を見直す場合は、いきなり本番に反映しないでください。おすすめの進め方は次の通りです。

フェーズ作業内容成果物
現状確認App Service認証、Entraアプリ登録、シークレット、API利用状況を確認構成一覧
方針決定社内向けか外部向けか、WebかAPIかを整理認証・認可方針
検証ステージング環境でApp Service認証を有効化動作確認結果
移行本番に設定を反映変更作業記録
運用シークレット期限、アプリ登録、アクセス権を定期確認運用チェックリスト

特に、既存アプリでログイン機能を自前実装している場合は、App Service認証との二重認証にならないかを確認してください。ログイン後のセッション、ログアウト処理、リダイレクトURI、Cookie、CSRF対策などが影響を受ける可能性があります。

本番反映前の動作確認

設定後は、Microsoft Entra管理センターでアプリ登録を確認し、サポートされるアカウント種別が意図通りかを見ます。公式クイックスタートでも、作成されたアプリ登録の「Supported account types」が「My organization only」になっているかを確認し、組織外ユーザーのサインインが失敗または拒否されることを検証する手順が示されています。(Microsoft Learn)

本番反映前には、少なくとも次のテストを行ってください。

テスト期待結果
未ログインでアクセスサインイン画面へ誘導、または401が返る
組織内ユーザーでアクセス正常にWebアプリを利用できる
権限のない組織内ユーザーでアクセスアプリ側の認可で拒否される
個人Microsoftアカウントでアクセス社内向けアプリでは拒否される
別テナントの職場アカウントでアクセス単一テナント構成では拒否される
APIクライアントからアクセス期待するステータスコードとレスポンスが返る
シークレット更新後のアクセスサインインが継続して成功する

テストは通常ブラウザだけでなく、シークレットウィンドウ、別ユーザー、APIクライアントでも行います。ブラウザの既存セッションが残っていると、設定ミスに気づけないことがあります。

まとめ:まず確認すべき次のアクション

Azure App Serviceの「Quickstart: Add app authentication to your web app running on Azure App Service」は、WebアプリにMicrosoft Entra認証を追加し、組織内ユーザーにアクセスを制限するための基本手順です。重要なのは、ポータルで認証を有効化するだけでなく、テナント種別、アプリ登録、未認証時の応答、トークン、認可処理、クリーンアップまで含めて確認することです。

これから対応する場合は、まず対象のApp Serviceを一覧化し、次の3点を確認してください。

  • 社内向けか、外部ユーザー向けか
  • Webサイトか、APIか、両方か
  • App Service認証だけで足りるか、アプリ側の認可処理が必要か

そのうえで、検証環境でApp Service認証を有効化し、組織内ユーザー、外部アカウント、未認証アクセス、APIアクセスを実際にテストします。認証は「設定できた」だけでは不十分です。誰が入れて、誰が入れないのかを確認できて初めて、本番運用に載せられます。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次