[asp.net] IIS / ASP.NET의 모든 사용자 계정은 무엇이며 어떻게 다른가요?

ASP.NET 4.0이 설치된 Windows Server 2008에는 수많은 관련 사용자 계정이 있으며 어떤 계정이 있는지, 어떻게 다른지, 어떤 앱이 내 앱을 실행하는지 알 수 없습니다. 목록은 다음과 같습니다.

  • IIS_IUSRS
  • IUSR
  • DefaultAppPool
  • ASP.NET v4.0
  • NETWORK_SERVICE
  • 지역 서비스.

무엇입니까?



답변

이것은 매우 좋은 질문이며 슬프게도 많은 개발자가 웹 개발자가되고 IIS를 설정하는 맥락에서 IIS / ASP.NET 보안에 대해 충분한 질문을하지 않습니다. 여기로갑니다 …

나열된 신원을 다루려면

IIS_IUSRS:

이것은 이전 IIS6 IIS_WPG그룹 과 유사합니다 . 이 그룹의 모든 구성원이 응용 프로그램 풀 ID로 작동 할 수 있도록 보안이 구성된 기본 제공 그룹입니다.

IUSR:

이 계정은 IUSR_<MACHINE_NAME>IIS5 및 IIS6 웹 사이트 (예 : 사이트 속성의 디렉터리 보안 탭을 통해 구성된 기본 익명 사용자) 인 이전 로컬 계정 과 유사합니다 .

자세한 내용은 다음 IIS_IUSRSIUSR참조하십시오.

IIS 7의 기본 제공 사용자 및 그룹 계정 이해

DefaultAppPool:

응용 프로그램 풀이 응용 프로그램 풀 ID 기능을 사용하여 실행되도록 구성된 경우 풀이라는 “합성 된”계정 IIS AppPool\<pool name>이 즉시 만들어져 풀 ID로 사용됩니다. 이 경우 IIS AppPool\DefaultAppPool풀 수명 동안 생성 된 합성 계정 이 있습니다. 풀을 삭제하면이 계정이 더 이상 존재하지 않습니다. 파일 및 폴더에 권한을 적용 할 때는을 사용하여 추가해야합니다 IIS AppPool\<pool name>. 또한 컴퓨터 사용자 관리자에이 풀 계정이 표시되지 않습니다. 자세한 내용은 다음을 참조하십시오.

응용 프로그램 풀 ID

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 년 부터이 훌륭한 답변에 부딪 쳤으며 여기에는 유용한 정보가 많이 있으며 읽을 가치가 있습니다.

‘로컬 시스템’계정과 ‘네트워크 서비스’계정의 차이점은 무엇입니까?


답변