2013-04-25 11 views
5

実際のサーバー名とは異なるDNSエイリアスを使用してアクセスするIIS 7.5で実行しているサイトがあります。 IE 8では統合認証が失敗していますが、FirefoxとChromeではすべて正常に動作します。IISのWindowsAuthenticationからNEGOTIATEを削除します。

これは、NTLM上でKerberos(別名「ネゴシエート」)を使用しているため、Kerberosがサービスプリンシパルを登録する必要があることがわかりました。これは、 DNS名とサーバー名の不一致が適切に処理されるように名前を付けてください(SETSPNを使用)。

ただし、私のWebサイトは偽装を必要としません。委任するだけで十分です。だからSetSPNを乱用するのではなく、IISのWindowsAuthenticationメソッドのリストから「Negotiate」を削除したいだけです。

私はIISでこれを行う方法を見つけるためにかなりの時間を探しました。私は多くのappcmdコマンドでプレイしましたが、オンラインの例を見つけることができませんでしたか、MSDNのドキュメントを読むか、appcmd /?を使用してappcmdコマンドをWebサーバー全体ではなくサイト内の特定のアプリケーション。少なくとも2日以上の検索時間と、少なくとも3ダースのWebページが訪れたとき、私はまだ無駄になっています。

どのように私はこれを行うことができますか?それはとても簡単にすべきです!

答えて

11

IISで構成エディタを開きます。 IIS 7.5に付属しています。または、IIS 7.0用にIIS administration packをダウンロードできます。影響を与える範囲(サーバー、サイト、またはアプリケーション)に移動し、アイコンを開きます。

IIS Configuration Editor

変更system.webServer/security/authentication/windowsAuthenticationのセクション:

IIS Configuration Editor - Windows Authentication

providers項目をクリックし、右側にEdit Itemsをクリックしてください。 「削除」「交渉」の項目を選択し、クリックしてください:

IIS Configuration Editor - Windows Authentication - providers

が右側のペインにActionsApplyをダイアログボックスを閉じ、クリックしてください。

問題は解決しました。これ以上ケルベロスは交渉しません!

:あなたもアクションでGenerate ScriptをクリックすることができますC#のいずれかに変更を行いますコード、ジャバスクリプト、またはコマンドラインからAPPCMDとを表示するペイン。

設定エディタを使用せずにジョブを実行するには、appcmdステートメントを参考にしてください。

appcmd.exe set config "Virtual/path/to/application" -section:system.webServer/security/authentication/windowsAuthentication /-"providers.[value='Negotiate']" /commit:apphost 
関連する問題