2016-04-11 17 views
0

エンドツーエンドで、Windows Server 2012のASP.NETアプリケーションでWindows認証を設定するにはどうすればよいですか? IISの以前のバージョンではPowershellを使用してWindows Server 2012のIIS WebサイトでWindows認証を有効にする方法?

、あなただけ<authentication><identity>を設定し、Web.Config<authorization>設定し、それを行うことができます。

<!-- Web.Config --> 
<system.web> 
    ... 
    <authentication mode="Windows /> 
    <identity impersonate="false /> 
    <authorization> 
    <allow users="DOMAIN\user1" /> 
    <allow users="DOMAIN\user2" /> 
    <deny users="*" /> 
    </authorization> 

ここで、IISサイト/ Webアプリケーション自体で認証を有効にする必要があるセキュリティコンポーネントが追加されています。

PowershellでIISの設定を完了するには、Windows Server 2012 Webサーバー用のブートストラップを作成していますか?

注:自己回答を提供します。

答えて

0

上記のWeb.Configは変更する必要はなく、これらの設定は有効です。問題は、Windows認証がサーバーレベルで既定でオフになっているため、IIS自体がこれらの設定に従わないことです。

まず、Windows認証機能Web-Windows-Authとサーバー管理ツール-IncludeManagementToolsをインストールしていることを確認します。

Install-WindowsFeature "Web-Windows-Auth" -IncludeManagementTools ; 

次は、あなたがすでに「AuthSite」という名前の、あなたのサイトを作成し扱ってきた、そして今、私は匿名認証を無効にし、Windows認証を有効にすると仮定しましょう。

Import-Module WebAdministration ; 

# disable anonymous 
Set-WebConfigurationProperty ` 
    -filter "/system.webserver/security/authentication/anonymousAuthentication" ` 
    -PSPath "IIS:\" ` 
    -location "AuthSite" ` 
    -name "enabled" ` 
    -value "False" ; 

# enable Windows authentication 
Set-WebConfigurationProperty ` 
    -filter "/system.webserver/security/authentication/windowsAuthentication" ` 
    -PSPath "IIS:\" ` 
    -location "AuthSite" ` 
    -name "enabled" ` 
    -value "True" ; 

注:-PSPath-Locationを使用しなければならない(-PSPath上の完全なパスだけではなく)、それ以外の場合はあなたがロックされたセクションの問題が発生します:https://stackoverflow.com/a/31416581/740575

VARIATION:あなただけのWebアプリケーションを作成していると仮定"デフォルト"サイトの "AuthWebApp"は、-location "Default/AuthWebApp"と置き換えるだけで、-PSPathは同じままです。