Exchange 2007 Public Folder 의 컨텐츠를 MOSS 2007 Enterprise Search 에서 Crawling 하는 방법
Exchange 2007 의 Public Folder 컨텐츠들은 eml 형태로 존재하고, 이러한 eml 컨텐츠들을 Crawling 하기 위해서는 eml 을 다루는 데에 최적화된 프로토콜이 필요합니다.
MOSS 2007 Enterprise Search 는 WebDAV 를 이용해서 Exchange 2007 의 Public Folder 의 eml 파일들을 Crawling 합니다.
그런데, Exchange 의 경우 Default Web Site 아래에 MSExchangeOWAAppPool 을 함께 사용하는 OWA 와 Public 이라는 가상 디렉토리가 존재하게 됩니다.
이들은 기본적으로 https 가 enable 되어 있고, IIS 관리자가 아닌 Exchange 관리자에서 폼인증을 사용하도록 설정이 되어 있습니다.
즉, MOSS 2007 이 Exchange 2007 의 Public Folder 의 컨텐츠들을 Crawling 하는 데에 인증 이슈가 존재한다는 것입니다.
가능한 방법은 크게 3가지가 있습니다.
[전제 조건]
MOSS 2007 RTM 은 안되고 SP1 이상이어야 합니다.(물론 Exchange 2003 Public Folder 의 경우, MOSS 2007 RTM 도 Crawling 가능합니다.)
https://blogs.msdn.com/enterprisesearch/archive/2008/06/06/indexing-exchange-server-2007-public-folders.aspx 에 전제조건들에 대해서는 자세하게 나와 있습니다.
[방법 1]
MOSS 측에서 폼인증을 통과시키는 설정을 할 수 있습니다.
“크롤링 규칙” 을 이용하는 방법이며, 웹 UI 로는 설정이 불가능합니다.
AddRule.exe 라는 도구를 설치해서 사용해야 합니다.
일반 FBA 인증을 통과시키는 방법은,
https://www.myfriedmind.com/techBlog/2009/07/28/MsoftAddRuleExampleIsIncorrect.aspx 를 참고하면,
https://msdn.microsoft.com/en-us/library/bb852172.aspx 에 나와있는 xml sample 이 잘못되었음을 알 수 있습니다.
에 자세한 step 이 나와있습니다.
next article 에서 “FBA 인증을 통과해서 Crawling 하는 방법” 에서 다시 자세하게 설명하도록 하겠습니다.
[방법 2]
Exchange 측면에서 Web Application 을 하나 더 만들고 owa 와 public 에 폼 인증이 아닌 NTLM 을 enable 시키는 방법이 있습니다.
Exchange 에서
1. public folder 를 보여주기 위한 용도의 IIS Web Application 을 만들고,
2. Exchange Management Shell 에서 다음과 같이 OWAVirtualDirectory 를 3개 생성합니다.
shell> New-OWAVirtualDirectory -OwaVersion:Exchange2007 -Name “OWA” -WebSite “moss-public”
shell> New-OWAVirtualDirectory -OwaVersion:Exchange2003or2000 -VirtualDirectoryType PublicFolders -Name "Public" -WebSite "moss-public"
shell> New-OWAVirtualDirectory -OwaVersion:Exchange2003or2000 -VirtualDirectoryType mailboxes -Name "Exchange" -WebSite "moss-public"
3. IIS 관리자에서 새로 생성한 Web Application(예제에서는 moss-public 이라는 이름의 Web Application) 에 포트번호를 사용하거나 hostheader 를 사용해서 Default Web Site 와 다르게 호스팅되도록 설정합니다.
4. “Exchange Management Console > Server Configuration > Client Access > Outlook Web Access 탭” 에서 다음과 같이 새로 생성한 Web Application 에 대한 Internal URL 과 External URL 을 설정합니다.
이 설정은 매우 중요합니다. 해당 설정을 하지 않으면, 새로 생성한 Web Applicaiton 의 Public 이라는 가상 디렉토리가 NTLM 이 Enable 되었다 하더라도, Default Web Site 의 폼인증이나 SSL 인증을 따라가는 현상이 발생합니다.
MOSS 에서
“SSP 관리자 > 검색 설정 > 콘텐츠 원본” 에 다음과 같이 설정하면 됩니다.
이 방법은 MOSS 입장에서는 인증을 신경 쓸 필요가 없으므로 설정이 매우 간단합니다.
[방법 3]
MOSS SP2 에서는 간단하게 “SSP 관리자”에서 웹 UI 로 폼 인증을 설정할 수 있습니다.
AddRule.exe 로 xml 파일을 등록하는 작업을 할 필요가 없습니다.
이렇게 하면 Exchange 측의 특별한 설정도 필요가 없습니다.
Exchange 에서
“Exchange Management Console > Server Configuration > Client Access > Outlook Web Access 탭” 에서 OWA 에 대한 Internal URL 과 External URL 을 설정해주기만 하면 됩니다.
MOSS 에서
1. “콘텐츠 원본” 을 다음과 같이 설정합니다.(Default Web Site 의 URL 입니다.),
2. 인터넷 브라우저 세팅을 다음과 같이 합니다.
3. “크롤링 규칙” 을 다음 화면과 같이 추가합니다.(SP1 과 다르게 “폼 자격 증명 지정” 과 “크롤링에 쿠키 사용” 이 새로 추가된 것을 확인할 수 있습니다.)
- 여기서 중요한 점은 “경로” 에 https 로 적어 넣으면 안 된다는 것입니다. “콘텐츠 원본” 이 https 라고 하더라도 http 로 적어 넣어야 합니다.
4. “자격 증명 입력” 버튼을 클릭하면 다음과 같은 팝업창이 뜨는데 여기에서 인증을 한번 해보면 자동으로 인증정보가 MOSS 에 저장됩니다.
5. MOSS 의 검색 결과 페이지에서는 다음과 같이 https://exchangeserver/public/subfolder/콘텐츠.eml 과 같은 형식으로 나타나게 되고,
6. 클릭하면 Exchange 에서 위와 같은 주소를 /owa/?id=PSI. 과 같은 실제 User 가 볼 수 있는 OWA 주소로 변환해줍니다.
물론 폼 인증창이 나타나므로, id 와 password 를 입력해주셔야 하겠죠.
다음 article 에서는 Exchange 이외에도, FBA 인증을 통과해서 Crawling 하는 방법을 보다 자세하게 설명해드리도록 하겠습니다.
Fiddler 나 Netmon 혹은 HttpWatcher 를 이용해서 쿠키값과 parameter 정보들을 모두 맞추어줘야 하는 작업이 필요할 수도 있습니다.(직접 개발하신 페이지가 아니라면 그렇습니다.)
물론 MOSS 2007 SP2 를 설치하셨다면 간단하게 웹 UI 에서 설정을 하실 수 있습니다.