ApplicationPoolIdentity 계정에 권한을 할당하는 방법


263

Windows Server 2008의 IIS 7에서는 응용 프로그램 풀을 NetworkService 계정 대신 "ApplicationPoolIdentity"계정으로 실행할 수 있습니다.

이 "ApplicationPoolIdentity"계정에 권한을 할당하는 방법 머신에서 로컬 사용자로 나타나지 않습니다. 어디서나 그룹으로 나타나지 않습니다. 원격으로 좋아하는 곳은 어디에도 없습니다. 로컬 사용자, 그룹 및 기본 제공 계정을 탐색 할 때 목록에 나타나지 않거나 목록에 비슷한 것이 나타나지 않습니다. 무슨 일이야?

이 문제가있는 유일한 사람은 아닙니다 . 예를 들어 IIS 7.5 + Windows 7의 ApplicationPoolIdentity 관련 문제를 참조하십시오 .


"안타깝게도 이것은 Windows Server 2008 / Windows Vista에서 객체 선택기의 제한 사항입니다. 이미 여러 사람이 발견 한 것처럼 icacls 와 같은 명령 줄 도구를 사용하여 앱 풀 ID에 대한 ACL을 조작 할 수 있습니다 ."

답변:


289

업데이트 : 원래 질문은 Windows Server 2008에 대한 것이지만 Windows Server 2008 R2 및 Windows Server 2012 (및 Windows 7 및 8)에 대한 솔루션이 더 쉽습니다. NTFS UI를 통해 직접 입력하여 사용자를 추가 할 수 있습니다. 이름은 IIS APPPOOL \ {app pool name} 형식입니다. 예를 들면 다음과 같습니다. IIS APPPOOL \ DefaultAppPool.

IIS APPPOOL\{app pool name}

참고 : 아래 의견에 따라 두 가지 사항을 알아야합니다.

  • 검색 필드가 아닌 "사용자 또는 그룹 선택"에 직접 문자열을 입력하십시오.
  • 도메인 환경에서는 먼저 위치를 로컬 컴퓨터로 설정해야합니다.

Microsoft Docs 기사 : 응용 프로그램 풀 ID> 보안 리소스 참조

원래 응답 : (Windows Server 2008의 경우)이 기능은 훌륭한 기능이지만 언급했듯이 아직 완전히 구현되지 않았습니다. 명령 프롬프트에서 icacls와 같은 앱 풀 ID를 추가 한 다음 GUI에서 관리 할 수 ​​있습니다. 예를 들어, 명령 프롬프트에서 다음과 같이 실행하십시오.

icacls c:\inetpub\wwwroot /grant "IIS APPPOOL\DefaultAppPool":(OI)(CI)(RX)

그런 다음 Windows 탐색기에서 wwwroot 폴더로 이동하여 보안 권한을 편집하십시오. DefaultAppPool이라는 그룹 (그룹 아이콘) 모양이 표시됩니다. 이제 권한을 편집 할 수 있습니다.

그러나 이것을 전혀 사용할 필요는 없습니다. 원하는 경우 사용할 수있는 보너스입니다. 이전 방법으로 앱 풀마다 사용자 정의 사용자를 생성하고 사용자 정의 사용자를 디스크에 할당 할 수 있습니다. 그것은 완전한 UI 지원을 가지고 있습니다.

이 SID 주입 방법은 단일 사용자를 사용할 수 있지만 각 앱 풀에 대해 고유 한 사용자를 만들지 않고도 각 사이트를 서로 완전히 분리 할 수 ​​있기 때문에 좋습니다. 꽤 인상적이며 UI 지원으로 더 나아질 것입니다.

참고 : 응용 프로그램 풀 사용자를 찾을 수 없으면 Application Host Helper Service라는 Windows 서비스가 실행 중인지 확인하십시오. 응용 프로그램 풀 사용자를 Windows 계정에 매핑하는 서비스입니다.


1
그것은 사용자가 그룹에 사는 그룹과 같지 않기 때문에 일종의 이상한 짐승입니다. 컴퓨터 계정과 완전히 다른 사용자 계정과는 다릅니다. 앱 풀 계정은 앱 풀 ID 사용자를 '중복'합니다. 예를 들어 네트워크 서비스를 사용하는 5 개의 앱 풀과 사용자 지정 계정을 사용하는 5 개의 앱 풀을 가질 수 있지만 10 개의 서로 다른 시스템 관리 앱 풀 계정입니다. 장점은 c : \ inetpub \ temp \ appPools 폴더에서 자동으로 관리되며 시스템을 깨끗하게 잠급니다. IIS는 이들을 잘 활용합니다. 폴더 사용은 선택 사항입니다.
Scott Forsyth-MVP

29
권한을 편집 할 때 "IIS APPPOOL \ DefaultAppPool"을 "사용자 또는 그룹 선택"에 직접 검색하지 않고 검색하면 "Win7 x64 및 Win2k8 R2 x64에서 테스트 됨"에 유의하십시오.
밀라노 Gardian

5
Win7 및 Win2k8 R2에 맞습니다. Win2k8 RTM에서는 구현되지 않았지만 R2에는 있습니다.
Scott Forsyth-MVP

9
마지막으로이 있어요 - 당신이 @Milan GARDIAN이 위라고 직접적으로 같은 응용 프로그램 풀의 이름을 입력하는 경우 로컬 컴퓨터 후 작동에 위치 필드를 변경
인 Ciaran Bruen

4
'알아야 할 두 가지'에 대해 대단히 감사합니다. 나는이 두 가지에 대해 걸림돌이었고, 이것은 문제와 내가 필요한 것을 달성하는 방법에 대한 명확하고 간단한 설명이었습니다. MSDN 문서가 명확하지 않은 것은 부끄러운 일입니다.
Ian Grainger

22

From this location필드가 local machine도메인이 아닌로 설정되어 있는지 확인해야 합니다.

나는 같은 문제를 겪었고 일단 변경되면 정상적으로 작동했습니다.


4

"역할"마다 그룹을 작성하고 파일 시스템에서 해당 그룹 액세스를 지정해야합니다. 그런 다음 필요에 따라 앱 풀을 역할 별 그룹에 추가하십시오. 이 방법으로 나중에 앱 풀을 제거하고 가상 사용자가 poof 가 된 경우에도 모든 권한을 다시 실행하는 것에 대해 걱정할 필요가 없으며 기존 앱 그룹에 대체 앱 풀을 추가하기 만하면됩니다.


3

@Scott Forsyth-MVP 답변을 읽은 후 Application Host Helper Service를 다시 시작하려고했습니다. 그것은 나를 위해 문제를 해결했습니다.


0

WS8 R2를 실행 중이고 IIS APPPOOL\DefaultAppPoolWindows 탐색기를 통해 추가 할 수 없습니다 . 그것이 작동하는 유일한 방법은 명령 줄을 사용하는 것입니다.

cacls [파일 경로] / T / E / G "IIS APPPOOL \ DefaultAppPool": C


2
이상하게도 "IIS AppPool \ DefaultAppPool"을 수락해야했습니다. 대소 문자가 혼합되어 있습니다. 처음으로했던 것처럼 모두 대문자가 GUI에서 허용되지 않았습니다.
Jeff McJunkin

0

이 질문이 msdb 데이터베이스에서 _sp_send_dbmail을 실행하는 방법에 대한 것이라면 (msdb에서 SQL send Database Mail 저장 프로 시저 사용) 다음과 같은 해결 방법이 있습니다. "DatabaseMailUserRole"역할 멤버 자격을 사용하여 데이터베이스의 .net 응용 프로그램 사용자 이름 (.net 앱의 연결 문자열에 정의 됨)을 msdb 사용자에 추가하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.