知識マップ: WinForms/WPFアプリにEntra ID認証を組み込む ── MSAL.NETとWAMブローカーの実務構成
記事「WinForms/WPFアプリにEntra ID認証を組み込む ── MSAL.NETとWAMブローカーの実務構成」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
WinForms/WPFの社内アプリにEntra ID認証を組み込む記事で、MSAL.NETがデスクトップアプリをクライアントシークレットを持たないパブリッククライアントとして扱い、AcquireTokenSilentからAcquireTokenInteractiveへフォールバックする呼び出しパターンを基本形とすることを示す。ユーザー名とパスワードを直接扱うROPCはMFA・条件付きアクセスと非両立で公式に非推奨とされ、Windows環境ではWindows HelloやFIDOキー連携が効くWAMブローカーが推奨される一方、タスクスケジューラなど対話セッション外の無人実行とは両立しない。トークンキャッシュを永続化しないと再起動のたびに対話認証へ戻ってしまい、複数アカウントがキャッシュに残る場合はHomeAccountIdでの照合が、列挙順に依存した誤ったサイレント認証によるアカウント取り違えを防ぐ。
flowchart LR
accTitle: WinForms/WPFのEntra ID認証の知識マップ
accDescr: MSAL.NETがデスクトップアプリをパブリッククライアントとして扱いSilentからInteractiveへフォールバックすること、ROPCの非推奨、WAMブローカーの利点と対話セッション前提の制約、トークンキャッシュ永続化とアカウント誤選択対策の関係を示す図
entra_id["Microsoft Entra ID"]
msal_dotnet["MSAL.NET"]
wam_broker["WAM(Web Account Manager)ブローカー"]
windows_forms["Windows Forms"]
wpf["WPF"]
public_client_application["パブリッククライアント"]
app_registration_entra["Entra IDのアプリ登録"]
redirect_uri["リダイレクトURI"]
admin_consent["管理者の同意"]
ropc["ROPC(Resource Owner Password Credentials)"]
conditional_access["条件付きアクセス"]
acquiretokensilent_pattern["Silent→Interactiveパターン"]
token_cache_persistence["トークンキャッシュの永続化"]
dpapi["DPAPI"]
windows_hello["Windows Hello"]
fido2["FIDO2"]
task_scheduler["タスクスケジューラの無人実行"]
windows_service["Windowsサービス"]
id_token["IDトークン"]
access_token["アクセストークン"]
microsoft_graph["Microsoft Graph"]
home_account_id["HomeAccountId"]
silent_account_misselection["サイレント認証でのアカウント誤選択"]
windows_forms -.->|"利用する"| msal_dotnet
wpf -.->|"利用する"| msal_dotnet
msal_dotnet -->|"実装を担う"| public_client_application
msal_dotnet -.->|"前提とする"| entra_id
public_client_application -->|"前提とする"| app_registration_entra
app_registration_entra -->|"で構成できる"| redirect_uri
app_registration_entra -.->|"前提とする"| admin_consent
public_client_application -.->|"で構成できる"| app_registration_entra
ropc -->|"用いるのは非推奨"| public_client_application
ropc -->|"両立しない"| conditional_access
msal_dotnet -->|"実装を担う"| acquiretokensilent_pattern
acquiretokensilent_pattern -.->|"前提とする"| token_cache_persistence
token_cache_persistence -.->|"利用する"| dpapi
wam_broker -.->|"利用する"| windows_hello
wam_broker -.->|"利用する"| fido2
wam_broker -->|"推奨される対応"| entra_id
wam_broker -.->|"前提とする"| token_cache_persistence
wam_broker -->|"前提とする"| redirect_uri
wam_broker -.->|"両立しない"| task_scheduler
wam_broker -->|"両立しない"| windows_service
msal_dotnet -.->|"利用する"| id_token
msal_dotnet -.->|"利用する"| access_token
microsoft_graph -->|"前提とする"| access_token
home_account_id -->|"軽減する"| silent_account_misselection
acquiretokensilent_pattern -.->|"原因になり得る"| silent_account_misselection
概念間の関係(全25件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- Windows FormsはMSAL.NETを利用します。
- WPFはMSAL.NETを利用します。
- MSAL.NETはパブリッククライアントの実装を担います。
- MSAL.NETはMicrosoft Entra IDを前提とします。
- パブリッククライアントはEntra IDのアプリ登録を前提とします。
- Entra IDのアプリ登録はリダイレクトURIで構成できます。
- Entra IDのアプリ登録は管理者の同意を前提とします。
- パブリッククライアントはEntra IDのアプリ登録で構成できます。
- ROPC(Resource Owner Password Credentials)をパブリッククライアントに用いることは推奨されません。
- ROPC(Resource Owner Password Credentials)は条件付きアクセスと両立しません。
- MSAL.NETはSilent→Interactiveパターンの実装を担います。
- Silent→Interactiveパターンはトークンキャッシュの永続化を前提とします。
- トークンキャッシュの永続化はDPAPIを利用します。
- WAM(Web Account Manager)ブローカーはWindows Helloを利用します。
- WAM(Web Account Manager)ブローカーはFIDO2を利用します。
- WAM(Web Account Manager)ブローカーはMicrosoft Entra IDに対する本記事の推奨です。
- WAM(Web Account Manager)ブローカーはトークンキャッシュの永続化を前提とします。
- WAM(Web Account Manager)ブローカーはリダイレクトURIを前提とします。
- WAM(Web Account Manager)ブローカーはタスクスケジューラの無人実行と両立しません。
- WAM(Web Account Manager)ブローカーはWindowsサービスと両立しません。
- MSAL.NETはIDトークンを利用します。
- MSAL.NETはアクセストークンを利用します。
- Microsoft Graphはアクセストークンを前提とします。
- HomeAccountIdはサイレント認証でのアカウント誤選択を軽減します。
- Silent→Interactiveパターンはサイレント認証でのアカウント誤選択の原因になることがあります。
主要概念の定義
機械可読データ
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。