다음을 통해 공유


Team Foundation Server, 기본 인증 및 다이제스트 인증

업데이트: 2007년 11월

Visual Studio 2008에서는 기본 인증 및 다이제스트 인증 모드를 지원할 수 있습니다. HTTPS/SSL(Secure Sockets Layer)을 사용하고 기본 인증이나 다이제스트 인증을 사용하도록 Team Foundation Server를 구성하여 외부에서 VPN(가상 사설망) 연결을 사용하지 않고도 해당 Team Foundation Server에 연결하도록 지원할 수 있습니다.

구성

외부에서 Team Foundation Server 배포에 연결할 수 있도록 지원하려면 기본 인증이나 다이제스트 인증을 사용하도록 IIS(인터넷 정보 서비스)를 구성해야 합니다. 또한 ISAPI(인터넷 서버 응용 프로그래밍 인터페이스) 필터도 구성해야 합니다. ISAPI 필터는 IIS에서 제공하는 기능을 수정하고 향상시키는 데 사용할 수 있는 DLL 파일입니다. ISAPI 필터는 항상 IIS가 실행되는 서버에서 실행됩니다. 기본 인증이나 다이제스트 인증을 사용해야 하는 클라이언트 또는 웹 프록시의 IP 주소로 SP1에 포함된 ISAPI 필터를 구성해야 합니다.

기본 인증 및 다이제스트 인증

기본 인증은 HTTP 1.0 사양에 포함되며, Windows 사용자 계정을 사용합니다. 기본 인증을 수행하는 동안 사용자 이름과 암호를 묻는 메시지가 브라우저에 표시됩니다. 사용자 이름과 암호 정보는 Base64 인코딩을 사용하여 HTTP를 통해 전송됩니다. 기본 인증을 사용하려면 기본적으로 Windows 사용자 계정에 웹 서버에 대한 로컬 로그온 권한이 있어야 합니다. 기본 인증은 작업 그룹과 도메인 배포 환경에서 모두 사용할 수 있으며 대부분의 웹 서버, 프록시 서버 및 웹 브라우저에서 지원되지만 안전하지가 않습니다. Base64로 인코딩된 데이터는 해독하기가 쉬워서 암호화해도 의미가 없으므로 기본 인증에서는 기본적으로 암호를 일반 텍스트로 보냅니다. 이러한 암호는 누군가가 네트워크의 통신을 모니터링한 후 공개적으로 사용할 수 있는 도구를 이용하여 쉽게 가로채고 해독할 수 있습니다.

다이제스트 인증은 네트워크를 통해 암호가 아니라 다이제스트 또는 해시를 보내는 시도/응답 메커니즘입니다. 다이제스트 인증을 수행하는 동안 IIS에서 다이제스트를 만들라는 시도를 클라이언트에게 보낸 다음 서버로 보냅니다. 클라이언트는 이 시도에 대한 응답으로 클라이언트와 서버 모두에 알려져 있는 사용자 암호와 데이터를 기반으로 다이제스트를 만들어서 보냅니다. 서버에서는 클라이언트와 동일한 프로세스를 통해 Active Directory에서 가져온 사용자 정보를 기반으로 고유의 다이제스트를 만듭니다. 서버와 클라이언트에서 만든 다이제스트가 서로 일치하면 IIS에서 클라이언트를 인증합니다. Active Directory 도메인 배포 환경에서는 다이제스트 인증만 사용할 수 있습니다. 다이제스트 인증은 기본 인증에서 약간 개선된 인증일 뿐이므로 보안상 여전히 취약합니다. 공격자는 클라이언트와 서버 간의 통신을 기록한 다음 이 정보를 사용하여 트랜잭션을 반복할 수 있습니다. 또한 다이제스트 인증은 HTTP 1.1 프로토콜에 종속되어 있습니다. 이 프로토콜을 모든 웹 브라우저에서 지원하는 것은 아닙니다. 뿐만 아니라 다이제스트 인증을 올바르게 구성하지 않으면 Team Foundation Server에 대한 액세스 시도가 실패하게 됩니다. 배포가 다이제스트 인증의 모든 요구 사항을 충족하지 않는 경우에는 다이제스트 인증을 사용하지 마십시오. 다이제스트 인증에 대한 자세한 내용은 Microsoft 웹 사이트(https://go.microsoft.com/fwlink/?LinkID=89709h)를 참조하십시오.

제한

앞의 도메인 및 작업 그룹 요구 사항에서도 언급했지만 기본 인증과 다이제스트 인증은 그 자체로는 외부 클라이언트에게 네트워크 보안을 제공하기에 충분하지 않습니다. 따라서 외부 클라이언트를 지원하도록 Team Foundation Server를 구성하려면 HTTPS/SSL을 사용하도록 이러한 연결을 구성해야 합니다.

ISAPI 필터 구성

지정된 일련의 IP 주소에 대해 규칙을 강제로 적용하도록 ISAPI 필터를 구성할 수 있습니다. 대부분의 관리자는 주로 외부 IP 주소에 대해 ISAPI 필터 규칙을 구성하지만 내부 주소에 대해서도 이러한 규칙을 구성할 수 있습니다. ISAPI 필터 규칙에 구성된 모든 IP 주소는 필터에 지정된 규칙을 따라야 합니다. RequireSecurePort 설정에 따라, 파일에 지정되지 않은 주소에서 Team Foundation Server에 연결할 수도 있고 그렇지 못할 수도 있습니다.

ISAPI 필터에서는 구성 설정에 AuthenticationFilter.ini 파일을 사용합니다. 해당 배포 환경에 적합한 설정으로 이 파일을 구성해야 합니다. 이 파일에서 사용할 수 있는 구성 키와 값은 다음과 같습니다.

지원되는 값

RequireSecurePort

True

False

ProxyIPList

IPaddress(세미콜론으로 각 항목을 구분하여 주소를 여러 개 지정할 수 있음)

SubnetList

IPaddress/subnetmask(세미콜론으로 각 항목을 구분하여 주소를 여러 개 지정할 수 있음)

[config]

ISAPI 필터 파일의 섹션 헤더

이러한 키는 다음과 같이 보다 자세히 정의됩니다.

  • RequireSecurePort   RequireSecurePort를 True로 구성할 경우 주소가 SubnetList에 지정된 주소 중 하나가 아니면 모든 연결에서 HTTPS/SSL과 다이제스트 인증 또는 기본 인증을 사용해야 합니다. RequireSecurePort를 False로 구성할 경우 ProxyIPList에 지정된 주소를 사용하는 연결에서만 HTTPS/SSL과 다이제스트 인증 또는 기본 인증을 사용하면 됩니다.

  • ProxyIPList   다이제스트 인증이나 기본 인증을 적용하려는 IP 주소입니다. 이 키는 지정된 주소에 대해서만 기본 인증 또는 다이제스트 인증을 사용하도록 요구한다고 보면 쉽게 이해할 수 있습니다. 이 키에 지정된 주소에서는 다이제스트 인증 또는 기본 인증과 HTTPS/SSL을 사용해야 합니다. 이 키는 SubnetList보다 우선합니다. ProxyIPList 키가 있으면 SubnetList 키와 해당 값이 무시됩니다.

  • SubnetList   SubnetList는 다이제스트 인증이나 기본 인증을 적용하지 않을 IP 주소/서브넷 마스크 쌍입니다. 이 키는 지정된 주소를 제외한 모든 주소에 대해 기본 인증 또는 다이제스트 인증을 사용하도록 요구한다고 보면 쉽게 이해할 수 있습니다. 이 키에 지정된 주소에서는 다이제스트 인증 또는 기본 인증과 HTTPS/SSL을 사용할 필요가 없습니다. 이 키에 지정되지 않은 주소에서는 다이제스트 인증 또는 기본 인증을 사용해야 합니다. ISAPI 필터에 ProxyIPList 키가 있으면 SubnetList 키와 해당 값이 무시됩니다.

참고 항목

작업

연습: Team Foundation Server에 SSL 및 ISAPI 필터 설정

연습: Team Foundation Server에서 HTTPS 및 SSL을 사용하도록 설정

개념

Team Foundation Server, HTTPS 및 SSL