다음을 통해 공유


Windows 인증 공급자

업데이트: 2007년 11월

Windows 인증에서는 Microsoft IIS(인터넷 정보 서비스)에 의해 제공된 사용자 ID를 ASP.NET 응용 프로그램의 인증된 사용자로 간주합니다. IIS에서는 익명 인증, Windows 통합(NTLM) 인증, Windows 통합(Kerberos) 인증, 기본(base64 인코딩) 인증, 다이제스트 인증, 클라이언트 인증서에 기반한 인증과 같이 사용자 ID를 확인하는 데 사용할 수 있는 다양한 인증 메커니즘을 제공합니다.

Windows 인증은 ASP.NET에서 WindowsAuthenticationModule 모듈을 사용하여 구현됩니다. 이 모듈은 IIS에서 제공한 자격 증명을 기반으로 WindowsIdentity를 만들고 해당 ID를 응용 프로그램의 현재 User 속성 값으로 설정합니다.

Windows 인증은 ASP.NET 응용 프로그램의 기본 인증 메커니즘이며 다음 코드 예제와 같이 authentication 구성 요소를 사용하여 응용 프로그램의 인증 모드로 식별됩니다.

<system.web>
  <authentication mode="Windows"/>
</system.web>

Windows ID 가장

Windows 인증 모드는 IIS에서 제공한 자격 증명을 기반으로 현재 User 속성의 값을 WindowsIdentity로 설정하지만 운영 체제에 제공된 Windows ID를 수정하지는 않습니다. 운영 체제에 제공된 Windows ID는 권한(예: NTFS 파일 권한)을 검사하거나 통합 보안을 사용하여 데이터베이스에 연결하는 데 사용됩니다. 기본적으로 이 Windows ID는 ASP.NET 프로세스의 ID입니다. Microsoft Windows 2000 및 Windows XP Professional에서는 Windows ID가 ASP.NET 작업자 프로세스의 ID, 즉 로컬 ASPNET 계정입니다. 또한 Windows Server 2003에서는 ASP.NET 응용 프로그램이 포함된 IIS 응용 프로그램 풀의 ID입니다. 기본적으로 이 값은 NETWORK SERVICE 계정입니다.

가장을 사용하도록 설정하여 ASP.NET 응용 프로그램의 Windows ID를 IIS에서 제공한 Windows ID로 구성할 수 있습니다. 즉, 파일 및 네트워크 액세스를 포함하여 Windows 운영 체제에서 인증하는 모든 작업을 수행할 때 IIS에서 제공한 ID를 가장하도록 ASP.NET 응용 프로그램에 지시합니다.

웹 응용 프로그램에 대해 가장을 사용하도록 설정하려면 다음 코드 예제와 같이 응용 프로그램의 Web.config 파일에서 identity 요소의 impersonate 특성을 true로 설정합니다.

<system.web>
  <authentication mode="Windows"/>
  <identity impersonate="true"/>
</system.web>

ASP.NET 프로세스 ID에 대한 자세한 내용은 ASP.NET 프로세스 ID 구성을 참조하십시오. 가장에 대한 자세한 내용은 Impersonate 메서드를 참조하십시오.

NTFS ACL을 사용하여 권한 부여 설정

NTFS 파일 시스템 및 ACL(액세스 제어 목록)을 사용하여 응용 프로그램 파일의 보안을 설정하면 ASP.NET 응용 프로그램의 보안을 향상시킬 수 있습니다. ACL을 사용하면 응용 프로그램 파일에 액세스할 수 있는 사용자 및 사용자 그룹을 지정할 수 있습니다. Windows ID를 ASP.NET 페이지의 ID로 실행하는 데 필요한 최소 NTFS 파일 권한 목록을 보려면 ASP.NET 필수 ACL(액세스 제어 목록)을 참조하십시오.

참고:

ASP.NET 역할을 사용하여 웹 응용 프로그램의 페이지 및 섹션에 대한 사용자 권한 부여를 관리할 수도 있습니다. 자세한 내용은 역할을 사용하여 권한 부여 관리를 참조하십시오.

참고 항목

작업

방법: WindowsPrincipal 개체 만들기

방법: GenericPrincipal 및 GenericIdentity 개체 만들기

기타 리소스

ASP.NET 웹 응용 프로그램 보안

ASP.NET 인증