본문 바로가기

.Net/SharePoint 2013

피플 피커 조작하기 - 첫번째 커스텀 필터

안녕하세요. 김승진입니다.


SharePoint를 이용하다 보면 가장 많이 하게되는 작업 중 하나가 '권한 관리' 입니다.

오늘은 '권한 관리'에 대해서 알아 볼 것은 아니고 권한 입력는 피플 피커(People Picker) 조작에 대해 알아보고자 합니다.



SharePoint 2013 People PickerSharePoint 2013 People PickerSharePoint 2010 People PickerSharePoint 2010 People Picker



피플 피커(People Picker)를 조작해야 하는 이유

피플 피커를 조작해야 하는 이유는 참 많습니다.

SharePoint는 대부분 AD(Active Directory, 이하 AD)를 기반으로 해서 사용자를 관리하도록 되어 있습니다. 그런데 경우에 따라 AD에서 불필요한 사용자 정보가 SharePoint 내에 노출 되는 경우가 있습니다.


시나리오

예를 들자면 AD 내에 특정 그룹 전체의 사용자가 등록되어 있고 해당 그룹은 10개의 계열사를 있습니다. 

직원수는 1만명 쯤 된다고 생각해보죠. 그런데 SharePoint를 이용하는 회사는 1곳 뿐입니다.

이런 경우 SharePoint를 이용하는 회사 사용자를 제외한 나머지를 노출 시키고 싶지 않을 겁니다.

하지만 SharePoint Server가 AD 도메인 등록되어 있다면 1만명의 모든 사용자가 자동으로 검색 대상에 포함됩니다.

만약 노출이 된다면 동명이인으로 인한 실수가 발생할 수도 있고 이용 권한이 없는 회사에 이용 권한을 주는 불법적인 사용이 나타날 수도 있습니다. (시나리오가 조금 복잡 하네요,,,,ㅠㅠ)


해결 방안(Peoplepicker-searchadcustomfilter)

간혹 이것을 UserProfile Service의  Synchronization Connection의 Filter로 가능하지 않을까 생각할 수도 있는데 이것은 UserProfile Service와는 무관합니다.

방법은 stsadm.exe 툴을 이용하여 AD의 사용자 검색하는 과정에서 필터를 만들어 주는 것입니다.


1. 시작 > Command Prompt 실행(관리자 모드)

2. C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14 or 15\bin 이동

3. stsadm -o getproperty -pn peoplepicker-searchadcustomfilter -url <http://웹응용프로그램 주소>

4. stsadm -o setproperty -pn peoplepicker-searchadcustomfilter -pv "<필터 조건>" -url <http://웹응용프로그램 주소>


아래 화면의 필터 조건은 -pv "(|(!(cn=user01)))" 입니다.

무슨 뜻일까요? AD 속성 cn의 값이 user01이 아닌 사용자만 가져와라? 다시 말해 user01을 제외하라는 조건입니다.


이러한 형태로 다양한 조건을 통해 만들어 볼 수가 있습니다.


시나리오 처럼 회사별로 조건을 만들 수도 있고 부서, 직급, 이메일 주소 등 다양한 조합을 만들 수 있습니다.

하지만 여기서 중요한 사실은 AD의 속성 정보가 그만큼 충실하게 입력되어 있어야만 이러한 기능도 이용할 수 있다는 것입니다.


필터 문법이 궁금하다면 http://msdn.microsoft.com/library/aa746475(VS.85).aspx

AD의 속성이 궁금하다면 http://msdn.microsoft.com/en-us/library/windows/desktop/ms675090(v=vs.85).aspx


-o gerproperty로 값이 제대로 적용되었는지 확인합니다.



이제 user01을 입력하면 아래와 같이 결과를 찾을 수 없다고 나옵니다.

다른 사용자는 모두 정상적으로 검색이 됩니다.


필터를 삭제하는 방법

stsadm -o setproperty -pn peoplepicker-searchadcustomfilter -pv "" -url <http://웹응용프로그램 주소>


추가

필터 이전에 특정 OU를 기준으로 서비스를 하고자 할 때는 아래와 같은 property를 먼저 선언 하시며 됩니다.


stsadm -o setsiteuseraccountdirectorypath -path <OU정보> –url <http://웹응용프로그램 주소>


만약 세일즈 부서만 이용하는 SharePoint Server를 구성한다면 아래와 같이 작성 할 수 있습니다.


stsadm -o setsiteuseraccountdirectorypath -path "OU=Sales,DC=extox2010,DC=local" –url <http://웹응용프로그램 주소>


참고

http://technet.microsoft.com/en-us/library/gg602075.aspx

http://msdn.microsoft.com/library/aa746475(VS.85).aspx

http://msdn.microsoft.com/en-us/library/windows/desktop/ms675090(v=vs.85).aspx