답변:
이것은 매우 좋은 질문이며 슬프게도 많은 개발자가 웹 개발자가되고 IIS를 설정하는 맥락에서 IIS / ASP.NET 보안에 대해 충분한 질문을하지 않습니다. 여기로갑니다 ...
나열된 신원을 다루려면
IIS_IUSRS:
이것은 이전 IIS6 IIS_WPG
그룹 과 유사합니다 . 이 그룹의 모든 구성원이 응용 프로그램 풀 ID로 작동 할 수 있도록 보안이 구성된 기본 제공 그룹입니다.
IUSR:
이 계정은 IUSR_<MACHINE_NAME>
IIS5 및 IIS6 웹 사이트 (예 : 사이트 속성의 디렉터리 보안 탭을 통해 구성된 기본 익명 사용자) 인 이전 로컬 계정 과 유사합니다 .
자세한 내용은 다음 IIS_IUSRS
을 IUSR
참조하십시오.
DefaultAppPool:
응용 프로그램 풀이 응용 프로그램 풀 ID 기능을 사용하여 실행되도록 구성된 경우 풀이라는 "합성 된"계정 IIS AppPool\<pool name>
이 즉시 만들어져 풀 ID로 사용됩니다. 이 경우 IIS AppPool\DefaultAppPool
풀 수명 동안 생성 된 합성 계정 이 있습니다. 풀을 삭제하면이 계정이 더 이상 존재하지 않습니다. 파일 및 폴더에 권한을 적용 할 때는을 사용하여 추가해야합니다 IIS AppPool\<pool name>
. 또한 컴퓨터 사용자 관리자에이 풀 계정이 표시되지 않습니다. 자세한 내용은 다음을 참조하십시오.
ASP.NET v4.0:
-
이것이 ASP.NET v4.0 응용 프로그램 풀의 응용 프로그램 풀 ID입니다. DefaultAppPool
위를 참조하십시오 .
NETWORK SERVICE:
-
이 NETWORK SERVICE
계정은 Windows 2003에 도입 된 기본 제공 ID NETWORK SERVICE
입니다. 응용 프로그램 풀과 웹 사이트를 실행할 수있는 권한이 낮은 계정입니다. Windows 2003 풀에서 실행되는 웹 사이트는 여전히 사이트의 익명 계정 (IUSR_ 또는 익명 ID로 구성한 모든 계정)을 가장 할 수 있습니다.
Windows 2008 이전의 ASP.NET에서는 ASP.NET이 응용 프로그램 풀 계정 (일반적으로 NETWORK SERVICE
) 에서 요청을 실행하도록 할 수있었습니다 . 또는 로컬 파일 <identity impersonate="true" />
설정을 통해 사이트의 익명 계정을 가장하도록 ASP.NET을 구성 할 수 있습니다 web.config
(설정이 잠겨 있으면 파일의 관리자가 수행해야 함 machine.config
).
<identity impersonate="true">
공유 응용 프로그램 풀이 사용되는 공유 호스팅 환경 (가장 계정이 해제되지 않도록 부분 신뢰 설정과 함께)에서 설정 이 일반적입니다.
IIS7.x / ASP.NET에서 가장 제어는 이제 사이트의 인증 구성 기능을 통해 구성됩니다. 따라서 풀 ID IUSR
또는 특정 사용자 지정 익명 계정 으로 실행되도록 구성 할 수 있습니다.
LOCAL SERVICE:
LOCAL SERVICE
계정은 내장 서비스 제어 관리자가 사용하는 계정입니다. 로컬 컴퓨터에 대한 최소 권한 집합이 있습니다. 사용 범위가 상당히 제한되어 있습니다.
LOCAL SYSTEM:
당신은 이것에 대해 묻지 않았지만 완전성을 추가하고 있습니다. 이것은 로컬 내장 계정입니다. 상당히 광범위한 특권과 신뢰를 가지고 있습니다. 이 ID로 실행되도록 웹 사이트 또는 응용 프로그램 풀을 구성해서는 안됩니다.
실제로:
실제로 웹 사이트 보안에 대한 기본 접근 방식 (사이트에 자체 응용 프로그램 풀이있는 경우 (IIS7 MMC의 새 사이트에 대한 기본값))은에서 실행하는 것 Application Pool Identity
입니다. 이는 응용 프로그램 풀의 고급 설정에서 사이트의 ID를 다음으로 설정하는 것을 의미합니다 Application Pool Identity
.
그런 다음 웹 사이트에서 인증 기능을 구성해야합니다.
익명 인증 항목을 마우스 오른쪽 단추로 클릭하고 편집하십시오.
"응용 프로그램 풀 ID" 가 선택되어 있는지 확인하십시오 .
파일 및 폴더 권한을 적용 할 때 필요한 모든 권한을 응용 프로그램 풀 ID에 부여합니다. 예를 들어 ASP.NET v4.0
풀 권한에 대해 애플리케이션 풀 ID를 부여하는 경우 탐색기를 통해이를 수행 할 수 있습니다.
"이름 확인"버튼을 클릭하십시오 :
또는 ICACLS.EXE
유틸리티를 사용하여이 작업을 수행 할 수 있습니다 .
icacls c : \ wwwroot \ mysite / grant "IIS AppPool \ ASP.NET v4.0":( CI) (OI) (M)
... 나 ... 당신이 사이트의 응용 프로그램 풀을 호출하는 경우 BobsCatPicBlog
다음 :
icacls c : \ wwwroot \ mysite / grant "IIS AppPool \ BobsCatPicBlog":( CI) (OI) (M)
이것이 문제를 해결하는 데 도움이되기를 바랍니다.
최신 정보:
나는 2009 년 부터이 훌륭한 답변에 부딪 쳤으며 여기에는 유용한 정보가 많이 있으며 읽을 가치가 있습니다.