Microsoft Entra公式更新を解説:app notificationsとpackage identityの確認ポイント

2026年4月30日の公式更新「Fix false claim: app notifications do not require package identity」を確認するうえで、最初に押さえるべき結論は明確です。これはMicrosoft Entra IDそのものの認証仕様変更ではなく、Windows App SDKの通知機能に関する公式ドキュメントの誤った説明を修正した更新です。Microsoft Entra IDはAzure ADの新名称であり、既存のログインURL、API、PowerShellコマンドレット、MSALなどは名称変更後も継続利用できます。今回の論点は「Microsoft Entraのアプリ登録」と「Windowsアプリのpackage identity」を混同しないことです。(Microsoft Learn)

特に重要なのは、AppNotificationManagerを使うapp notificationsについて、「package identityが必須」と一律に判断しないことです。Microsoftの更新では、WPF、WinForms、WinApp CLI、AI Build関連ドキュメントから、通知にはpackage identityが必要と読める記述が削除・修正されました。一方で、プッシュ通知、バックグラウンド配信、COM activation、PFN mapping、Microsoft Entraのアプリ登録は別の確認ポイントとして残ります。(GitHub)

目次

公式更新で何が変わったか

今回のコミットは、MicrosoftDocsのwindows-dev-docsリポジトリに対するドキュメント修正です。対象はMicrosoft Entra IDの管理画面そのものではなく、Windows App SDKを使うWindowsアプリ開発者向けドキュメントです。

修正の中心は、次の誤解を取り除くことです。

app notificationsを使うには、必ずpackage identityが必要である

公式更新では、Windows App SDK AppNotificationManager supports both packaged and unpackaged appsという趣旨が示され、WPF/WinFormsの移行ドキュメントやWinApp CLIの説明から、通知をpackage identity必須機能の例として扱う記述が削除されました。AI Build関連ページでも、通知を追加する前にwinapp create-debug-identityでdebug identityを作る手順が削除されています。(GitHub)

この変更を、単に「通知はすべてpackage identity不要になった」と読むのは危険です。正しくは、ローカルのapp notificationsと、クラウド経由のpush notificationsを分けて判断する必要があります。

package identityとMicrosoft Entraのアプリ登録は別物

セキュリティ管理者やコンプライアンス担当が混同しやすいのが、次の2つです。

項目主な役割今回の確認ポイント
package identityWindowsアプリがMSIXなどのパッケージとして実行時IDを持つ状態app notificationsで必須とは限らない
Microsoft Entraのアプリ登録アプリとMicrosoft IDプラットフォームの信頼関係を作る設定push notificationsやトークン取得で必要になる場合がある
PFN mappingパッケージ化されたWindowsアプリのPackage Family NameとAzure AppIdを関連付ける手続きpackaged push notificationsでは事前計画が必要
client secret / certificateアクセストークン取得などで使う資格情報管理・ローテーション・保管方法を監査対象にする

Microsoft Entraのアプリ登録は、アプリとMicrosoft IDプラットフォームの信頼関係を確立するための設定です。アプリ登録時にはサポートされるアカウント種別を選択し、単一テナント、マルチテナント、個人Microsoftアカウント対応などを用途に応じて決めます。(Microsoft Learn)

一方、package identityはWindowsアプリのパッケージングや実行時の識別に関わる概念です。つまり、Microsoft Entra IDでアプリ登録しているからといって、そのアプリがWindows上でpackage identityを持つわけではありません。逆に、MSIXでパッケージ化していても、Microsoft Entraのアプリ登録が不要なローカル通知シナリオもあります。

通知の種類別に確認すべき仕様

今回の更新後は、「通知」という言葉だけで判断せず、どの通知方式を使っているかを切り分けることが重要です。

通知の種類代表的な用途package identityの考え方Microsoft Entra側の確認
ローカルapp notificationsアプリ内処理の完了、保存完了、リマインダー表示AppNotificationManagerはpackaged/unpackagedの両方で利用対象通常はアプリ登録そのものが主論点ではない
push notificationsクラウドサービスからWindowsアプリへ通知truly unpackagedも限定的に対応するが、本番で多いバックグラウンド配信やCOM activationではpackage identityが必要Azure account、アプリ登録、AppId、ObjectId、secretを確認
バックグラウンド配信アプリが起動していない状態での受信・処理package identityが必要になるケースがあるPFN mappingとAppIdの整合性を確認
Microsoft Store向けMSIX配布Store配布、企業内配布、サイドロードMSIXベースの提出ではMSIX packagingが関係するEntra設定とは別に配布方式を確認

Microsoft Learnの通知概要では、WinUI 3やWindows App SDKの新規開発にはAppNotificationManagerが推奨され、WPF、WinForms、unpackaged Win32でもAppNotificationManager via NuGetが示されています。また、比較表ではAppNotificationManagerのpackage identity requirementが「No」と整理されています。(Microsoft Learn)

ただし、push notificationsでは話が変わります。Windows App SDKのpush notificationsはAzure App Registration identitiesを使い、Azure資格情報がWNS Channel URIの要求やアクセストークン取得で必要になります。さらに、packagedアプリではPFNとAzure AppIdのmappingが必要で、処理にはリードタイムを見込む必要があります。(Microsoft Learn)

セキュリティ管理者が最優先で確認すべき点

Microsoft Entraのアプリ登録が不要になったわけではない

今回の更新は「app notificationsにpackage identityが必須という説明は誤り」という修正であり、「push notificationsでMicrosoft Entraのアプリ登録が不要になる」という意味ではありません。

push notificationsを使う場合は、Microsoft Entra側で次の情報を正確に管理する必要があります。

確認項目見るべき場所確認内容
Application ID / Client IDアプリ登録の概要コード、COM activation、PFN mappingで参照するIDと一致しているか
Directory / Tenant IDアプリ登録の概要トークン要求先のテナントと運用テナントが一致しているか
Object IDEnterprise application側Channel URI要求で使うObject IDを誤っていないか
Supported account typesアプリ登録作成時の設定マルチテナントが本当に必要か、社内アプリなのに広く開きすぎていないか
Client secret / certificateCertificates & secrets有効期限、保管場所、ローテーション、不要な資格情報の有無を確認

Windows App SDKのpush通知クイックスタートでは、Azure AppId、TenantId、ObjectIdの記録やclient secretの作成が手順に含まれます。secretは作成直後しか表示されないため、安全な保管が前提です。(Microsoft Learn)

client secretの扱いを監査する

Microsoftのセキュリティベストプラクティスでは、可能な場合はマネージドIDを使い、できない場合は証明書資格情報を検討し、password credentials、つまりclient secretは誤管理や漏えいのリスクがあるため避けるべきとされています。また、使われていない資格情報や期限切れ間近の資格情報を定期的に見直すことも推奨されています。(Microsoft Learn)

実務では、次のような状態が危険です。

  • 開発用secretを本番アプリ登録に残している
  • GitHub ActionsやAzure DevOpsの変数に長期secretを保存している
  • 複数アプリで同じsecretを使い回している
  • 退職者や外部委託先が作成したアプリ登録の所有者が残っている
  • desktop appなのに不要なclient secretが設定されている

特にデスクトップアプリやモバイルアプリのようなpublic client用途では、アプリケーションオブジェクトに資格情報を持たせないことがベストプラクティスとして示されています。今回の更新をきっかけに、通知機能の仕様確認だけでなく、アプリ登録の棚卸しまで進めるべきです。(Microsoft Learn)

開発・運用チームが行うべき確認手順

まず通知機能を棚卸しする

最初に、対象アプリがどの通知を使っているかを分類します。

質問判断基準次のアクション
通知はアプリ内処理から直接表示するだけか保存完了、処理完了などローカルイベントが起点AppNotificationManagerでunpackaged実行を検証
クラウドから端末へ通知するかサーバー側からWNS経由で送信Microsoft Entraアプリ登録とWNS設定を確認
アプリ未起動時にも受信・処理したいかバックグラウンド配信、COM activationが必要package identity、PFN mapping、manifest設定を確認
Store配布やMSIX配布が前提かMicrosoft Store、社内MSIX、サイドロード配布方式とpackage identity要件を別途確認
管理者権限で実行しているかelevated appとして起動する業務アプリ通知が表示されない可能性をテスト

Windows App SDKのapp notificationsは、管理者権限で実行されているアプリではサポートされない制限があります。業務アプリでは「管理者として実行」が運用手順に含まれていることがあるため、通知が出ない原因をpackage identity不足と誤診しないように注意が必要です。(Microsoft Learn)

次にコードとドキュメントの古い前提を直す

古い社内手順書や設計書に、次のような記述があれば修正対象です。

古い記述例修正後の考え方
Windows通知を使うにはMSIX化が必須ローカルapp notificationsとpush notificationsを分けて判断する
AppNotificationManagerはpackage identityなしでは例外になる最新ドキュメントでは一律の例外前提ではない
通知対応のために必ずdebug identityを作るローカル通知だけなら不要な場合がある
Store配布には必ずpackage化が必要MSIXベースの提出とMSI/EXE提出を分けて考える
Entraアプリ登録があればWindows側のpackage identityもあるEntraのアプリ登録とWindowsのpackage identityは別概念

今回のコミットでは、Microsoft Store配布に関する説明も補足されました。StoreはMSI/EXE提出も受け付けるため、「Store distributionにはpackagingが必要」と一律に表現するのは不正確であり、MSIXベースの提出に限定する形へ修正されています。(GitHub)

移行準備で見るべき実務ポイント

WPF/WinFormsの既存アプリは「MSIX化ありき」で進めない

WPFやWinFormsの既存アプリで通知機能を追加する場合、今回の更新前の情報だけを見ていると、不要なMSIX化やpackaged app with external locationへの移行を計画してしまう可能性があります。

WPFアプリの公式手順では、unpackagedアプリがWindows App SDKを使う場合にRuntimeの依存関係やWindowsPackageTypeの設定を確認する流れが示されています。package identityが必要かどうかとは別に、Windows App SDK Runtimeの初期化やNuGetパッケージのバージョン整合性は確認が必要です。(Microsoft Learn)

判断の目安は次の通りです。

アプリの状態推奨される進め方
既存のWPF/WinFormsでローカル通知だけ追加したいまずunpackagedのままAppNotificationManagerで検証する
未起動時のpush受信やCOM activationが必要package identity、manifest、PFN mappingを含めて設計する
Store配布を予定しているMSIX、MSI/EXE、企業内配布のどれを使うかを先に決める
セキュリティレビュー対象の業務アプリEntraアプリ登録、secret、所有者、権限、監査ログを同時に確認する

push notificationsではPFN mappingのリードタイムを入れる

packagedアプリでpush notificationsを使う場合、PFNとAzure AppIdのmappingが必要です。公式手順では、mapping requestはメールで提出し、週次で処理されると説明されています。リリース直前に気づくと、検証や本番切り替えのスケジュールに影響します。(Microsoft Learn)

また、WNS Channel URIは30日で期限切れになるため、古いURIを固定的に保存して使い続ける設計は避けるべきです。起動時に新しいURIを要求し、バックエンドに保存済みのURIと異なる場合は更新する設計にしておくと、通知不達の原因を減らせます。(Microsoft Learn)

コンプライアンス担当が確認すべき監査観点

今回の更新は小さなドキュメント修正に見えますが、監査観点では「誤った前提に基づく過剰設定」と「必要なID管理の見落とし」の両方を防ぐきっかけになります。

監査観点確認内容リスク
最小権限通知のためだけに不要なEntra権限を付けていないか不要な同意、過剰なAPI権限
資格情報管理secretの期限、保管先、所有者、ローテーション手順があるかsecret漏えい、期限切れ障害
テナント範囲マルチテナント設定が本当に必要か外部テナントからの利用リスク
所有者管理アプリ登録のownerが適切か退職者・委託先依存
変更管理ドキュメント更新に伴い設計書・手順書を更新したか古い手順による誤実装
配布方式MSIX、MSI/EXE、Store、社内配布の前提が明確かリリース遅延、PFN mapping漏れ

Microsoftのベストプラクティスでは、アプリの誤構成は停止や侵害につながる可能性があり、アプリのセキュリティと健全性を定期的に評価することが重要とされています。今回のような公式ドキュメント更新は、設計書やリスク評価表を見直す良いタイミングです。(Microsoft Learn)

よくある誤解と失敗しやすいポイント

「通知はpackage identity不要」と雑に一般化する

今回の修正で分かるのは、AppNotificationManagerによるapp notificationsをpackage identity必須と断定するのは誤り、という点です。push notifications、バックグラウンド配信、COM activationまで含めてすべて不要と判断してはいけません。

古いToastNotificationManagerの記事をそのまま使う

検索で見つかる古いサンプルには、Windows.UI.Notifications名前空間のToastNotificationManagerを使うものがあります。Microsoft Learnでは、新しいWindows App SDKアプリではAppNotificationManagerを使うことが推奨されています。既存サンプルを流用する場合は、対象APIとアプリ種別を必ず確認してください。(Microsoft Learn)

Entraのアプリ登録を「WindowsパッケージID」と同じものとして扱う

Microsoft Entraのアプリ登録は、Microsoft IDプラットフォームとの信頼関係を作る設定です。Windowsのpackage identityは、アプリがWindows上でパッケージとして識別される状態です。名称に「identity」が含まれるため混同しがちですが、設計書では必ず分けて記載しましょう。

リリース直前にPFN mappingへ気づく

push notificationsをpackagedアプリで使う場合、PFN mappingの手続きが必要になることがあります。開発完了後に初めて気づくと、リリース日程に影響します。通知機能を要件定義に入れた段階で、Entraアプリ登録、PFN、AppId、ObjectId、secret、manifestをセットで確認してください。

まとめ:今回の更新後に取るべき行動

今回のMicrosoftDocs公式更新は、Microsoft Entra IDの認証仕様変更ではなく、Windows App SDKのapp notificationsとpackage identityに関する説明の誤りを直すものです。実務では、次の順番で確認すると迷いません。

まず、対象アプリの通知がローカルapp notificationsなのか、クラウド経由のpush notificationsなのかを分類します。次に、package identityが必要な機能を使っているかを確認します。そのうえで、Microsoft Entraのアプリ登録、client secret、PFN mapping、テナント範囲、所有者、社内手順書を見直します。

セキュリティ管理者、コンプライアンス担当、エンタープライズIT担当にとって重要なのは、「package identity不要」という一文に飛びつくことではありません。通知方式、配布方式、Microsoft EntraのID管理を分けて整理し、不要な移行を避けつつ、必要な認証・資格情報管理を確実に押さえることです。

この記事を書いた人

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

コメント

コメントする

目次