Partager via


SharePoint 2010에서 검색을 위해 사용자 지정 클레임 공급자를 설치해야 하는 경우

최초 문서 게시일: 2012년 3월 21일 수요일

최근 사용자 지정 클레임 공급자 및 검색과 관련하여 건설적인(흥미로운) 토론이 있었습니다. 이 토론에서 언급된 사항 중 하나는, 검색 결과에서 보안 조정이 정상적으로 작동하도록 하려면 검색 상자("상자"의 정의에 대해서는 아래 설명 참조)에 사용자 지정 클레임 공급자를 설치해야 하는 경우가 있다는 것이었습니다. 그러나 이 사항이 적용되는 경우는 FAST Search 2010을 사용하는지 SharePoint Search 2010을 사용하는지에 따라 다릅니다.

먼저 약간의 배경 설명을 하고 넘어가겠습니다. 사용자가 쿼리를 작성할 때마다 사용자 토큰의 클레임이 디코딩됩니다. 그러나 크롤러가 콘텐츠에 대한 보안 정보를 검색하는 데 사용하는 SiteData 웹 서비스는 항상 인코딩된 클레임을 반환합니다. 이 차이는 어떻게 조정할 수 있을까요?

FAST Search 2010에서는 클레임이 FAST Search 2010 인덱서에 의해 저장되기 전에 항상 디코딩됩니다. 이는 FAST 쿼리 서버에 SharePoint 비트가 설치되어 있지 않기 때문에 클레임을 인코딩할 수 없기 때문입니다. 사용자 클레임은 디코딩된 상태로 전달되므로 이 클레임을 SiteData 웹 서비스에서 반환하는 인코딩된 클레임과 일치하도록 하려면 사용자 클레임을 비교용으로 인코딩해야 합니다. FAST 쿼리 서버에는 사용자 지정 클레임 공급자를 설치할 수 없으므로 SiteData 웹 서비스에서 가져오는 클레임을 디코딩해야 하며, 이렇게 하려면 사용 중인 사용자 지정 클레임 공급자를 FAST Content SSA에 설치해야 합니다. 그러면 클레임을 디코딩하고 디코딩된 클레임을 저장할 수 있으며, 사용자에 대해 디코딩된 클레임이 제공되면 비교를 수행할 수 있습니다. 즉, FAST의 경우에는 크롤링 시에 사용자 지정 클레임 공급자를 사용하는 경우가 문제가 된다고 할 수 있습니다.

SharePoint Search 2010의 경우에는 이와 반대의 문제가 발생합니다. SharePoint는 모든 위치에 설치된다고 가정하므로 쿼리 시에 콘텐츠에 대해 저장되는 ACL과 비교할 수 있도록 사용자의 클레임을 인코딩할 수 있다는 전제 하에 작동합니다. 그러나 쿼리 프로세서(쿼리 및 사이트 설정 서비스라고도 함)를 실행하는 서버에 사용자 지정 클레임 공급자를 배포하지 않은 경우에는 문제가 발생합니다. 대부분의 경우에는 팜의 모든 서버(WFE 및 응용 프로그램 서버)에 사용자 지정 클레임 공급자를 설치합니다. 쿼리 프로세서가 클레임을 인코딩하려면 이 사용자 지정 클레임 공급자를 설치해야 합니다. 따라서 모든 항목이 단일 팜에서 실행되는 경우에는 모든 서버에 사용자 지정 클레임 공급자를 설치하면 됩니다. 그러나 최근에 확인되었으며 이 게시물을 작성한 계기가 된 시나리오가 있는데, 그것은 별도의 서비스 팜이 있으며 해당 팜에서 SharePoint Search 서비스를 사용하는 경우입니다. 이 경우에는 쿼리 및 사이트 설정 서비스를 실행 중인 서비스 팜의 모든 서버에 사용자 지정 클레임 공급자가 설치되어 있는지 확인해야 합니다. 그렇지 않은 경우에는 사용자의 사용자 지정 클레임을 평가할 수 없으므로 사용자에게 검색 결과가 반환되지 않습니다.

이 사안은 매우 흥미로운 시나리오였으며, 해결하기가 꽤 까다로웠지만 몇몇 팀원의 도움을 받아 해결할 수 있었습니다. 가장 큰 문제를 해결하는 데 큰 도움을 준 Luca와 Sanjeev, 그리고 Michael P에게 특히 감사의 인사를 전하며, 그 외에도 이 문제를 파악하는 데 도움을 준 모든 분들께 감사를 드립니다.

이 문서는 번역된 블로그 게시물입니다. 원본 문서는 When Do You Need to Install a Custom Claims Provider for Search in SharePoint 2010을 참조하십시오.