클라이언트 액세스 서버 배열에 대한 MAPI 클라이언트 연결에 대한 Kerberos 인증

요약

Active Directory 사이트에 둘 이상의 클라이언트 액세스 서버가 있는 Microsoft Exchange Server 2010 배포의 경우 토폴로지에는 사이트의 모든 클라이언트 액세스 서버 간에 트래픽을 분산하는 클라이언트 액세스 서버 배열 및 부하 분산 솔루션이 자주 필요합니다. Exchange Server 2010의 변경으로 인해 MAPI 전자 메일 클라이언트는 클라이언트 액세스 서버 배열을 사용할 때 Kerberos 인증을 사용하여 사서함에 연결할 수 없습니다. 이 동작을 해결하기 위해 Microsoft Exchange Server SP1(서비스 팩 1)에는 클라이언트 액세스 서버 배열에서 MAPI 전자 메일 클라이언트에 대한 Kerberos 인증을 구성할 수 있는 새로운 기능이 포함되어 있습니다.

이전 버전의 Exchange Server Kerberos 인증이 작동하는 방식과 Kerberos 인증이 MAPI 전자 메일 클라이언트에서 작동하지 않도록 하는 Exchange Server 2010의 변경 내용에 대한 자세한 내용은 Exchange Team 블로그의 다음 블로그 게시물을 참조하세요.

권장 사항: MAPI 클라이언트에 Kerberos 인증 사용

추가 정보

CAS(클라이언트 액세스 서버) 역할에서 실행되는 Microsoft Exchange Service 호스트 서비스는 Kerberos 인증에 ASA(공유 대체 서비스 계정) 자격 증명을 사용하도록 Exchange Server 2010 SP1에서 확장됩니다. 이 서비스 호스트 확장은 로컬 컴퓨터를 모니터링합니다. 자격 증명이 추가 또는 제거되면 로컬 시스템과 네트워크 서비스 컨텍스트의 Kerberos 인증 패키지가 업데이트됩니다. 인증 패키지에 자격 증명을 추가하면 즉시 모든 클라이언트 액세스 서비스에서 Kerberos 인증에 이 자격 증명을 사용할 수 있습니다. 클라이언트 액세스 서버는 ASA 자격 증명을 사용할 수 있을 뿐만 아니라 직접 처리된 서비스 요청을 인증할 수도 있습니다. servicelet이라고 하는 이 확장이 기본적으로 실행되며 실행을 위한 구성이나 작업이 필요하지 않습니다.

다음과 같은 이유로 Exchange Server 2010 organization Kerberos 인증을 사용해야 할 수 있습니다.

  • 로컬 보안 정책에는 Kerberos 인증이 필요합니다.

  • RPC 클라이언트 액세스 서비스에 대한 직접 MAPI 연결과 같은 NTLM 확장성 문제가 발생하거나 예상되어 일시적인 NTLM 오류가 발생합니다.

    대규모 고객 배포에서 NTLM은 클라이언트 액세스 서버에서 병목 현상을 일으킬 수 있습니다. 이로 인해 간헐적인 인증 오류가 발생할 수 있습니다. NTLM 인증을 사용하는 서비스는 Active Directory 대기 시간 문제에 더 민감합니다. 이로 인해 클라이언트 액세스 서버 요청 속도가 증가하면 인증 실패가 발생합니다.

Kerberos 인증을 구성하려면 Active Directory 및 클라이언트 액세스 서버 배열을 설정하는 방법을 잘 알고 있어야 합니다. Kerberos 인증에 대한 실무 지식도 있어야 합니다.

Kerberos 인증을 위한 ASA 자격 증명을 배포하려면 다음 단계를 수행합니다.

ASA 자격 증명으로 사용할 계정 만들기

클라이언트 액세스 서버 배열의 모든 컴퓨터는 동일한 서비스 계정을 공유해야 합니다. 여기에는 데이터 센터 전환의 일부로 시작할 수 있는 모든 클라이언트 액세스 서버가 포함됩니다. 일반적으로 포리스트당 하나의 서비스 계정으로 충분합니다.

컴퓨터 계정에서 대화형 로그온을 허용하지 않으므로 ASA(대체 서비스 계정)에 대한 사용자 계정 대신 컴퓨터 계정을 만듭니다. 따라서 컴퓨터 계정에는 사용자 계정보다 더 간단한 보안 정책이 있을 수 있으며 ASA 자격 증명에 대한 기본 설정 솔루션입니다.

컴퓨터 계정을 만드는 방법에 대한 자세한 내용은 새 컴퓨터 계정 만들기를 참조하세요.

참고

컴퓨터 계정을 만들면 암호가 만료되지 않습니다. 그러나 암호를 주기적으로 업데이트하는 것이 좋습니다. 로컬 그룹 정책 컴퓨터 계정의 최대 계정 기간을 지정할 수 있으며 네트워크 관리자는 현재 정책을 충족하지 않는 컴퓨터 계정을 주기적으로 삭제하도록 스크립트를 예약할 수 있습니다. 컴퓨터 계정이 로컬 정책을 충족하지 않는 경우 삭제되지 않도록 하려면 컴퓨터 계정의 암호를 주기적으로 업데이트합니다. 로컬 보안 정책은 암호를 변경해야 하는 시기를 결정합니다.

참고

계정을 만들 때 제공하는 암호는 실제로 사용되지 않습니다. 대신 스크립트는 암호를 다시 설정합니다. 계정을 만들 때 organization 암호 요구 사항을 충족하는 모든 암호를 사용할 수 있습니다.

ASA 자격 증명의 이름에 대한 특별한 요구 사항은 없습니다. 명명 체계 뒤에 있는 모든 이름을 사용할 수 있습니다. ASA 자격 증명에는 특별한 보안 권한이 필요하지 않습니다. ASA 자격 증명에 대한 컴퓨터 계정을 배포하는 경우 이는 계정이 Domain Computers 보안 그룹의 구성원이어야 한다는 것을 의미합니다. ASA 자격 증명에 대한 사용자 계정을 배포하는 경우 이는 계정이 도메인 사용자 보안 그룹의 구성원이어야 한다는 것을 의미합니다.

대체 서비스 계정 자격 증명과 연결할 SPN 확인

대체 서비스 계정을 만든 후에는 ASA 자격 증명과 연결될 Exchange SPN(서비스 사용자 이름)을 결정해야 합니다. SPN 값은 개별 서버가 아닌 네트워크 부하 분산 장치에서 사용되는 서비스 이름과 일치하도록 구성해야 합니다. Exchange SPN 목록은 구성에 따라 다를 수 있지만 목록에는 적어도 다음이 포함되어야 합니다.

  • http Exchange Web Services, 오프라인 주소록 다운로드 및 자동 검색 서비스에 이 SPN을 사용합니다.
  • exchangeMDB RPC 클라이언트 액세스에 이 SPN을 사용합니다.
  • exchangeRFR 주소록 서비스에 이 SPN을 사용합니다.
  • exchangeAB 주소록 서비스에 이 SPN을 사용합니다.

소규모 비즈니스의 경우 단일 Active Directory 사이트보다 큰 항목이 없을 수 있습니다. 예를 들어 단일 Active Directory 사이트는 다음 다이어그램과 유사할 수 있습니다.

단일 Active Directory 사이트가 포함된 소규모 비즈니스의 스크린샷

이 예제에서 사용할 SPN을 확인하려면 이전 그림에서 내부 Outlook 클라이언트에서 사용하는 FQDN(정규화된 도메인 이름)을 확인해야 합니다. 이 예제에서는 ASA 자격 증명에 다음 SPN을 배포합니다.

  • http/mail.corp.contoso.com
  • http/autod.corp.contoso.com
  • exchangeMDB/outlook.corp.contoso.com
  • exchangeRFR/outlook.corp.contoso.com
  • exchangeAB/outlook.corp.contoso.com

참고

Outlook Anywhere를 사용하는 외부 또는 인터넷 기반 클라이언트는 Kerberos 인증을 사용하지 않습니다. 따라서 이러한 클라이언트가 SPN으로 사용하는 FQDN을 ASA 자격 증명에 추가할 필요가 없습니다.

사이트가 단일 Active Directory 사이트보다 큰 경우 Load-Balanced 클라이언트 액세스 서버에 대한 Kerberos 인증 구성 항목에서 더 많은 예제를 볼 수 있습니다.

OAB 가상 디렉터리를 애플리케이션으로 변환

OAB(오프라인 주소록) 가상 디렉터리가 웹 애플리케이션이 아닙니다. 따라서 Microsoft Exchange 서비스 호스트 서비스에 의해 제어되지 않습니다. 결과적으로 ASA 자격 증명은 OAB 가상 디렉터리에 대한 Kerberos 인증 요청을 해독할 수 없습니다.

OAB 가상 디렉터리를 IIS 웹 애플리케이션으로 변환하려면 각 CAS 멤버에서 ConvertOABVDir.ps1 스크립트를 실행합니다. 또한 스크립트는 OAB 가상 디렉터리에 대한 MSExchangeOabAppPool이라는 새 애플리케이션 풀을 만듭니다. 스크립트를 다운로드하려면 Microsoft 스크립트 센터의 ConvertOABDir.ps1 페이지로 이동합니다.

CAS 멤버에 ASA 자격 증명 배포

Exchange Server 2010 SP1에는 ASA 자격 증명을 배포할 수 있는 스크립트가 포함되어 있습니다. 스크립트 이름은 RollAlternateServiceAccountPassword.ps1 스크립트 디렉터리에 있습니다.

스크립트를 사용하여 처음 설치하기 위해 포리스트의 모든 클라이언트 액세스 서버에 자격 증명을 푸시하려면 다음 단계를 수행합니다.

  1. Exchange 관리 셸에서 다음 명령을 실행합니다.

    .\RollAlternateserviceAccountPassword.ps1 -ToEntireForest -GenerateNewPasswordFor "Your_Domain_Name\Computer_Account_Name$" -Verbose
    
  2. 다음 명령을 실행하여 "Exchange-RollAsa"라는 한 달에 한 번 자동화된 암호 롤 예약 작업을 예약합니다. 이 명령 예약 작업은 포리스트의 모든 클라이언트 액세스 서버에 대한 ASA 자격 증명을 스크립트로 생성된 새 암호로 업데이트합니다. 예약된 작업이 만들어지지만 스크립트가 실행되지 않습니다. 예약된 작업이 실행되면 스크립트는 무인 모드로 실행됩니다.

    .\RollAlternateServiceAccountPassword.ps1 -CreateScheduledTask "Exchange-RollAsa" -ToEntireForest -GenerateNewPasswordFor "Your_Domain_Name\Computer_Account_Name$"
    

RollAlternateserviceAccountPassword.ps1 스크립트를 사용하는 방법에 대한 자세한 내용은 셸에서 RollAlternateserviceAccountPassword.ps1 스크립트 사용을 참조하세요 .

ASA 자격 증명 배포 확인

Exchange 관리 셸에서 다음 명령을 실행하여 클라이언트 액세스 서버의 설정을 검사.Get-ClientAccessServer -IncludeAlternateServiceAccountCredentialStatus | fl name,*alter*

이 명령의 결과는 다음과 유사합니다.

Name : CASAAlternateServiceAccountConfiguration : Latest: 8/2/2010 3:48:38 PM, contoso\newSharedServiceAccountName$ Previous: <Not set>Name : CASBAlternateServiceAccountConfiguration : Latest: 8/2/2010 3:48:51 PM, contoso\newSharedServiceAccountName$ Previous: <Not set>

ASA 자격 증명과 SPN 연결

SPN을 구성하기 전에 대상 SPN이 포리스트의 다른 계정에 아직 구성되어 있지 않은지 확인합니다. ASA 자격 증명은 이러한 SPN이 연결된 포리스트의 유일한 계정이어야 합니다. 명령 프롬프트를 열고 –q–f 매개 변수를 사용하여 setspn 명령을 실행하여 포리스트의 다른 계정에 연결된 SPN이 없는지 확인할 수 있습니다. 다음 예제에서는 이 명령을 실행하는 방법을 보여줍니다. 명령은 아무 것도 반환하지 않습니다. 값을 반환하는 경우 사용하려는 SPN과 다른 계정이 이미 연결되어 있습니다.

참고

Windows Server 2008을 실행하는 컴퓨터에서 setspn 명령과 중복 검사 포리스트 와이드 매개 변수(-f)만 사용할 수 있습니다.

Setspn -q -f exchangeMDB/outlook.**domain.domain.domain_root**

이 명령에서 exchangeMDB/outlook.domain.domain.domain_root exchangeMDB/outlook.corp.contoso.com 같은 RPC 클라이언트 액세스용 SPN의 SPN입니다.

다음 명령은 공유 ASA 자격 증명에서 SPN을 설정하는 방법을 보여 줍니다. 식별한 모든 대상 SPN에 대해 이 구문을 사용하여 setspn 명령을 한 번 실행해야 합니다.

Setspn -S exchangeMDB/outlook.corp.contoso.com contoso\newSharedServiceAccountName$

SPN을 설정한 후 다음 명령을 실행하여 SPN이 추가되었는지 확인합니다.

Setspn -L contoso\newSharedServiceAccountName

Kerberos를 성공적으로 구성하고 RollAlternateServiceAccountPasswordl.ps1 스크립트를 배포한 후 클라이언트 컴퓨터가 성공적으로 인증할 수 있는지 확인합니다.

Microsoft Exchange 서비스 호스트 서비스가 실행 중인지 확인

환경의 모든 클라이언트 액세스 서버에 Exchange Server 2010 SP1 롤업 3 이상을 설치했는지 확인합니다. 클라이언트 액세스 서버의 Microsoft Exchange 서비스 호스트 서비스는 ASA 자격 증명 관리를 담당합니다. 이 서비스가 실행되고 있지 않으면 Kerberos 인증이 작동하지 않습니다. 기본적으로 서비스는 컴퓨터가 시작될 때 자동으로 시작되도록 구성됩니다. 서비스가 실행 중인지 확인하려면 다음 단계를 수행합니다.

  1. CAS에서 서비스를 엽니다. 서비스를 열려면 시작을 클릭하고 제어판 클릭한 다음 관리 도구를 두 번 클릭한 다음 서비스를 두 번 클릭합니다.
  2. 서비스 목록에서 Microsoft Exchange 서비스 호스트 서비스를 찾습니다.
  3. 상태 열에서 상태 시작되었는지 확인합니다. 서비스가 시작되지 않은 경우 Microsoft Exchange 서비스 호스트 서비스를 마우스 오른쪽 단추로 클릭한 다음 시작을 클릭합니다. 서비스가 자동으로 시작되도록 구성하려면 Microsoft Exchange 서비스 호스트 서비스를 마우스 오른쪽 단추로 클릭하고 속성을 클릭하고 시작 유형 목록에서 자동을 클릭한 다음 확인을 클릭합니다.
    Outlook에서 인증 유효성 검사

Outlook에서 Kerberos 인증을 사용하여 클라이언트 액세스 서버에 연결할 수 있는지 확인하려면 다음 단계를 수행합니다.

  1. Outlook이 부하 분산된 올바른 클라이언트 액세스 서버 배열을 가리키도록 구성되어 있는지 확인합니다.
  2. 로그온 네트워크 보안 협상 인증을 사용하도록 이메일 계정 서버 보안 설정을 구성합니다. 참고 Kerberos 암호 인증을 사용하도록 클라이언트를 구성할 수 있지만 SPN이 제거된 경우 인증 메커니즘을 다시 협상 인증으로 변경할 때까지 클라이언트 컴퓨터는 인증할 수 없습니다.
  3. 클라이언트 컴퓨터에 Outlook Anywhere가 사용하도록 설정되어 있지 않은지 확인합니다. Kerberos 암호 인증을 사용하여 Outlook을 인증할 수 없는 경우 Outlook Anywhere로 대체하려고 시도하므로 이 테스트를 위해 Outlook Anywhere를 사용하지 않도록 설정해야 합니다.
  4. Outlook을 다시 시작합니다.
  5. 데스크톱 컴퓨터에서 Windows 7을 실행하는 경우 klist.exe 실행하여 부여되고 사용 중인 Kerberos 티켓을 확인할 수 있습니다. Windows 7을 실행하지 않는 경우 Windows Server 2003 리소스 키트에서 klist.exe 가져올 수 있습니다.

추가 리소스

이 문제와 해결 방법에 대한 자세한 내용은 다음 TechNet 문서를 참조하세요.

클라이언트 액세스 서버 배열 또는 부하 분산 솔루션에 Kerberos 사용

부하 분산된 클라이언트 액세스 서버에서 Kerberos 인증을 사용하는 방법에 대한 자세한 내용은 다음 TechNet 문서를 참조하세요.

Load-Balanced 클라이언트 액세스 서버에 대한 Kerberos 인증 구성