나는 내 whitt의 끝입니다!IIS가 여전히 풀 ID를 통해 리소스를 액세스하고 가장하지 않은 사용자
서버 2003에서는 기본 인증을 사용하는 INTRANET 응용 프로그램과 전용 계정이있는 응용 프로그램 풀이 있습니다. Web.config의에서
내가 (MVC 3)보기에서
<authentication mode="Windows" />
<identity impersonate="true"/>
를 지정하고 있습니다 :
<p>Environment.UserName (authentication): @Environment.UserName</p>
<p>User.Identity.Name (asp.net account): @User.Identity.Name</p>
이 예상대로 집어되고 내 도메인 계정을 보여줍니다 (나는에 로그인해야 대화 상자를 통해 앱). 큰!
BUT WAIT! 응용 프로그램이 파일 시스템이나 SQL 서버 (다른 컴퓨터)에 액세스 할 때 내 도메인 계정을 통해가 아니라 풀 계정을 통해 액세스합니다. SQL 로그인이 프로파일 러를 통해 들어오는 것을 볼 수 있습니다. 필자는 파일 시스템 권한을 통해이를 확인했습니다. 네트워크 서비스를 사용하도록 풀을 설정하면 사용 권한이있는 도메인 계정을 통해서도 로컬 파일을 만들 수없고 대화 형으로 할 수 있습니다. 파일에 NS 계정 권한을 부여하면 작동합니다. 따라서 뷰에서 내가 가장하고 있음을 확인했지만 리소스 요청은 해당 계정을 사용하지 않고 풀을 사용한다는 사실을 알고 있습니다.
가장을 해제하면 예상대로보기에 풀 ID가 나타납니다.
내가 읽은 바로는 원격 인증 SQL 서버에 액세스하기 위해 기본 인증을 사용할 수 있어야합니다. 로컬 디스크는 말할 것도 없습니다. 나는 단지 그것을 얻지 않는다!
모든 의견을 많이 주시면 감사하겠습니다.
감사합니다.
제이슨 감사합니다. 저의 인상은 기본 인증을 사용했기 때문에 위임이 적용되지 않았기 때문에 IIS가 자격 증명을 사용하여 토큰을 전달한다는 것입니다. 전 직원의 진술에 동의하는 프로세스를 설명하는 문서를 찾았지만 꽤 심오합니다. 로컬 리소스 (파일 I/O)조차도 가장 된 계정에서 발생하지 않는 이유를 설명 할 수 있습니까? –
http/IIS 컨텍스트를 벗어날 수 있기 때문입니다. 클라이언트가 가상 디렉터리를 넘어 서버에 액세스 할 수 있도록하기 위해 엄청난 보안 허점이 생기게되어 의도적으로 설계된 것입니다. –
저는 대표단을 연구했습니다. 참고 사항은 두 가지입니다. 1. Microsoft 문서 (http://msdn.microsoft.com/en-us/library/ff647404.aspx)에 따르면 기본 인증은 자동으로 위임됩니다. 나는이 주장을 여러 번 보았습니다. 내 관점에서이 경우에 해당됩니다. 다음은 직접적인 인용문입니다. –