IIS7 권한 개요-ApplicationPoolIdentity
최근에 핵심 웹 서버로 IIS7로 업그레이드했으며 권한 측면에서 개요가 필요합니다. 이전에는 파일 시스템에 쓸 필요가있을 때 AppPool 사용자 (네트워크 서비스)에게 디렉토리 또는 파일에 대한 액세스 권한을 부여했을 것입니다.
IIS7에서는 기본적으로 AppPool 사용자가로 설정되어 ApplicationPoolIdentity
있습니다. 따라서 작업 관리자를 확인하면 'WebSite.com'이라는 사용자 계정이 IIS 프로세스 (IIS의 웹 사이트 이름 인 'Website.com')가 실행되고 있음을 알 수 있습니다.
그러나이 사용자 계정을 사용하여 권한을 부여하려고하면이 사용자 계정이 존재하지 않습니다. 그렇다면 어떤 사용자에게 권한을 부여 할 수 있는지 어떻게 알 수 있습니까?
편집 ==================================================== ===============================
스크린 샷의 문제는 아래를 참조하십시오. 저희 웹 사이트 (www.silverchip.co.uk)는 사용자 이름 SilverChip.co.uk에서 실행됩니다. 그러나 필적을 추가하면이 사용자가 존재합니다!
================================= AppPool 이미지보기
ApplicationPoolIdentity는 실제로 IIS7 +에서 사용하는 가장 좋은 방법입니다. 동적으로 생성되고 권한이없는 계정입니다. 특정 응용 프로그램 풀에 대한 파일 시스템 보안을 추가하려면 IIS.net의 "응용 프로그램 풀 ID"를 참조하십시오 . 빠른 버전 :
응용 프로그램 풀의 이름이 "DefaultAppPool"인 경우 (이름이 다른 경우 아래의 텍스트 만 바꾸십시오)
- Windows 탐색기를 엽니 다
- 파일 또는 디렉토리를 선택하십시오.
- 파일을 마우스 오른쪽 버튼으로 클릭하고 "속성"을 선택하십시오
- "보안"탭을 선택하십시오
- "편집"을 클릭 한 다음 "추가"버튼을 클릭하십시오
- "위치"버튼을 클릭하고 로컬 컴퓨터 를 선택했는지 확인하십시오 . ( 서버가 하나 인 경우 Windows 도메인이 아닙니다 .)
- " 선택할 개체 이름을 입력하십시오 :"텍스트 상자에 " IIS AppPool \ DefaultAppPool "을 입력하십시오. (여기서 "DefaultAppPool"을 응용 프로그램 풀의 이름으로 바꾸는 것을 잊지 마십시오.)
- "이름 확인"버튼을 클릭하고 "확인"을 클릭하십시오.
이름을 확인할 때 도메인 이름이 아닌 서버의 로컬 이름을 사용해야합니다.
IIS AppPool\DefaultAppPool
(이것이 나를 약간 넘어 뜨 렸기 때문에 단지 알림) :
Windows Server 2008 (r2)에서는 속성-> 보안을 통해 폴더에 응용 프로그램 풀 ID를 할당 할 수 없습니다. 다음을 사용하여 관리자 명령 프롬프트를 통해 수행 할 수 있습니다.
icacls "c:\yourdirectory" /t /grant "IIS AppPool\DefaultAppPool":(R)
IIS 기본 구성 으로는 IIS AppPool \ YourAppPoolName 사용자 에게 액세스 권한이 충분하지 않을 수 있습니다 .
제 경우에는 여전히 AppPool 사용자를 추가 한 후 HTTP 오류 401.3-권한이 없음 오류 가 발생 했으며 IUSR 사용자 에게 권한을 추가 한 후에 만 수정되었습니다 .
기본적으로 익명 액세스는 IUSR을 사용하여 수행되므로 필수 입니다. 다른 특정 사용자 인 응용 프로그램 풀을 설정하거나 IUSR을 계속 사용할 수 있지만 적절한 권한을 설정하는 것을 잊지 마십시오.
이 답변의 크레딧 : HTTP Error 401.3-Unauthorized
Jon Adams의 최고 답변
PowerShell 사람들을 위해 이것을 구현하는 방법은 다음과 같습니다.
$IncommingPath = "F:\WebContent"
$Acl = Get-Acl $IncommingPath
$Ar = New-Object system.security.accesscontrol.filesystemaccessrule("IIS AppPool\DefaultAppPool","FullControl","ContainerInherit, ObjectInherit", "None", "Allow")
$Acl.SetAccessRule($Ar)
Set-Acl $IncommingPath $Acl
파트 A : 응용 프로그램 풀 구성
Suppose the Application Pool is named 'MyPool' Go to 'Advanced Settings' of the Application Pool from the IIS Manager
Scroll down to 'Identity'. Trying to edit the value will bring up a dialog box. Select 'Built-In account' and under it, select 'ApplicationPoolIdentity'.
A few lines below 'Identity', you should find 'Load User Profile'. This value should be set to 'True'.
Part B: Configuring your website
- Website Name: SiteName (just an example)
- Physical Path: C:\Whatever (just an example)
- Connect as... : Application User (pass-through authentication) (The above settings can be found in 'Basic Settings' of the site in the IIS Manager)
- After configuring the basic settings, look for the 'Authentication' configuration under 'IIS' in the main console of the site. Open it. You should see an option for 'Anonymous Authentication'. Make sure it is enabled. Then right click and 'Edit...' it. Select 'Application Pool Identity'.
Part C: Configuring your folder
The folder in question is C:\Whatever
- Go to Properties - Sharing - Advanced Sharing - Permissions, and tick 'Share this folder'
- In the same dialog box, you will find a button 'Permissions'. Click it.
- A new dialog box will open. Click 'Add'.
- A new dialog box 'Select Users or Groups' will open. Under 'From this location' make sure the name is the same as your local host computer. Then, under 'Enter the object names', type 'IIS AppPool\MyPool' and click 'Check Names' and then 'Ok'
- Give full sharing permissions for 'MyPool' user. Apply it and close the folder properties
- Open folder properties again. This time, go to Security - Advanced - Permission, and click Add. There will be an option 'Select a Principal' at the top, or some other option to choose a user. Click it.
- The 'Select Users or Groups' dialog box will open again. Repeat step 4.
- Give all or as many permissions you need to the 'MyPool' user.
- Check 'Replace all child object permissions..." and Apply and close.
You should now be able to use the browse the website
Just to add to the confusion, the (Windows Explorer) Effective Permissions dialog doesn't work for these logins. I have a site "Umbo4" using pass-through authentication, and looked at the user's Effective Permissions in the site root folder. The Check Names test resolved the name "IIS AppPool\Umbo4", but the Effective Permissions shows that the user had no permissions at all on the folder (all checkboxes unchecked).
I then excluded this user from the folder explicitly, using the Explorer Security tab. This resulted in the site failing with a HTTP 500.19 error, as expected. The Effective Permissions however looked exactly as before.
암호를 사용하여 IUSER라는 새 사용자를 만들어 간단하게 모든 asp.net 문제를 해결하고 네트워크 서비스 및 사용자 그룹에 추가했습니다. 그런 다음 모든 가상 사이트 및 응용 프로그램을 만들고 암호를 사용하여 인증을 IUSER로 설정하십시오. IUSER 및 BAM을 포함하도록 높은 수준의 파일 액세스를 설정하여이 사이트를 포함하여 3-4 개 이상의 문제를 해결하십시오.
데이브
참고 URL : https://stackoverflow.com/questions/7334216/iis7-permissions-overview-applicationpoolidentity
'Programming' 카테고리의 다른 글
PHP Explode ()와 동등한 자바 스크립트 (0) | 2020.03.03 |
---|---|
Rails 자산 파이프 라인에서 글꼴 사용 (0) | 2020.03.03 |
언제 & 왜 대리자를 사용해야합니까? (0) | 2020.03.03 |
Sass Nesting for : hover가 작동하지 않음 (0) | 2020.03.03 |
Swift에서 HTTP 요청을하는 방법? (0) | 2020.03.03 |