Azure App ServiceのMicrosoft Entra認証 2026年4月更新ポイントと実務対応

Azure App ServiceでMicrosoft Entra認証を使っている場合、2026年4月更新で最優先に確認すべきなのは、Allowed token audiences、Issuer URL、クライアントシークレットの扱い、認証と認可の分離です。特に2026年4月24日の差分では、受け入れるアクセストークンのaudクレームを制御する「Allowed token audiences」の説明が追加され、App ServiceやAzure FunctionsをAPIとして公開している環境では見直しの優先度が高くなりました。(GitHub)

なお、Microsoft Learnの該当ページは表示上「2026年4月27日」が最終更新日になっています。GitHub履歴では、4月24日にAllowed token audiencesの節が追加され、4月27日にマネージドID認証に関するプレビュー表記を外す変更が入っています。本記事では、4月24日の更新を軸にしながら、公開時点で反映されている4月27日の差分も含めて実務向けに整理します。(Microsoft Learn)

目次

Azure App Service Microsoft Entra Authenticationの2026年4月更新で押さえるべきこと

Microsoft公式ドキュメント「Configure Microsoft Entra Authentication – Azure App Service」は、Azure App ServiceまたはAzure FunctionsでMicrosoft Entra IDサインインを構成するための手順を説明しています。App Serviceの組み込み認証は、アプリ側に大きな認証コードを追加せずに、Microsoft Entra、Google、GitHub、OpenID ConnectなどのIDプロバイダーと連携できる機能です。(Microsoft Learn)

今回の更新で、security admins、identity teams、compliance teamsが特に見るべきポイントは次の通りです。

更新・確認ポイント実務上の意味まず確認すること
Allowed token audiencesの明確化App ServiceまたはFunctionsが受け入れるアクセストークンのaudを制限できるAPIのApplication ID URI、クライアントID、カスタムURIが正しく登録されているか
Issuer URLのv2.0化旧形式のsts.windows.netではなく、Microsoft Entra IDの現在の推奨に沿った発行者URLへ寄せるhttps://login.microsoftonline.com/<tenant-id>/v2.0形式になっているか
マネージドIDによるシークレットレス構成クライアントシークレットの期限切れや漏えいリスクを減らせるワークフォース構成でユーザー割り当てマネージドIDを使えるか
追加チェックの活用クライアントアプリ、ID、テナント単位で受け入れ条件を絞れる「any application」を安易に許可していないか
認証と認可の分離App Service認証だけでは細かな権限制御は完結しないロール、テナント、ユーザー属性の検証をアプリ側で実装しているか

Allowed token audiencesが重要になった理由

Allowed token audiencesは、App ServiceまたはAzure Functionsが受け入れるアクセストークンを、audクレームの値で制限する設定です。公式ドキュメントでは、アプリ登録に紐づくトークンは既定で受け入れられますが、複数API、複数Application ID、カスタムApplication ID URIを使う場合は、追加のaudienceを明示する必要があると説明されています。設定済みのリストに一致しないaudを持つトークンは拒否されます。(Microsoft Learn)

これは、単なる設定項目の追加ではありません。APIを公開している企業では、「正しいユーザーがサインインしているか」だけでなく、「そのトークンがこのAPI向けに発行されたものか」を確認する必要があります。Allowed token audiencesは、その入口をApp Service認証側で狭めるための重要な制御点です。

Allowed token audiencesに入れる代表的な値

値の種類例使う場面
Application client IDアプリ登録のクライアントID既定のアプリ登録に対するトークンを受け入れる場合
Application ID URIapi://<application-client-id>SPA、ネイティブアプリ、別APIから対象APIを呼び出す場合
カスタムApplication ID URIhttps://contoso.com/api検証済みドメインを使ってAPIリソースを分かりやすく管理する場合

実務では、「何を入れれば動くか」ではなく、「どのリソース向けに発行されたトークンだけを受け入れるべきか」で判断します。たとえば社内ポータル用のApp Serviceに、別システム向けAPIのaudを追加すると、認証境界が曖昧になります。逆に、APIクライアントがapi://<client-id>をリソースとしてトークンを取得しているのに、Allowed token audiencesへその値を入れていないと、正規ユーザーでも401または403系のエラーになり得ます。

既存環境で確認すべき認証設定

Issuer URLはv2.0形式に寄せる

Microsoft公式ドキュメントでは、Issuer URLは<authentication-endpoint>/<tenant-id>/v2.0形式を使う説明になっています。グローバルAzureのワークフォーステナントでは、認証エンドポイントとしてhttps://login.microsoftonline.comを使う例が示されています。一方、クラウド環境によって認証エンドポイントは異なるため、米国政府クラウドや中国リージョンなどを扱うグローバル企業では、対象クラウドに合ったエンドポイントを確認する必要があります。 (Microsoft Learn)

特に注意したいのは、エクスプレス設定で作成したIDプロバイダーでは、Issuer URLが従来のhttps://sts.windows.netエンドポイントになる場合がある点です。公式ドキュメントでは、現在のMicrosoft Entra IDのベストプラクティスに合わせるため、https://login.microsoftonline.com/<tenant-id>/v2.0へ更新するよう案内されています。 (Microsoft Learn)

Client application、Identity、Tenantの追加チェックを使う

App Service認証では、追加チェックとしてクライアントアプリ、ID、テナントに関する要求を設定できます。Allowed token audiencesだけに頼るのではなく、どのアプリ、どのID、どのテナントからの要求を許可するかを組み合わせて設計するのが現実的です。(Microsoft Learn)

設定目的避けたい設定
Client application requirement呼び出し元アプリを制限する理由なく「any application」を許可する
Identity requirement特定のユーザーまたはアプリIDに絞る退職者、廃止アプリ、古いサービスプリンシパルを残す
Tenant requirement同一テナントまたは許可テナントに絞るマルチテナント構成でテナント検証をアプリ側に任せきりにする
Allowed token audiences対象API向けトークンだけを受け入れる動作確認のために不要なaudienceを追加する

マルチテナントアプリでは、App Service認証を構成しただけで「どのテナントから来たか」を十分に制限できるとは考えない方が安全です。公式ドキュメントでも、マルチテナントシナリオではissuerとtenant IDを検証し、許可された値か確認する必要があると説明されています。(Microsoft Learn)

WebサイトとAPIで未認証時の応答を分ける

認証されていないリクエストへの応答は、WebサイトとAPIで適切な選択が異なります。公式ドキュメントでは、WebサイトにはHTTP 302リダイレクト、APIにはHTTP 401 Unauthorizedが推奨されています。(Microsoft Learn)

対象推奨される応答理由
ブラウザーで使うWebアプリHTTP 302 Found redirect未ログインユーザーをサインイン画面へ誘導しやすい
REST API、Functions APIHTTP 401 UnauthorizedAPIクライアントが認証失敗として処理しやすい
アクセス拒否を明確にしたい管理APIHTTP 403 Forbidden認証済みだが権限がないケースと整理しやすい
存在を見せたくないエンドポイントHTTP 404 Not foundセキュリティ要件に応じて利用するが、監査ログ設計が必要

APIで302リダイレクトを返す設定のままだと、クライアント側でHTMLのログインページを受け取ってしまい、原因調査が難しくなります。FunctionsをバックエンドAPIとして使う場合も、まず401を返す設計にするか確認しましょう。

シークレット運用からマネージドID利用への移行を検討する

2026年4月27日の差分では、マネージドIDを使った認証に関するプレビュー表記が削除されています。ただし、記事上のプレビュー表記が外れたことをもって、すべての組織で即時に本番導入できると短絡的に判断するのは危険です。利用するクラウド、テナント、変更管理、監査要件に合わせて検証する必要があります。(GitHub)

App ServiceのMicrosoft Entra認証では、クライアントシークレットの代わりにユーザー割り当てマネージドIDを使い、フェデレーションID資格情報を通じてクライアントアサーションとして利用する構成が説明されています。この方式は、クライアントシークレットの期限切れ対応や漏えいリスクを減らせる一方、公式ドキュメントではワークフォース構成で利用する方式として説明されています。(Microsoft Learn)

構成向いている場面注意点
クライアントシークレット小規模環境、短期検証、既存運用を維持したい場合期限切れ、ローテーション、漏えい対策が必要
Key Vault参照シークレット管理を集中化したい場合App Serviceのアプリ設定、権限、スロット設定の整合性が必要
ユーザー割り当てマネージドIDシークレットレス運用を進めたい本番環境フェデレーションID資格情報、対象テナント、IDの使い回し禁止を確認する

マネージドIDを使う場合、ユーザー割り当てマネージドIDは対象のApp ServiceまたはAzure Functionsに限定して割り当てるべきです。公式ドキュメントでも、同じIDを別リソースに割り当てると、アプリ登録への不要なアクセスを与えることになると警告しています。(Microsoft Learn)

また、Microsoft Entraアプリやユーザー割り当てマネージドIDに追加できるフェデレーションID資格情報は最大20個です。複数環境や複数アプリで同じ設計を横展開する場合は、この上限も設計時に確認しておきましょう。(Microsoft Learn)

新規構成時はWorkforce tenantとExternal tenantを正しく選ぶ

Microsoft Entra認証の設定では、最初に「誰がサインインするアプリなのか」を決めます。公式ドキュメントでは、従業員やビジネスゲスト向けならワークフォーステナント、消費者やビジネス顧客向けなら外部テナントを使う説明になっています。(Microsoft Learn)

選択肢主な利用者典型例
Workforce configuration従業員、社内ユーザー、B2Bゲスト社内ポータル、管理画面、業務API
External configuration消費者、外部顧客、B2C的なユーザー顧客向けWebサービス、会員サイト、外部ユーザー向け申請システム

ワークフォース構成では、現在のテナントにアプリ登録を作成するケースが多くなります。一方、外部構成では既存の外部テナントを使うか、新しく作成してユーザーフローを構成します。外部テナントでは、メールとパスワード、メールのワンタイムパスコードなどのサインイン方法を扱い、必要に応じてGoogleやFacebookをIDプロバイダーとして追加できます。(Microsoft Learn)

アプリ登録は「自動作成」でよいとは限らない

App Service認証では、アプリ登録を自動作成することも、既存のアプリ登録を指定することもできます。公式ドキュメントでは、特別な理由がなければ新しいアプリ登録を自動作成し、必要に応じてMicrosoft Entra管理センターで後からカスタマイズできると説明されています。一方で、アプリ登録を作成する権限がない場合、App Serviceと異なるテナントのアプリ登録を使う場合、政府クラウドで自動作成オプションが利用できない場合などは、既存登録を使う判断になります。(Microsoft Learn)

セキュリティや監査の観点では、アプリ登録の共有を避けることが重要です。公式ドキュメントでも、各App Serviceアプリに専用のアプリ登録を構成し、権限と同意をアプリごとに分け、環境間で権限を共有しないことがベストプラクティスとして示されています。(Microsoft Learn)

判断向いているケース管理上の注意
新規アプリ登録を自動作成同一テナント内の標準的なWebアプリIssuer URL、サポートされるアカウント種別、Graph権限を後で確認する
既存アプリ登録を指定IDチームが登録を集中管理している環境リダイレクトURI、シークレット、API公開、スコープを手動で整える
テナント外のアプリ登録を指定外部テナントやマルチテナント構成tenant ID、issuer、audience、同意フローを慎重に確認する

認証と認可を混同しない

App Serviceの組み込み認証は、リクエスト元が「誰か」を確認する仕組みです。一方で、「そのユーザーやアプリが何をしてよいか」を判断する認可は、App Service認証だけで完結しない場合があります。公式ドキュメントでも、既定ではApp Service認証は主に認証を扱い、認可はアプリケーションコード側で判断する必要があると説明されています。(Microsoft Learn)

たとえば、管理者画面を保護する場合に「Microsoft Entraでログインできた人は全員管理者」としてしまうのは危険です。アプリ側では、x-ms-client-principalヘッダーやアクセストークンのクレームを使い、ユーザーのグループ、ロール、テナントID、アプリロールなどを検証する必要があります。公式ドキュメントでは、x-ms-client-principalヘッダーにはBase64エンコードされたJSON形式のクレーム情報が含まれ、必要に応じてx-ms-token-aad-access-tokenから基礎となるアクセストークンも扱えると説明されています。(Microsoft Learn)

サービス間通信でも同じです。デーモンクライアントがクライアント資格情報フローでApp Service APIを呼び出す場合、トークンにrolesクレームが含まれることがありますが、App Service認証はそのロール検証を自動では行いません。対象App ServiceまたはFunctions側のコードで、期待するロールを検証する必要があります。(Microsoft Learn)

Microsoft Graph移行もあわせて確認する

古いアプリでは、Azure AD Graphに依存した認可ロジックやグループ確認が残っていることがあります。Microsoft公式ドキュメントでは、Azure AD Graphは非推奨であり、Microsoft Graphへ移行する必要があると説明されています。移行時には、App Service認証設定からhttps://graph.windows.netへの参照やAzure AD Graph向けスコープを外し、Microsoft Graph権限に合わせた設定へ更新します。(Microsoft Learn)

特に2026年時点で既存環境を見直すなら、次の設定を確認してください。

確認項目見る場所対応
Azure AD Graphの参照App Service認証設定、アプリ登録、コードgraph.windows.netを使っていないか確認する
Issuer URLMicrosoft IDプロバイダー設定/v2.0付きのIssuer URLへ寄せる
Microsoft Graph権限アプリ登録のAPI permissions必要最小限のMicrosoft Graph権限だけを付与する
サインインパラメーターauthsettingsまたはauthsettingsV2Microsoft Graphの.defaultスコープ利用を検討する
アプリコードグループ、ユーザー、ロール取得処理Microsoft Graph SDKまたはAPIに置き換える

security admins、identity teams、compliance teamsの確認観点

2026年4月更新は、Azure管理者だけでなく、ID管理、監査、コンプライアンス担当にも影響します。チームごとに見るべき観点を分けると、確認漏れを減らせます。

担当チーム優先して確認すること判断基準
security adminsAllowed token audiences、未認証時応答、追加チェック不要なaudienceや「any application」を許可していないか
identity teamsアプリ登録、Issuer URL、テナント種別、Graph権限テナント、スコープ、同意が設計通りか
compliance teamsシークレット管理、監査証跡、環境分離本番・検証・開発でアプリ登録や権限を共有していないか
開発チームクレーム検証、ロール検証、APIの401処理認可ロジックをApp Service認証任せにしていないか
SRE・運用チームトークンストア、ログ、障害時の切り分け401、403、リダイレクトループを調査できるログがあるか

更新後に失敗しやすいポイント

症状よくある原因対処
正しいユーザーなのにAPIが拒否されるトークンのaudがAllowed token audiencesに含まれていない実際のアクセストークンのaudを確認し、必要な値だけを追加する
APIクライアントがHTMLログイン画面を受け取る未認証時応答が302リダイレクトになっているAPIでは401 Unauthorizedを選ぶ
一部のクライアントアプリだけ失敗するClient application requirementで許可されていない呼び出し元アプリのclient IDを棚卸しする
別テナントからのアクセスが想定外に通るマルチテナント構成でtenant ID検証が弱い許可テナントを明示し、アプリコードでも検証する
ある日突然サインインできなくなるクライアントシークレットの期限切れKey Vault参照またはマネージドID利用を検討する
ロールを付けたのに権限制御されないApp Service認証がロール検証を自動実行すると誤解しているアプリ側でrolesクレームを検証する
Microsoft Graph権限変更後にエラーが出るAzure AD Graph向け設定が残っているgraph.windows.net参照と古いスコープを削除する

既存App Serviceで今すぐ行うべき確認手順

  1. Azure Portalで対象のApp ServiceまたはAzure Functionsを開き、Settings > Authenticationを確認する。
  2. Microsoft IDプロバイダーの設定を開き、アプリ登録、Issuer URL、Client secret setting name、Allowed token audiencesを記録する。
  3. Issuer URLがhttps://login.microsoftonline.com/<tenant-id>/v2.0形式になっているか確認する。国家クラウドや特殊リージョンでは、対象クラウドに合う認証エンドポイントを使う。
  4. APIとして公開しているアプリでは、実際にクライアントが取得しているアクセストークンのaudを確認し、Allowed token audiencesに必要最小限の値だけを登録する。
  5. Client application requirement、Identity requirement、Tenant requirementを確認し、不要な「any application」や過剰に広いテナント許可を削る。
  6. Webサイトは302、APIは401を基本に、未認証リクエストへの応答を見直す。
  7. クライアントシークレットを使っている場合は、期限、ローテーション手順、Key Vault参照、マネージドIDへの移行可否を確認する。
  8. アプリコードで、tenant ID、issuer、roles、groups、appidまたはazpなど、認可に必要なクレームを検証しているか確認する。
  9. Azure AD Graphへの参照が残っていないか、アプリ登録、App Service認証設定、コード、設定ファイルを横断して確認する。
  10. 最後に、設定変更前後の値、テスト結果、承認者、影響範囲を記録し、監査証跡として残す。

次に取るべき対応

Azure App ServiceのMicrosoft Entra Authenticationをすでに使っている場合、まずはAllowed token audiencesとIssuer URLを確認してください。APIを公開している環境では、audクレームの不一致が認証エラーの原因になるだけでなく、逆に広く許可しすぎると不要なトークンまで受け入れるリスクがあります。

次に、クライアントシークレットを使い続けるのか、Key Vault参照やマネージドIDを使うのかを決めます。シークレットレス化は運用負荷と漏えいリスクを下げられますが、フェデレーションID資格情報、テナント、IDの割り当て範囲を正しく設計する必要があります。

最後に、App Service認証を「ログインできるかどうか」だけで評価しないことが重要です。認証の入口はApp Serviceに任せつつ、認可はアプリコード、テナント制御、ロール検証、監査ログまで含めて設計することで、2026年4月更新の意図に沿った安全な構成に近づけます。

この記事を書いた人

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

コメント

コメントする

目次