システムサービスで使用されるように、macOSにプロキシ資格情報を保存する方法は?


14

企業のNTLMプロキシの背後でmacOS Sierra 10.12.6を使用しています。私のブラウザと他のアプリケーションは、システムプロキシ設定を使用しています。この設定では、プロキシで認証するためにユーザー名とパスワードを保存しています。これは正常に機能しています。

インターネット上の情報にアクセスしようとするシステムサービスには、ユーザーアカウントのプロキシ資格情報へのアクセス権がないように見える永続的な問題があります。数分ごとに次のポップアップが表示され、何をしても(システム環境設定で資格情報を更新するか、[今すぐしない]を押すと)ポップアップが何度も表示されます。

プロキシ認証が必要

ポップアップのテキストは次のとおりです。

プロキシ認証が必要

システム環境設定でHTTPプロキシhttp://xxx.xxx.xxx.xxx:yyyyのパスワードを入力します。

このポップアップが表示されないようにするにはどうすればよいですか?

私が今までに試したこと:

  • システム環境設定で資格情報を更新しました(ネットワーク>詳細設定>プロキシ
  • ログインキーチェーンからシステムキーチェーンに資格情報エントリをコピーしました。ブログポストまたはフォーラムの質問で推奨事項を読んだためです。

これらはどれも機能せず、数分ごとにこのポップアップが表示されます。また、表示されるパターンはないようです。

更新1:

上記のダイアログの[ システム環境設定]ボタンをクリックして資格情報を入力すると(たとえば、Safariを開いてロケーションボックスにURLを入力することで強制できます)、ログインキーチェーンに2つのレコードが作成されます。コンテンツ:

@ xxx.xxx.xxx.xxx(ユーザー名)今日のインターネットパスワード09:10-ログイン

両方のレコードは、同じ名前と属性で同一に見えます。どちらも、これを要求したアプリケーションがAuthBrokerAgent次のとおりであることを示しています。

キーチェーンアクセス制御

アップデート2:

私もこの提案を試しました:https : //discussions.apple.com/message/23848961#message23848961ログインキーチェーンからシステムキーチェーンに認証エントリをコピーしてから再起動しますが、それは修正しませんでした。実際、これを入力すると、恐ろしい「プロキシ認証が必要です」ボックスが再び表示されました...

アップデート3:

Wiresharkを使用して、マシンとプロキシ間のトラフィックを確認しました。

  • プロキシは407 Proxy Authentication Requiredand Proxy-Authenticate: NTLMで返されます。これは、プロキシがNTLMを使用しているため、私の期待に沿ったものです。
  • トラフィック(iCloudなど)で見たいくつかの例は、NTLMSSP_NEGOTIATE応答を送り返します。
  • プロキシがNTLMSSP_CHALLENGEリクエストとともに戻ってきます
  • サービスはNTLMSSP_AUTH、どこかから取得したはずのユーザー名で応答します。
  • プロキシは最終的に応答します 200 Connection established

私にとって、これは、システムがどこかからユーザー名とプロキシを取得できる場合、一般にプロキシ認証が正常に機能することを示しています。すべてのシステムサービスが見つけられるように、ユーザー名/パスワードをどのように/どこに保存するかという疑問が残ります。一部のシステムサービス(私が推測する)には、現在保存しているプロキシ資格情報を見つける手段がありません。



どのプロキシを使用していますか?(別の過去の生活から)私たちが使用していたプロキシにはパスワードの保存を禁止する機能があり、それによりユーザーに毎回認証を強制することを覚えています。これがケースかもしれません。
アラン

1
同じ問題がときどき発生し、Citrix VPNソリューションに接続しているため、この問題を解決しましたか。ポップアップが表示されると、何度も繰り返し表示され、最終的にADアカウントがロックされます。これを解決する解決策をまだ見つけていません。私はMacBook Proを使用しており、IT部門の大半はWindowsベースであるため、ITから有用な情報を受け取ることができませんでした。VPNに接続したら、Solaris SPARCサーバーで実行されているOracleアプリケーションで作業しています。この問題を解決する方法を見つけていただければ幸いです。スタン
スタンレペッタ

申し訳ありませんが、この解決策はまだ見つかりません。私がやっていることは、ボタンを押さずにプロキシ資格情報を要求するウィンドウを画面の横に移動することです
...-nwinkler

回答:


9

これは、システム/ネットワーク管理者が、基本認証スキーム以上のものを必要とするプロキシ強制認証を構成している場合に予想される動作です。

Microsoftのページから認証の処理の下でHTTP認証の概要セクション:

認証スキームには、2つの一般的なタイプがあります。

  • ユーザー名とパスワードがクリアテキストでサーバーに送信される基本認証スキーム。
  • チャレンジレスポンススキーム。チャレンジレスポンス形式が可能です。

チャレンジ/レスポンス方式により、より安全な認証が可能になります。要求にチャレンジ/レスポンス方式を使用した認証が必要な場合、適切なステータスコードと認証ヘッダーがクライアントに返されます。クライアントは、ネゴシエートでリクエストを再送信する必要があります。サーバーはチャレンジとともに適切なステータスコードを返し、クライアントは要求されたサービスを取得するために適切な応答で要求を再送信する必要があります。

使用しているプロキシが基本認証スキームを利用している場合、キーチェーンに保存されているもので認証に十分です。場合は、チャレンジ・レスポンスのこのケースで- -パスワードを再入力-スキームが使用されている、あなたが最も可能性の高い詳細情報を提供する必要があります認証するために、そして、これはあなたが見ているものです。

NTLM認証プロセス

これは単に資格情報を保存するだけではありません。クライアントは、サーバーから生成された要求に基づいて応答を生成する必要があります。以下は、Microsoftのドキュメントごとに、クライアント/サーバーの観点からの認証プロセスの非常に簡潔な説明です。

  • クライアントはユーザー名をサーバーに(プレーンテキストで)送信します。
  • サーバーは、チャレンジまたはノンスと呼ばれる16バイトの乱数を生成し、それをクライアントに送信します。
  • クライアントは、このチャレンジをユーザーのパスワードのハッシュで暗号化し、結果をサーバーに返します。これは応答と呼ばれます。
  • サーバーは、次の3つのアイテムをドメインコントローラーに送信します。

    • ユーザー名
    • クライアントに送信されたチャレンジ
    • クライアントから受信した応答
  • DCは、暗号化されたチャレンジとレスポンスを検証します。認証されると、アクセスが許可されます。

上記の3番目のステップで、クライアントはサーバーから取得した乱数をハッシュする必要があります。 これは本質的に、macOSクライアントに保存するものがないことを意味します。

少なくとも、Active Directoryドメインに参加する必要があります。つまり、特定の組織に対してKerberosサポートを有効にして適切に構成する必要があります。

上記でリンクした「認証の処理」ドキュメントには重要なフレーズがあります。

認証が必要な場合は、HttpOpenRequestの呼び出しでINTERNET_FLAG_KEEP_CONNECTIONフラグを使用する必要があります。INTERNET_FLAG_KEEP_CONNECTIONフラグは、認証プロセスの完了中に接続を維持するために、NTLMおよびその他のタイプの認証に必要です。接続が維持されない場合、認証プロセスはプロキシまたはサーバーで再起動する必要があります。

(エンファシス鉱山)

表示される症状に基づいて、組織はプロキシへの認証を必要としているようです。ユーザー名/パスワードは有効ですが、認証を(再)要求し続けます。これはおそらく、接続状態が失われ、これを繰り返し行う必要があるためです。それはさらにポイントを強調します...

この問題を解決するには、ネットワーク管理者に連絡して認証の問題を支援する必要があります。


1
使用されている認証スキームを確認するにはどうすればよいですか?アプリケーションがプロキシと通信しているときに参照できるHTTPヘッダーはありますか?Chromeのネットワークコンソールでこれを実行できますか、またはWiresharkのようなものを使用する必要がありますか?
-nwinkler

おそらく、Wiresharkを使用する必要があります。暗号化されたトラフィックでもあることに注意してください。
アラン

1
Wiresharkで見たものからの情報を質問に追加しました。
-nwinkler

1
回答にNTLMに関する情報を追加していただきありがとうございます。私はNTLMを理解しており、Wiresharkの出力からわかるように、それは機能している-あなたが説明するチャレンジ/レスポンスは、例えばDropboxやiCloudサービスに対して行われている。どのサービスが繰り返しプロキシ認証ダイアログを表示するのかはまだわかりません。あなたの答えには多くの情報が含まれていますが、これまでのところ私には本当に役立ちません。
-nwinkler

1
Connection Established!= Access Granted。これが機能していることを確認できるのは、IT部門のシステム/ネットワーク管理者です。
アラン


-2

から次のコマンドを実行しますConsole.app

networksetup -setwebproxy "Your Interface Name" "web proxy hostname or IP" 
8080 on username password

キーチェーンアクセスについて尋ねられます。レコードをキーチェーンに追加することに同意すると、キーチェーンが開いているときは常にパスワードなしでアクセスできます


1
これを試しましたが、問題は解決しません。このコマンドはユーザーのプロキシ設定を設定し、ユーザーのloginキーチェーンに認証を保存します。これを行った直後に、上に示したプロキシ認証ダイアログが再び表示されました。あなたの提案された修正は私のために問題を修正しません。
-nwinkler

ログインキーチェーンがロックされているか、二重のレコードがあるため
Siarhei Karatkevich

1
ログインキーチェーンのロックが解除されていることを再確認しました。ただし、二重レコードに関するポイントは有効かもしれません。ログインおよびシステムキーチェーンで見つかったプロキシ認証のすべてのレコードを削除しましたが、元の投稿のダイアログで一度パスワードを入力するとすぐに、ログインキーチェーンに2つのレコードがあり、両方とも正確に同じデータ。削除した場合、資格情報を再度入力すると元に戻ります。
-nwinkler

1
securityリストしたコマンドを試しました-何も見つかりません。find-generic-passwordコマンドをに変更するとfind-internet-password、キーチェーンが「インターネットパスワード」のようなエントリをリストするので、それは実行されます。
-nwinkler

1
プロキシURLはxxx.xxx.xxx.xxxとして設定されます。これがコマンドラインなどからの動作です。Wiresharkを使用して何かをキャプチャしようとします。
-nwinkler
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.