ぐらめぬ・ぜぷつぇんのはてダ

2008/11/24以降のメインブログはこちらになります。 : http://www.glamenv-septzen.net/

本はてなダイアリにはコメント・トラックバックを受け付ける記事を公開します。

2008-11-13

[] Squid(WinNT版)でNTLM認証をかけたのだけれど、"Guest"で固定されてしまって嵌った件


お仕事で、ブラウザのProxy設定を取得したいというのが舞い込みまして。とりあえずSquidでProxy環境をでっち上げようとしてました。

面倒くさいのでWindows用のSquidを

http://squid.robata.org/squid_nt.html

を参考に貰ってきまして、Basic認証はすんなりOK。ところがNTLM認証が・・・

ダイアログボックスは表示されるのですが、いつも見かけるWindows認証と違って「ユーザー名」の部分がグレーになって"Guest"のまま入力不可になってしまってるわけです。

えー、ぶっちゃけ数時間ほど嵌りました。Squidも初めて、Proxy認証設定するのも初めて、NTLM使うのも初めてで・・・中々、Windows認証の所まで気が回らなかった。

数時間後、ようやく「普通にProxyサーバの共有ファイルアクセスしたらどうなるかな?」に至り、アクセスしてみるとやっぱり同様。どうやらSquid云々ではなく、NTLM認証ひいてはWindowsログオンがおかしいといろいろGoogleに放り込んでいたら

・「Windows XP 共有フォルダにアクセスできない」

http://hehao1.seesaa.net/article/32115336.html

ようやくヒットしました。この通りの症状です。

というわけで、Proxy鯖のWinXPを調べてみたらこのとおり、「ネットワークアクセス: ローカルアカウントの共有とセキュリティモデル」が「Guestのみ」になってました。

「クラッシック」モードにしたら、無事ユーザー名が入力可能になり、なんとかProxyでNTLM認証を仕立て上げる事が出来ました。

さて・・・で、お仕事の方での「ブラウザからProxy設定を取得したい」ですが、なんかスゲーカオスな気がしてきました・・・。PACファイルへの対応まで考慮し出すと、WinInetだけじゃなくてWinHTTPも視野に入れた方が良いようで。というかWinInetだけではPACのJavaScriptを解釈できないのでJSProxy.dllを使ってJavaScriptとして実行させないとまずいようだけど、JSProxy.dll自体のまともな(=MSDN由来の)情報が皆無に等しい。

http://msdn.microsoft.com/en-us/library/aa383910(VS.85).aspx

これくらいのような気がする。

かといってWinHTTPを使うにしても、

http://msdn.microsoft.com/en-us/library/aa383157(VS.85).aspx

でも述べられているようにPACのreturnで複数のPROXYを返す場合は、最初の一件のみしか取得できないようで万全とも言えないようだ。

更にPACを使わない、1つのProxyに固定する場合はレジストリを見るようです。そこもチェックしないとイケナイ。

・・・うわー。滅茶苦茶ややこしそう。

トラックバック - http://d.hatena.ne.jp/msakamoto-sf/20081113/1226504482