IIS 7 메타베이스 구성 설정 호환성

등록일시: 2006-11-30 11:43,  수정일시: 2013-12-09 11:53
조회수: 5,104
이 문서는 IIS 기술을 널리 알리고자 하는 개인적인 취지로 제공되는 번역문서입니다. 이 문서에 대한 모든 저작권은 마이크로소프트에 있으며 요청이 있을 경우 언제라도 게시가 중단될 수 있습니다. 번역 내용에 오역이 존재할 수 있고 주석은 번역자 개인의 의견일 뿐이며 마이크로소프트는 이에 관한 어떠한 보장도 하지 않습니다. 번역이 완료된 이후에도 대상 제품 및 기술이 개선되거나 변경됨에 따라 원문의 내용도 변경되거나 보완되었을 수 있으므로 주의하시기 바랍니다.

서론

IIS 7에서도 여전히 레거시 구성 설정 스크립트와 응용 프로그램들을 사용할 수 있습니다. 이것이 가능한 이유는 메타베이스 시스템과 그에 대한 프로그래밍 인터페이스인 Admin Base Objects(ABO), 그리고 그 상위에 존재하는 ADSI 제공자와 WMI 제공자를 사용할 수 있게 해주는 선택적 설치 구성 요소가 존재하기 때문입니다. 시스템은 ABO에 대한 호출을 가로채어 이를 새로운 구성 설정 시스템으로 맵핑합니다. 데이터는 applicationHost.config 파일에 저장되지만 ABO 호출자는 레거시 구성 설정 구조 뷰의 형태로 데이터를 출력합니다.

전제조건

  1. 반드시 IIS가 머신에 설치되어 있어야 합니다. 가령, 인터넷 익스플로러의 주소창에 http://localhost/라고 입력했을 때, "환영합니다." 페이지가 나타나야 합니다. 만약, IIS가 설치되어 있지 않다면 설치 방법에 관한 문서를 참고하여 IIS를 설치합니다.
  2. 먼저, 머신에 대한 관리자 권한을 갖고 있는지 확인하십시오. 내장된 Administrator 계정 이외의 계정으로 로그온했다면, 비록 해당 계정이 머신의 로컬 Administrators 그룹에 추가되어 있는 계정이라고 하더라도 기본적으로 관리자 권한을 갖고 있지 않은 것으로 간주됩니다. (이 기능은 LUA라는 Longhorn에서 제공되는 새로운 보안 관련 기능으로, 본문에서 다루고자 하는 범위를 벗어나는 주제입니다.) 내장된 Administrator 계정으로 로그온하거나 명시적으로 "runas" 명령줄 도구로 응용 프로그램을 내장된 Administrator 계정의 권한으로 실행시키십시오. 예를 들어, notepad.exe를 실행시키기 위해서 "runas /user:administrator notepad.exe" 같은 명령어를 실행시킬 수 있습니다. 이 명령어를 실행하면 Administrator 계정의 비밀번호를 입력할 수 있는 대화 상자가 나타날 것입니다. 아니면 "runas /user:administrator cmd.exe" 명령어를 실행해서, 미리 관리자 권한을 가진 명령 프롬프트를 실행하는 것도 또 다른 방법입니다. 이 명령 프롬프트에서 실행되는 응용 프로그램들은 모두 관리자 권한으로 실행되며, 명렴 프롬프트에서 "runas" 구문을 사용할 필요가 없습니다.
  3. 반드시 마스터 구성 설정 파일을 백업하도록 하십시오. 단지 applicationHost.config 파일을 다른 이름으로 복사해 놓기만 하더라도, 나중에 원상태로 복구가 가능합니다. 이 applicationHost.config 파일은 %windir%\system32\inetsrv\config 디렉터리에서 찾을 수 있습니다. 이 작업을 처리하기 위해서는 방금 위에서 설명한 관리자 권한이 필요하다는 점에 주의하십시오.
  4. 본격적인 작업을 시작하기 전에 시스템이 "깨끗한 상태"가 되도록 하십시오. 이를 위해서, 지금까지 이뤄진 applicationHost.config 파일에 대한 모든 변경 사항들을 원래대로 돌려 놓으십시오. (만약, VPC 이미지를 사용중이라면, 가장 손쉬운 방법은 변경된 상태를 저장하지 않고 이미지를 재시작하는 것입니다.)
  5. 문제점이 발생하면 빨리 대응이 가능하도록 가급적 인터넷 익스플로러의 "HTTP 오류 메시지 표시" 기능을 (도구 > 인터넷 옵션 > 고급) 꺼놓는 것을 권장합니다.
  6. 주의: .html 파일로부터 텍스트를 복사하는 경우, 숨겨진 문자들까지 함께 복사가 됩니다. 따라서 복사한 텍스트를 비주얼 스튜디오 같은 편집기나 명령 프롬프트에 붙여 넣으면 겉으로 보기에는 정상적으로 복사가 된 것처럼 보이지만, 숨겨진 문자들을 포함하고 있기 때문에 적절하게 동작을 하지 않게 됩니다. 결과적으로 문제점을 발견해 내기가 매우 어려워집니다. 이 문제를 해결하기 위한 가장 좋은 방법은 복사한 텍스트를 먼저 노트패드에 붙여 넣은 뒤에 노트패드에 복사된 텍스트를 다시 한 번 복사하는 것입니다. 이렇게 하면 숨겨진 문자들이 제거됩니다. 만약 텍스트가 짧다면 복사해서 붙여 넣는 대신 직접 타이핑해서 입력하는 것이 더 간단할 수도 있습니다.

ABO를 사용한 가상 전역 설정 기록

이번 단계에서는 AdminBaseObjects(ABO) 인터페이스를 사용해서 전역 설정값을 변경하고, 변경된 값을 applicationHost.config 파일에 기록하는 방법을 살펴봅니다. 이 작업을 위해서 MBExplorer.exe 도구를 사용할 것입니다.

먼저 IIS 7의 메타베이스 호환성 구성 요소가 머신에 설치되어 있는지부터 확인하시기 바랍니다. 이 구성 요소는 기본적으로 설치되지 않습니다. Longhorn Server에서는 서버 관리자 도구를 (시작->관리 도구->서버 관리자) 이용해서 "IIS 6.0 메타베이스 호환성" 구성 요소가 설치되어 있는지 확인할 수 있습니다. 또는, 명령 프롬프트에서 "net start iisadmin" 명령을 실행해서 IISADMIN이라는 이름의 NT 서비스가 구동중인지 확인하십시오. 이 명령을 실행했을 때 IISADMIN이 이미 실행되었다는 메시지가 나타나야 합니다.

그 다음에 MBExplorer 도구를 웹에서 다운로드합니다. MSN 서치 등의 검색 엔진을 이용해서 이 도구를 찾다보면 결국 Microsoft.com의 다운로드 센터로 이동하게 되는데, 다운로드 센터에서 IIS 6.0 리소스 킷을 다운로드하고 설치해야 합니다. MBExplorer 도구는 이 리소스 킷에 포함되어 있습니다. 정상적으로 설치를 마치고 나면 일반적으로 %ProgramFiles%\IIS Resources\Metabase Explorer\ 폴더에서 MBExplorer 도구의 실행 파일인 MBExplorer.exe 파일을 찾을 수 있습니다.

먼저 MBExplorer.exe 도구를 실행합니다. 이 도구는 AdminBaseObjects(ABO) 인터페이스의 최상단에서 동작하며 그렇기 때문에 ABO를 통해 얻어진 구성 설정 계층 정보를 보여줍니다.

좌측 패인에서 LM > W3SVC 노드를 찾습니다. 이 노드는 ABO 뷰에서 전역 수준의 구성 설정 계층을 나타내는 노드입니다.

이제 우측 패인에서 AuthFlags 속성을 선택합니다. 목록에서 Name 컬럼 헤더를 마우스로 클릭해서 속성들을 정렬하면 손쉽게 이 속성을 찾을 수 있습니다. 이 속성의 기본값은 5입니다.


메타베이스 탐색기

이 값을 1에서 7사이의 정수를 입력해서 변경합니다.

노트패드 같은 텍스트 편집기를 사용해서 다음 경로에 위치해 있는 ApplicationHost.config 파일을 엽니다.

%windir%\system32\inetsrv\config\ApplicationHost.config

그리고, 이 파일에서 <authentication> 섹션 그룹을 찾습니다. 이 섹션 그룹 하위에 존재하는 인증 섹션들은 방금 설정한 값에 따라 각각 활성 또는 비활성되어 있을 것입니다. 가령, AuthFlags의 값을 2로 설정했다면 BasicAuthentication 섹션의 enabled 속성값만 true로 설정되어 있고, 다른 모든 인증 섹션들의 enabled 속성값은 false로 설정되어 있을 것입니다. IIS 6.0 스키마에서 값 "2"가 "AUTH_BASIC"와 매핑되어 있기 때문입니다.

다시 MBExplorer로 이 속성의 값을 바꿔보고 ApplicationHost.config 파일의 내용을 다시 확인해 보십시오. 메타베이스의 AuthFlags 속성값이 변경됨에 따라, 간접적으로 ApplicationHost.config 파일의 인증 스키마들이 활성화되거나 비활성화 되는 것을 확인할 수 있습니다.

ABO를 사용한 가상 디렉터리 설정 기록

이번 단계에서는 ABO를 사용해서 가상 디렉터리의 속성값을 변경하고, 변경된 값을 applicationHost.config를 통해서 확인하는 방법을 살펴봅니다. 이번에 변경하게 될 내용은 전역 설정에 해당하는 영역이 아니므로, ABO 호환성 계층은 applicationHost.config 파일 내부에 변경된 가상 디렉터리에 대응하는 경로가 포함된 새로운 location 태그를 생성하게 됩니다. 어떠한 web.config 파일도 메타베이스 호환성 구성 요소에 의해 변경되지 않는다는 점을 주의하십시오.

먼저, MBExplorer.exe 도구를 실행합니다.

좌측 패인에서 LM > W3SVC > 1 > ROOT 노드를 찾습니다. 이 노드는 기본 웹 사이트의 루트 응용 프로그램을 나타내는 노드입니다.

이제 AuthFlags 속성값을 설정합니다. 우측 패인에 AuthFlags 속성이 이미 존재한다면 이 과정을 생략할 수 있습니다. 좌측 패인에서 ROOT 노드를 선택하고 Edit 메뉴에서 New > DWORD Record 메뉴를 실행한 다음, Record Name or Identifier 입력란에 6000을 입력합니다.


메타베이스 탐색기

이 작업은 기본값으로 0이 설정된 AuthFlags 속성을 ROOT 노드에 생성합니다. 오른쪽 패인에서 이 속성을 더블 클릭하고 1에서 7사이의 정수를 입력해서 값을 변경합니다.

노트패드 같은 텍스트 편집기를 사용해서 다음의 경로에 위치해 있는 ApplicationHost.config 파일을 엽니다.

%windir%\system32\inetsrv\config\ApplicationHost.config

이 파일의 마지막 부분을 살펴보면, 방금 설정한 값에 따라 활성화되거나 비활성화 된 authentication 섹션들을 포함한 새로운 <location path="Default Web Site"> 태그를 발견할 수 있을 것입니다.

요약

본문에서는 구성 설정 시스템의 호환성 기능을 활성화하고 사용하는 방법을 살펴봤습니다. 레거시 도구를 사용해서 전역 수준이나 가상 디렉터리 수준의 설정들을 변경할 수 있으며, 이런 방법으로 변경된 내용은 applicationHost.config 파일에 기록됩니다. 맵핑과 기록을 위해서 adsutil.vbs 같은 다른 도구들을 사용하고 싶을 수도 있습니다. 또는 기존의 ABO/ADSI/WMI 스크립트들이나 응용 프로그램을 새로운 환경에서도 계속해서 사용할 수 있다는 점을 확인하고 싶을 수도 있습니다. 또한, 본문에서 살펴본 방법과는 정반대로 동일한 실험을 해 볼 수도 있는데, 먼저 applicationHost.config 파일의 값을 변경한 뒤에 그 결과를 MBExplorer를 비롯한 ABO를 사용하는 도구들과 스크립트를 통해서 확인할 수도 있습니다.