サイトのバインディングでホストヘッダーを使用しているとWindows認証が失敗する

samatsu 1/8/2016 4204 N/A IIS

IISで複数サイトを作成していて、Webサイトのバインディングにホストヘッダーを使用していたのですが、Windows認証を有効にすると401エラーでユーザーを認証することができませんでした。localhostやマシン名を使用した場合はすんなりWindows認証が成功するのですが。

Bingってみたらカスタムのホストヘッダーを使用するとループバックのチェックでWindows認証が失敗するみたいです。回避方法は下記KBに乗っています。

You receive error 401.1 when you browse a Web site that uses Integrated Authentication and is hosted on IIS 5.1 or a later version
https://support.microsoft.com/en-us/kb/896861

KBに従って、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0にBackConnectionHostNamesエントリを追加して、ループバックチェックを無効化したいカスタムのホストヘッダー名を指定することで回避できました。ループバックチェック処理自身を無効化することもできるみたいですが、推奨されていません。

Windows認証で苦労した記憶がなかったので、久々に数時間悩みました。