HOWTO: IIS 응용 프로그램에서 네트워크 파일에 액세스하는 방법

기술 자료 번역 기술 자료 번역
기술 자료: 207671 - 이 문서가 적용되는 제품 보기.
이 문서는 이전에 다음 ID로 출판되었음: KR207671
모두 확대 | 모두 축소

요약

ISAPI(Internet Server API) 확장, ASP(Active Server Pages) 페이지 또는 CGI(Common Gateway Interface) 응용 프로그램에서 IIS(Internet Information Server) 서버 이외의 다른 컴퓨터에 있는 파일에 액세스하면 문제가 발생할 수 있습니다. 이 문서에는 관련 문제와 이것이 작동하도록 하기 위한 몇 가지 방법이 나와 있습니다.

추가 정보

이 문서는 주로 네트워크 공유에 있는 파일에 액세스하는 것에 관련되어 작성되었지만 명명된 파이프 연결에도 동일한 개념이 적용됩니다. 명명된 파이프는 원격 프로시저 호출(RPC) 및 분산 구성 요소 개체 모델(DCOM) 통신 뿐만 아니라 SQL Server 연결에 대개 사용됩니다. 특히, Windows NT 통합 보안을 사용하도록 구성된 네트워크를 통해 SQL Server에 연결할 때에는 이 문서에 설명되어 있는 문제 때문에 연결할 수 없는 경우가 많습니다. 또한 RPC와 DCOM이 비슷한 네트워크 인증 스키마를 가진 다른 통신 메커니즘을 사용할 수도 있습니다. 따라서 이 문서에 나와 있는 개념을 IIS 응용 프로그램에서 사용할 수 있는 다양한 네트워크 통신 메커니즘에 적용할 수 있습니다.

IIS가 HTTP 요청에 서비스할 때는 IIS가 요청한 사용자를 가장하여 요청을 처리하기 위해 리소스에 액세스하는 작업이 적절하게 제한되도록 합니다. 요청한 사용자를 가장한 보안 컨텍스트는 해당 요청에 수행한 인증의 유형에 기반합니다. IIS 4.0에서 사용할 수 있는 5가지 인증 유형은 아래와 같습니다.


인증 유형                                가장 유형 
익명 액세스(인증 없음)
자동 암호 동기화 ON(ON=기본값)           네트워크 

 익명 액세스(인증 없음)
자동 암호 동기화 OFF                  IIS 일반 텍스트 
기본 인증                               IIS 일반 텍스트 
NT Challenge/Response 인증               네트워크 
클라이언트 SSL 보증서 매핑                대화형 


					


네트워크 리소스에 대한 액세스가 허용되는지 여부는 해당 요청이 처리되는 가장 토큰의 유형에 따라 다릅니다. 네트워크 토큰은 네트워크 리소스에 액세스할 수 없습니다. 이 토큰 유형은 네트워크를 통해 사용자를 인증할 때 서버에 의해 만들어기 때문에 "네트워크" 토큰이라고 합니다. 서버가 네트워크 클라이언트의 역할을 하고 다른 서버에 액세스하기 위해 네트워크 토큰을 사용할 수 있도록 사용자를 인증하는 것을 "위임"이라고 하며 보안의 허점이 될 수 있습니다.

대화형 토큰은 전통적으로 컴퓨터의 로컬 사용자를 인증할 때 사용됩니다. 대화형 토큰은 네트워크를 통해 리소스에 액세스할 수 있습니다.

IIS가 지원할 수 있는 세 번째 토큰 유형은 배치 토큰입니다. 이 토큰은 일괄 작업을 실행할 때의 보안 컨텍스트를 제공하기 위한 것입니다. 배치 토큰도 네트워크를 통해 액세스할 수 있습니다.

IIS에는 일반 텍스트 로그온의 개념이 있습니다. 이 이름은 IIS가 일반 텍스트로 된 사용자 이름과 암호에 모두 액세스할 수 있다는 사실에 기인한 것입니다. 메타베이스에서 LogonMethod 속성을 설정하면 일반 텍스트 로그온이 네트워크, 대화형 또는 배치 토큰 중 어떤 것을 만들지 제어할 수 있습니다. 기본적으로, 일반 텍스트 로그온은 대화형 토큰을 만들며 네트워크에 액세스할 수 있습니다. LogonMethod는 서버, 사이트, 가상 디렉터리, 디렉터리 또는 파일 수준에서 구성할 수 있습니다.

익명 액세스는 요청에 대해 익명 사용자로 구성된 계정을 가장합니다. 기본적으로, IIS에는 인증되지 않은 요청을 처리할 때 가장되는 IUSR_<machinename>이라는 단일 익명 사용자 계정이 있습니다. 기본적으로 IIS 4.0에는 보안 하위 권한을 사용하여 토큰을 만드는 구성 가능한 "자동 암호 동기화" 기능이 있습니다. 이러한 방법으로 만들어진 토큰이 바로 네트워크 토큰으로 해당 네트워크의 다른 컴퓨터에 액세스할 수 없습니다. 자동 암호 동기화를 비활성화하면 IIS는 앞에서 설명한 일반 텍스트 로그온과 같은 방법으로 토큰을 만듭니다. 자동 암호 동기화는 IIS와 같은 컴퓨터에 있는 계정만 사용할 수 있습니다. 따라서, 익명 계정을 도메인 계정으로 변경하면 자동 암호 동기화는 사용할 수 없고 일반 텍스트 로그온은 할 수 있게 됩니다. IIS를 주 도메인 컨트롤러에 설치한 경우와 도메인 계정이 로컬 컴퓨터에 있는 경우에는 예외입니다. 익명 계정과 자동 암호 동기화 옵션은 서버, 사이트, 가상 디렉터리, 디렉터리 또는 파일 수준에서 구성할 수 있습니다.

네트워크의 리소스에 액세스하려면 가장 먼저 적절한 유형의 토큰을 가져야 합니다. 또한 네트워크를 통해 리소스에 액세스하는 계정을 가장해야 합니다. IIS가 익명 요청에 대해 만드는 IUSR_<machinename> 계정은 기본적으로 로컬 컴퓨터에만 있습니다. 네트워크 리소스에 액세스할 수 있는 대화형 토큰을 만들 수 있도록 자동 암호 동기화를 비활성화하더라도 IUSR_<machinename> 계정은 다른 컴퓨터에서는 인식되지 않는 계정이기 때문에 대개의 경우 대부분의 네트워크 리소스에 액세스하지 못합니다. 익명 요청으로 네트워크 리소스에 액세스하려면 기본 계정을 해당 네트워크의 모든 컴퓨터에서 인식될 수 있는 도메인의 계정으로 바꾸는 것이 좋습니다. IIS를 도메인 컨트롤러에 설치한 경우에는 IUSR_<machinename> 계정이 도메인 계정이 되어 추가 작업을 수행하지 않아도 해당 네트워크의 다른 컴퓨터에서 인식됩니다.

다음은 IIS 응용 프로그램에서 네트워크 리소스에 액세스할 때 문제가 발생하는 것을 피하기 위한 방법입니다.


  1. 파일을 로컬 컴퓨터에 보관합니다.
  2. 일부 네트워크 통신 방법에서는 Windows 소켓 같은 보안 검사가 필요하지 않습니다.
  3. 가상 디렉터리를 다음과 같이 구성하면 컴퓨터의 네트워크 리소스에 직접 액세스할 수 있습니다.
    "다른 컴퓨터에 위치한 공유"
    네트워크 리소스를 공유하는 컴퓨터에 액세스하는 작업은 모두 가상 디렉터리에 대해 구성된 인증 유형에 관계 없이 "다른 이름으로 연결.." 대화 상자에서 지정한 사람의 컨텍스트로 수행됩니다. 이 옵션을 사용한다는 것은 네트워크 공유에 있는 모든 파일을 IIS 컴퓨터에 액세스하는 브라우저에서 사용할 수 있다는 것을 의미합니다.
  4. 자동 암호 동기화를 사용하지 않고 기본 인증이나 익명 인증을 사용합니다. Internet Information Server에서 기본적으로 기본 인증에 대해 수행하는 가장은 네트워크 리소스에 액세스할 수 없는 토큰을 제공하는 Windows NT Challenge/Response와 달리 네트워크 리소스에 액세스할 수 있는 토큰을 제공합니다. 익명 인증의 경우 자동 암호 동기화가 비활성화되어 있으면 토큰만 네트워크 리소스에 액세스할 수 있습니다. 기본적으로 자동 암호 동기화는 Internet Information Server를 처음 설치하면 활성화되어 있습니다. 이러한 기본 구성에서는 익명 사용자 토큰이 네트워크 리소스에 액세스할 수 없습니다.
  5. 익명 계정을 도메인 계정으로 구성합니다. 이렇게 하면 익명 요청이 네트워크를 통해 리소스에 액세스할 수 있습니다. 일부 익명 요청만 네트워크 액세스 권한을 갖도록 하려면 명시적으로 액세스 권한이 필요한 가상 디렉터리에서 익명 계정을 도메인 계정으로 만들어야 합니다.
  6. 익명 계정을 네트워크 리소스를 공유하는 컴퓨터에서 같은 사용자 이름과 암호를 갖도록 구성하고 자동 암호 동기화를 비활성화합니다. 이렇게 한 경우에는 암호가 정확히 일치하는지 확인해야 합니다. 이 방법은 방법 5를 어떤 이유로 사용할 수 없을 때만 사용해야 합니다.
  7. NullSessionShares와 NullSessionPipes를 사용하여 네트워크 토큰으로 요청을 처리할 때 특정 네트워크 공유나 명명된 파일에 대한 액세스를 허용할 수 있습니다. 네트워크 토큰을 갖고 있는 상태에서 네트워크 리소스에 연결하려고 하면 운영 체제가 "NULL 세션"이라고 하는 인증되지 않은 연결로서 연결하려고 합니다. 이 레지스트리 설정은 IIS 컴퓨터가 아니라 네트워크 리소스를 공유하는 컴퓨터에서 설정해야 합니다. 네트워크 토큰이 아닌 다른 토큰으로 NullSessionShare나 NullSessionPipe에 액세스하려고 하면 일반 Windows 인증이 사용되고 리소스에 대한 액세스는 가장한 사용자의 계정 권한에 기반을 두게 됩니다.
  8. 네트워크 액세스를 갖고 있는 스레드 토큰을 만들기 위해 사용자 자신의 가장을 수행할 수 있습니다. LogonUser 기능과 ImpersonateLoggedOnUser 기능을 사용하면 다른 계정을 가장할 수 있습니다. 이를 위해서는 다른 계정의 일반 텍스트 사용자 이름과 암호를 사용자 코드에 사용할 수 있어야 합니다. LogonUser에서는 또한 이를 호출하는 계정에 사용자 관리자의 "운영 체제의 일부로 동작" 권한도 있어야 합니다. HTTP 요청을 처리할 때 IIS에서 구현하는 대부분의 사용자에게는 기본적으로 이러한 권한이 없지만, In Process 응용 프로그램의 경우 현재 보안 컨텍스트를 "운영 체제의 일부로 동작" 권한을 갖고 있는 LocalSystem 계정으로 바꾸는 방법이 많이 있습니다. In Process를 실행 중인 ISAPI dll의 경우 IIS에서 만든 보안 컨텍스트를 LocalSystem 계정으로 변경하는 가장 쉬운 방법은 RevertToSelf 기능을 호출하는 것입니다. IIS 응용 프로그램을 Out of Process로 실행 중인 경우에는 프로세스가 LocalSystem 계정이 아니라 IWAM_<machinename> 계정 아래에서 실행하기 때문에 이 메커니즘이 기본적으로 작동하지 않습니다. IWAM_<machinename>에는 기본적으로 "운영 체제의 일부로 동작" 권한이 없습니다.
  9. ASP 페이지에서 호출할 구성 요소를 Microsoft Transaction Server(MTS) Server 패키지나 COM+ Server 응용 프로그램에 추가하고 특정 사용자를 해당 패키지의 ID로 지정합니다. 구성 요소가 IIS 외부에 있는 고유 .exe 파일에서 실행됩니다.
참고 LogonMethod 메타베이스 속성을 2(가상 토큰을 만들 때 네트워크 로그온이 사용됨을 나타냄)로 설정하면 암호 동기화가 비활성화된 익명 요청과 기본 인증(일반 텍스트 로그온)을 사용하여 인증된 요청에 대해서는 네트워크 액세스를 방지할 수 있습니다. 이렇게 설정한 경우 네트워크 토큰 한계를 피하기 위해 요청에 사용할 수 있는 유일한 방법은 NullSessionShares나 NullSessionPipes에 연결하는 것입니다.

네트워크 공유에 매핑된 드라이브 문자를 사용하지 않도록 합니다. 26개의 드라이브 문자만 선택할 수 있으며 다른 보안 컨텍스트에서 매핑된 드라이브 문자를 사용하려고 하면 문제가 발생할 수 있습니다. 리소스에 액세스할 때 항상 범용 명명 규칙(UNC) 이름을 사용해야 합니다. 형식은 아래와 비슷해야 합니다.

\\MyServer\filesharename\directoryname\filename
이 문서에 나와 있는 정보는 Internet Information Server 4.0에만 적용됩니다. Windows 2000과 함께 제공되는 Internet Information Server 5.0에서는 인증 유형과 기능이 많이 변경되었습니다. 이 문서에 나와 있는 개념 중 대부분이 IIS 5.0에도 적용되지만 이 문서에 나와 있는 특정 인증 스키마를 사용하여 만든 가장 토큰의 유형에 대한 세부 정보는 IIS 4.0에만 적용됩니다.

요청을 처리하기 위해 IIS 서버에서 발생하는 로그온의 유형을 확인하는데 문제가 있을 경우 로그온 및 로그오프에 대해 감사를 활성화하면 로그온 유형을 확인하는 데 도움이 될 수 있습니다. 사용자 관리자에서 정책으로 이동하고, 감사를 가리키고, 다음 이벤트 감사 옵션을 선택한 다음 로그온 및 로그오프 옵션을 선택하십시오. 이벤트 로그 항목이 보안 로그에 추가됩니다. 로그온 유형에 있는 이벤트 세부 정보를 보면 로그온의 유형을 확인할 수 있습니다.

2=대화형
3=네트워크
4=배치
5=서비스

참조

네트워크 보안에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
124184 서비스가 시스템 계정으로 실행되면 네트워크에 액세스할 수 없다
180362 INFO: 서비스 및 리디렉션된 드라이브
158229 INFO: IIS 응용 프로그램의 보안 효과




Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 207671 - 마지막 검토: 2004년 5월 12일 수요일 - 수정: 5.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Internet Information Server 3.0
  • Microsoft Internet Information Server 4.0
키워드:?
kbhowto KB207671

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com