programing

Powershell에서 IIS 앱에 대한 인증 사용

copyandpastes 2023. 8. 14. 23:39
반응형

Powershell에서 IIS 앱에 대한 인증 사용

다음 명령을 사용하여 IIS 웹 사이트에 대한 설정 방법을 알고 있습니다.

Set-WebConfigurationProperty -filter "/system.webServer/security/authentication/windowsAuthentication" -name enabled -value true -PSPath "IIS:\" -location $siteName

하지만 저는 그 웹사이트 안에 있는 응용 프로그램들을 위해 그것을 설정하고 싶습니다.예를 들어, 저는 "MySite"라는 이름의 IIS 웹 사이트를 가지고 있으며, 그 안에는 두 개의 응용 프로그램이 있습니다.하나는 Windows 인증을 사용하고 다른 하나는 사용하지 않도록 설정합니다.따라서 사이트 수준에서 활성화하는 것은 둘 다에 대해 활성화될 것이며, 이는 제가 원하지 않는 것입니다.

저는 잠긴 섹션을 처리하는 문제가 있었는데 수락된 답변은 이 문제를 해결하기 위해 GUI를 여는 것을 제안합니다. 처음에 PowerShell로 피하려고 합니다.

단답형

윈도우즈 인증 사용 및 익명 인증 사용 안 함

$iisSiteName = "Default Web Site"
$iisAppName = "MyApp"

Write-Host Disable anonymous authentication
Set-WebConfigurationProperty -Filter '/system.webServer/security/authentication/anonymousAuthentication' -Name 'enabled' -Value 'false' -PSPath 'IIS:\' -Location "$iisSiteName/$iisAppName"

Write-Host Enable windows authentication
Set-WebConfigurationProperty -Filter '/system.webServer/security/authentication/windowsAuthentication' -Name 'enabled' -Value 'true' -PSPath 'IIS:\' -Location "$iisSiteName/$iisAppName"

잠긴 횡단면 처리

IIS 설명서에 나와 있는 대로:

인증 섹션은 일반적으로 잠겨 있습니다. 즉, web.config 파일에 쓸 수 없고 대신 중앙 애플리케이션 host.config 파일에 써야 합니다.

우리는 사용해야 합니다.-PSPath그리고.-Location매개 변수

Set-WebConfigurationProperty -filter /system.webServer/security/authentication/windowsAuthentication -name enabled -value true -PSPath IIS:\ -location DemoSite/DemoApp

따로따로 할 필요는 없습니다.-PSPath그리고.-Location매개 변수다음과 같이 결합할 수 있습니다.

-PSPath "IIS:\Sites\$SiteName\$AppName"

따라서 실제 명령은 다음과 같습니다.

Set-WebConfigurationProperty -Filter "/system.webServer/security/authentication/windowsAuthentication" -Name Enabled -Value True -PSPath "IIS:\Sites\$SiteName\$AppName"

다음 오류가 발생할 수 있습니다.

Set-WebConfigurationProperty : 이 경로에서 이 구성 섹션을 사용할 수 없습니다.이 문제는 섹션이 상위 수준에서 잠겨 있을 때 발생합니다.잠금은 기본적으로(ModeDefault="Deny" 재정의함) 또는 overrideMode="Deny" 또는 기존 allowOverride="false"로 위치 태그에 의해 명시적으로 설정됩니다.

ServerFault에서 패닝하는 Tom은 여기에 해결책을 제공했습니다.나는 여기서 그의 단계를 반복했습니다.

  1. IIS 관리자 열기
  2. 왼쪽 트리에서 서버 이름 클릭
  3. 오른쪽 창의 관리 섹션에서 구성 편집기를 두 번 클릭합니다.
  4. 맨 위에서 횡단 시스템을 선택합니다.웹 서버/보안/인증/익명인증
  5. 오른쪽 창에서 섹션 잠금 해제를 클릭합니다.
  6. 맨 위에서 횡단 시스템을 선택합니다.웹 서버/보안/인증/창인증
  7. 오른쪽 창에서 섹션 잠금 해제를 클릭합니다.

언급URL : https://stackoverflow.com/questions/24535200/enable-authentication-for-iis-app-in-powershell

반응형