知識マップ: 社内プロキシとWindowsアプリ ── WinINET・WinHTTP・.NETのプロキシ解決を整理する

記事「社内プロキシとWindowsアプリ ── WinINET・WinHTTP・.NETのプロキシ解決を整理する」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。

Windowsのプロキシ設定は1つではなく、WinINETのユーザー別設定、WinHTTPのマシン設定、環境変数という少なくとも3系統があります。そしてどれを読むかを決めるのは設定側ではなくアプリ側です。設定アプリで見えているのはWinINETのユーザー別設定で、Windowsサービスはこれを読みません。「手動なら動くのにサービスだと動かない」の最頻出原因が、この実行アカウントの違いです。netsh winhttp set proxyは静的設定でPAC・自動検出・プロキシ認証を扱わず、PACのFindProxyForURLはURLごとに違うプロキシを返し得ます。.NET Frameworkは実行中アカウントのインターネットオプションを既定にし、.NET(Core以降)は環境変数を先に読んでから、未定義のときだけユーザーのプロキシ設定を読みます。407はプロキシ認証で、サーバー認証の401とは資格情報を渡す相手が違います。

Windowsのプロキシ設定3系統とアプリの読み分けの知識マップWinINETのユーザー別設定・WinHTTPのマシン設定・環境変数という3系統と、どれを読むかがアプリ側で決まっている構図、サービス実行アカウントで設定が見えなくなる落とし穴、PACとWPADによる自動構成、.NET FrameworkとCore以降での既定の違い、407とTLSインスペクションを示す図利用する両立しない推奨される対応利用するで構成できる両立しないで構成できるで構成できる原因になり得る利用するで構成できるで構成できる用いるのは非推奨防止する防止する推奨される対応利用する利用する利用するWinINETWinHTTPWinINETのユーザー別プロキシ設定サービスアカウント(共用のユーザーアカウント)WinHTTPのマシンプロキシ設定PACファイル(FindProxyForURL)グループポリシーMicrosoft Intune宛先URLごとのプロキシ経路分岐WPAD(プロキシ自動検出)HttpClient.DefaultProxyプロキシ環境変数(HTTP_PROXY等).NET Frameworkのdefaultproxy要素HttpClientHandler.Proxy / UseProxyDefaultProxyCredentials / UseDefaultCredentials407 Proxy Authentication RequiredKerberosNTLMTLSインスペクション型プロキシCONNECTトンネル

概念間の関係(全19件)

図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。

主要概念の定義

WinINET
対話型デスクトップアプリ向けのWindows標準HTTPスタック。ユーザーのインターネットオプション・Cookie・資格情報キャッシュを引き継ぐが、サービスでの利用はサポートされない。
WinHTTP
サービス・サーバーサイド用途向けに設計されたWindows標準のHTTPスタック。サービスアカウントでの実行と偽装をサポートする一方、ユーザーのブラウザー設定は共有しない。
WinHTTPのマシンプロキシ設定
netsh winhttpで構成する、サインインしたユーザーがいない文脈のためのマシン単位のプロキシ既定。
サービスアカウント(共用のユーザーアカウント)
複数人が資格情報を共有して使う、フロー実行専用のユーザーアカウント。Microsoftはベストプラクティスとして推奨していない。
WinINETのユーザー別プロキシ設定
設定アプリの「プロキシ」(旧インターネットオプション)で構成する、既定ではユーザーごとに保存されるプロキシ設定。
PACファイル(FindProxyForURL)
URLとホストを引数に取るFindProxyForURL関数を含み、リクエストごとにプロキシのリストまたは直結(DIRECT)を返すスクリプト。
WPAD(プロキシ自動検出)
PACファイルの場所をネットワークから自動的に見つけるプロトコル。
HttpClient.DefaultProxy
ハンドラーでプロキシを明示しない限りすべてのHttpClientインスタンスが使う静的プロパティ。Windowsでは環境変数を先に読み、未定義ならユーザーのプロキシ設定を読む。
.NET Frameworkのdefaultproxy要素
app.configやmachine.configのsystem.net/defaultProxy要素。既定プロキシを定義し、システム設定より優先される。
HttpClientHandler.Proxy / UseProxy
ハンドラーへプロキシを明示指定する方法。OS設定や構成ファイルより優先され、UseProxy = falseならプロキシを一切使わない。
DefaultProxyCredentials / UseDefaultCredentials
システム既定のプロキシへ送る資格情報の指定。多くのクライアントシナリオでは、個別のユーザー名・パスワードではなくサインイン中ユーザーの既定資格情報を使うのが推奨される。
407 Proxy Authentication Required
認証を要求するプロキシが返すステータスコードと、利用可能な認証方式を列挙するProxy-Authenticateヘッダー。サーバー認証の401とは別物。
TLSインスペクション型プロキシ
プロキシがTLSを終端して中身を復号し、再暗号化して転送する構成。クライアントには社内CAの証明書が必要になる。

機械可読データ

このデータセットについて

作成
合同会社小村ソフト
ライセンス
CC BY 4.0 ── 出典(合同会社小村ソフト)とライセンスへのリンクを明示し、改変した場合はその旨を示すことを条件に、再配布・改変を含めて再利用できます
最終確認日
2026-08-22 ── 収録する関係のうち、最後に出典と照合した日

このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。