
ローカル ドメイン コントローラに対して NTLM 認証のみをサポートするプロキシ経由で HTTP 要求を送信する必要のあるアプリケーションがあります。要求を送信するために libcurl SSPI ビルドを使用していますが、これは Windows 7+ ではローカル システムとして、Windows Server 2008 ではドメイン ユーザーとして動作します。
しかし、S2008 でローカル システム ユーザーとしてアプリケーションを実行すると、プロキシによる認証が失敗します。NTLM ハンドシェイクを検査すると、次のことがわかります。
- 「匿名交渉」フラグはS2008クライアントによって設定され、
- ユーザー詳細は送信されません。
Windows 7 以降では匿名認証は使用されず、代わりにコンピュータ ID 資格情報が使用されます。一部の調査によると、匿名 NTLM 認証の代わりにコンピュータ資格情報を使用するのは Windows 7 以降の新機能です (テックネットを参照) この場合、匿名認証を成功させるために、ドメイン コントローラーまたはプロキシで匿名認証を有効にする方法はありますか?
私は、winbind と Windows Server 2012 R2 ドメイン コントローラーを備えた Squid 3.2.8 プロキシを使用しています。
答え1
Windows Server 2008 での認証に関するこれらの問題は、Windows 7 / Windows Server 2008 R2 + の NTLM 機能の違いが原因です。
これらのレガシー オペレーティング システムの認証を有効にするには、次の 3 つのグループ ポリシー設定を有効にして構成する必要がありますComputer Configuration/Policies/Windows Settings/Security Settings/Local Policies/Security Options
。
- ネットワーク セキュリティ: NTLM SSP ベース (セキュア RPC を含む) クライアントの最小セッション セキュリティ - 「128 ビット暗号化が必要」をクリア
- ネットワーク セキュリティ: NTLM SSP ベース (セキュア RPC を含む) サーバーの最小セッション セキュリティ - 「128 ビット暗号化が必要」をクリアします
- ネットワーク セキュリティ: ローカル システムが NTLM のコンピューター ID を使用できるようにする - このポリシーを有効にする
これらの変更を適用すると、従来のオペレーティング システムはプロキシを正常に認証して通過できるようになります。