Active Directory認証が上手く通らず、IISの認証でHTTP 400エラーになる場合の解決方法

Virtual Server 2005 R2や、Search Server 2008 Express等、IISで動作させるWEBサービスの挙動がどうもおかしくなりまして、結構悩んでいたのですがようやく解決する事が出来ました。

細かくアクセス権限を割り当てるために、Active Directory上にグループを僕は大量に登録していたのですが、これによってIISの認証も上手く通らなくなってしまっていたようです。
※クライアントコンピュータ側の解決策は以下に記載してあります。

ユーザーまたはコンピュータ名を判断できません。(この操作を完了するのに十分な記憶域がありません。 ) グループ ポリシーの処理は中止されました。とエラーが表示される

Active Directoryで一元管理するのは非常に楽ですが、一度エラーが発生すると、影響が広範囲に及ぶので結構焦ります。
うーん、kerberos認証おそるべし。

解決策

この問題を解決させるには、以下のレジストリ値をIISを実行している側のサーバに追加して、認証時にクライアントコンピュータから送られるデータを読み込むバッファを増やす必要があります。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters]
"MaxFieldLength"=dword:0000fffe
"MaxRequestBytes"=dword:0007a120

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters]
"MaxClientRequestBuffer"=dword:00008000

また、HKEY_LOCAL_MACHINEを変更した場合には、コンピュータを再起動させる必要があります。

また、この設定はWindows Server 2003やXP以外にも、Windows Server 2008にも有効です。Active Directory上にグループを作りすぎて困ったら実行してみてください。

参考URL

Outlook Web Access ユーザーが Exchange Server 2003 でメールボックスにアクセスしようと、エラー メッセージ:”HTTP 400 不正な要求 (要求ヘッダーが長すぎます)”

IIS 6.0 MaxFieldLength parameter not set correctly

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です