Microsoft SharePoint On-Prem 커넥터 배포

Google Workspace 콘텐츠 외에도 조직의 SharePoint 온프레미스 콘텐츠에서 결과를 반환하도록 Google Cloud Search를 설정할 수 있습니다. Google Cloud Search SharePoint On-Prem 커넥터를 사용하여 특정 SharePoint 데이터 소스에 액세스하도록 구성합니다.

중요 고려사항

준수 SharePoint 설정

Cloud Search SharePoint On-Prem 커넥터는 항상 SharePoint의 검색 공개 상태 설정을 따릅니다. 이는 재정의할 수 없습니다. 초안 문서의 경우 커넥터가 SharePoint Online에 액세스하는 데 사용하는 사용자 계정의 권한은 색인 생성 및 반환되는 초안 문서를 제어합니다. 계정에 '전체 읽기' 권한만 있는 경우 커넥터는 SharePoint의 '임시 항목 공개 상태' 설정을 따릅니다.

사용자 계정 액세스에 따라 결과를 제한하도록 커넥터를 구성할 수도 있습니다. Google 주 구성원과 외부 주 구성원을 사용하여 ACL을 정의할 수 있습니다. SharePoint 콘텐츠에 보안 트리밍을 적용하려면 다음 외부 ID를 Google 디렉터리와 동기화합니다.

  • Active Directory 사용자
  • Active Directory 그룹
  • SharePoint 로컬 그룹(Active Directory 사용자 및 그룹을 구성원으로 포함)

AD 사용자 및 그룹을 동기화하려면 Google Cloud 디렉터리 동기화를 사용하여 ID 매핑된 그룹을 사용 설정합니다. SharePoint 로컬 그룹을 동기화하려면 SharePoint ID 커넥터를 사용합니다.

또한 커넥터는 주 구성원을 동기화하기 위해 추가 정보를 가져오기 위해 AD 조회를 수행해야 합니다. 예를 들어 AD 조회를 사용하면 커넥터에서 다음 작업을 수행할 수 있습니다.

  • 도메인 그룹의 SID를 해당 sAMAccountName에 매핑합니다.
  • 사용자 sAMAccountName을 SharePoint 로컬 그룹 멤버십의 이메일 주소에 매핑합니다.

검색 최적화

보다 관련성 높은 검색결과를 반환하도록 커넥터를 구성하여 사용자 환경을 개선할 수 있습니다.

API를 사용하려면 SharePoint Online 커넥터 구성 파일에서 HTML 생성 매개변수 값을 설정합니다. 이러한 매개변수를 사용하면 일치에 미치는 영향을 더 높거나 낮게 설정할 수 있습니다.

스키마를 설정하려면 스키마 만들기 및 등록의 안내를 따르세요. 스키마를 설정할 때 다음을 수행합니다.

  • SharePoint 콘텐츠 유형의 이름을 해당 객체 정의에 매핑하기 위해 커넥터는 지원되지 않는 문자를 제외하여 콘텐츠 유형 이름을 정규화합니다. 객체 정의의 경우 Cloud Search API는 A~Z, a~z, 0~9만 유효한 문자로 지원합니다. 예를 들어 '알림' 콘텐츠 유형은 '알림' 객체 정의에 매핑됩니다. 콘텐츠 유형 'News Article'은 'NewsArticle' (공백 없음)에 매핑됩니다.

  • 커넥터가 객체 정의를 객체 정의와 일치시킬 수 없는 경우 커넥터는 대체 객체 유형 (itemMetadata.objectType)을 사용합니다. 메타데이터 구성 매개변수에 대해 자세히 알아보세요.

  • SharePoint 속성 이름을 속성 정의에 매핑하기 위해 커넥터는 16진수로 인코딩된 문자를 디코딩하고 'ows_' 접두사를 삭제한 다음 지원되지 않는 문자(A~Z, a~z, 0~9를 제외한 모든 문자(유효한 문자로 0~9)를 제외)를 삭제하여 속성 이름을 정규화합니다.

Microsoft Outlook 메일 처리

커넥터가 콘텐츠 색인을 생성할 때 Microsoft Outlook .msg 파일을 발견하면 파일의 미디어 유형을 재정의하고 application/vnd.ms-outlook.로 색인을 생성합니다.

멀티 테넌트 구성

SharePoint가 동일한 웹 애플리케이션에 여러 고객 사이트가 호스팅되는 다중 테넌트 배포인 경우 구성 파일에서 사이트 모음 모드를 구성해야 합니다. 멀티 테넌트 배포에서는 사이트 모음에 대한 권한만 가져오고 SharePoint On-Prem 커넥터에 필요한 전체 읽기 권한은 받을 수 없습니다.

사이트 모음 모드를 사용 설정하려면 다음 단계를 따르세요.

  • 커넥터 사용자 계정에 사이트 모음 관리자 권한을 부여합니다.
  • 커넥터 구성 파일의 sharepoint.server를 사이트 모음 URL(예: http://sharepoint.example.com/sites/sitecollection)로 설정합니다. URL에 SharePoint에서 사용하는 것과 동일한 대소문자를 사용할 필요는 없습니다.
  • 커넥터 구성 파일의 sharepoint.siteCollectionOnlytrue로 설정합니다.

다중 테넌트 환경에 색인을 생성할 사이트 모음이 여러 개 있는 경우 각 사이트 모음에 대해 하나의 커넥터 인스턴스를 구성해야 합니다.

커넥터 제한사항

  • 커넥터가 모니터링하는 데이터베이스 수가 많을수록 커넥터가 데이터베이스의 항목 변경사항을 감지하는 데 걸리는 시간이 늘어납니다.
  • 메모리 소비는 각 사이트 모음의 ACL에서 사용하는 순 사용자 및 그룹 수에 따라 증가합니다.
  • 하나의 Active Directory 도메인의 ID로만 커넥터를 구성할 수 있습니다.
  • 일부 일반적인 Active Directory 및 Windows 주 구성원(예: Everyone, BUILTIN\Users, All Authenticated Users)은 지원되지 않습니다.
  • 삭제 알림은 즉시 처리되지 않으며 커넥터에서 사용자가 소스 저장소에서 콘텐츠를 삭제했음을 인식하는 데 4시간 이상 걸릴 수 있습니다.

시스템 요구사항

시스템 요구사항
운영체제
  • Windows Server 2016
  • Ubuntu
  • Red Hat Enterprise Linux 5.0
  • SUSE Enterprise Linux 10(64비트)
소프트웨어
  • SharePoint 서버
    • SharePoint Server 2016
    • SharePoint Server 2013
  • Google Cloud Search SharePoint On-Prem 커넥터를 실행할 컴퓨터에 Java JRE 1.8 설치
인증
  • NTLM
  • Kerberos
  • HTTP 기본
  • ADFS

커넥터 배포

기본 요건

  1. 서비스 계정 ID가 포함된 Google Workspace 비공개 키를 만듭니다. 비공개 키를 가져오는 방법은 Google Cloud Search API에 대한 액세스 구성을 참고하세요.

  2. Google Workspace 관리자가 검색할 데이터 소스를 추가해야 합니다. 데이터 소스 ID를 기록합니다.

  3. 커넥터가 ACL을 기반으로 결과를 반환하는 경우 (결과가 공개되지 않음) Google Workspace 관리자는 ID 소스 2개를 만들고 ID를 제공해야 합니다.

    • Active Directory 사용자 및 그룹을 동기화하기 위한 ID 소스
    • SharePoint 로컬 그룹의 ID 소스

    또한 관리자가 조직의 Google Workspace 고객 ID를 받아서 제공해야 합니다.

    Cloud Search에서 사용자 ID 매핑하기에서 이러한 값을 가져오는 방법을 알아보세요.

  4. 사용자 정책에서 SharePoint 웹 애플리케이션에 대한 전체 읽기 권한이 있는 커넥터의 사용자 계정을 설정합니다.

  5. SharePoint 웹 애플리케이션에 루트 사이트 모음이 없는 경우 루트 사이트 모음을 만듭니다.

  6. 쓰기 잠금이 설정된 사이트 모음이 있으면 관리자 권한이 있는 계정으로 SharePoint 서버에 로그인하여 PrepareWriteLockedSites.ps1 스크립트를 실행합니다.

  7. 커넥터 구성을 알리기 위해 데이터 소스 측정항목을 가져오려면 팜 관리 권한이 있는 계정으로 SharePoint 서버에 로그인하고 diagnose_sp.ps1를 실행합니다.

    출력에는 웹 애플리케이션, 문서, 사용자 그룹 구성원 수가 보고됩니다. 이 정보를 사용하여 필요한 커넥터 인스턴스 수, 메모리 요구사항, 문서 수를 예측할 수 있습니다.

1단계: Google Cloud Search SharePoint On-Prem 커넥터 소프트웨어 설치

  1. GitHub의 커넥터 저장소를 클론합니다.

    $ git clone https://github.com/google-cloudsearch/sharepoint-connector.git
    $ cd sharepoint-connector
  2. 원하는 버전의 커넥터를 체크아웃합니다.

    $ git checkout tags/latest_version

    여기서 latest_version = v1-0.0.5와 같은 값

  3. 커넥터를 빌드합니다.

    $ mvn package

    커넥터를 빌드할 때 테스트를 건너뛰려면 mvn package 대신 mvn package -DskipTests를 실행합니다.

  4. 커넥터 zip 파일을 로컬 설치 디렉터리에 복사합니다.

    $ cp target/google-cloudsearch-sharepoint-connector-latest_version.zip installation-dir
    $ cd installation-dir
    $ unzip google-cloudsearch-sharepoint-connector-latest_version.zip
    $ cd google-cloudsearch-sharepoint-connector-latest_version

2단계: SharePoint On-Prem 커넥터 구성 파일 만들기

  1. 커넥터 설치와 동일한 디렉터리에서 파일을 만듭니다. 커넥터를 실행하는 데 명령줄 매개변수가 추가로 필요하지 않도록 파일의 이름을 connector-config.properties로 지정하는 것이 좋습니다. 다수의 커넥터 인스턴스를 실행하려는 경우 이름에 세부정보를 추가하여 구분합니다.

  2. 다음 예와 같이 파일 콘텐츠에 매개변수를 키-값 쌍으로 추가합니다.

    ### Sharepoint On-Prem Connector configuration ###
    
    # Required parameters for data source access
    api.sourceId=08ef8becd116faa4546b8ca2c84b2879
    api.serviceAccountPrivateKeyFile=service_account.json
    api.identitySourceId=08ef8becd116faa475de26d9b291fed9
    
    # Required parameters for SharePoint on-premises access
    sharepoint.server=http://sp-2016:32967/sites/doc-center-site-collection
    sharepoint.siteCollectionOnly=true
    sharepoint.username=contoso\\admin
    sharepoint.password=pa$sw0rd
    sharepoint.stripDomainInUserPrincipals=true
    
    # Required parameters for AD lookup
    adLookup.host=dc.contoso.com
    adLookup.username=contoso\\admin
    adLookup.password=pa$sw0rd
    api.referenceIdentitySources=CONTOSO,contoso
    api.referenceIdentitySource.contoso.id=08ef8becd116faa5d3783f8c5a80e5aa
    api.referenceIdentitySource.CONTOSO.id=08ef8becd116faa5d3783f8c5a80e5aa
    
    # Optional parameters for schema mapping
    contentTemplate.sharepointItem.title=Title
    contentTemplate.sharepointItem.unmappedColumnsMode=APPEND
    

    각 매개변수에 대한 자세한 설명은 구성 매개변수 참조를 확인하세요.

  3. (선택사항) 필요에 따라 추가 커넥터 매개변수를 구성합니다. 자세한 내용은 Google 제공 커넥터 매개변수를 참조하세요.

3단계: HTTPS의 경우 SharePoint를 신뢰할 수 있는 호스트로 추가합니다.

SharePoint가 HTTPS를 사용하도록 구성된 경우 SharePoint 인증서를 가져와서 커넥터의 신뢰할 수 있는 호스트로 추가합니다.

  1. 커넥터를 실행할 컴퓨터에서 브라우저를 열고 SharePoint로 이동합니다.

  2. 경고 페이지가 열리면 위험 사항 확인예외 추가를 클릭합니다. 인증서가 자체 서명되었으며 신뢰할 수 있는 인증 기관에서 서명하지 않았기 때문에 페이지에 '이 연결은 신뢰할 수 없습니다'와 같은 메시지가 표시됩니다.

  3. 보기 버튼을 사용할 수 있게 되면 클릭합니다.

  4. 세부정보 탭으로 이동하여 내보내기를 클릭합니다.

  5. 인증서를 커넥터 디렉터리에 sharepoint.crt 이름으로 저장합니다.

  6. 닫기를 클릭한 후 취소를 클릭하여 창을 닫습니다.

  7. 명령 프롬프트를 열고 다음 명령어를 입력합니다.

    $ keytool -importcert -keystore cacerts.jks -storepass changeit -file sharepoint.crt -alias sharepoint

    "이 인증서를 신뢰하시겠습니까?"라는 메시지가 나타나면 를 선택합니다.

4단계: 로깅 설정

  1. 커넥터 바이너리가 있는 디렉터리에서 logs이라는 폴더를 만듭니다.

  2. 동일한 디렉터리 (logs 아님)에서 이름이 logging.properties인 Latin1 인코딩 파일을 만듭니다.

  3. logging.properties에 다음 텍스트를 추가합니다.

    handlers = java.util.logging.ConsoleHandler,java.util.logging.FileHandler
    # Default log level
    .level = INFO
    # uncomment line below to increase logging level for SharePoint APIsa
    #com.google.enterprise.cloudsearch.sharepoint.level=FINE
    
    # uncomment line below to increase logging level to enable API trace
    #com.google.api.client.http.level = FINE
    java.util.logging.ConsoleHandler.level = INFO
    java.util.logging.FileHandler.pattern=logs/connector-sharepoint.%g.log
    java.util.logging.FileHandler.limit=10485760
    java.util.logging.FileHandler.count=10
    java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
    

5단계: SharePoint On-Prem ID 커넥터 구성

이 단계는 SharePoint On-Prem ID 기반 ACL을 검색 결과에 적용하는 데 필요합니다. 공개 ACL로 커넥터를 설정한 경우 이 단계를 건너뛸 수 있습니다.

  1. SharePoint Online 커넥터 설치와 동일한 디렉터리에서 파일을 만들고 이름을 sharepoint-onprem-identity-connector.config로 지정합니다.

  2. 다음 예와 같이 파일 콘텐츠에 매개변수를 키-값 쌍으로 추가합니다.

    ### SharePoint On-prem identity connector configuration ###
    
    # Required parameters for data source access
    api.customerId=C05d3djk8
    api.serviceAccountPrivateKeyFile=service_account.json
    api.identitySourceId=08ef8becd116faa475de26d9b291fed9
    
    # Required parameters for SharePoint access
    sharepoint.server=http://sp-2016:32967/sites/doc-center-site-collection
    sharepoint.siteCollectionOnly=true
    sharepoint.username=contoso\\admin
    sharepoint.password=pa$sw0rd
    sharepoint.stripDomainInUserPrincipals=true
    
    # Required parameters for AD lookup
    adLookup.host=dc.contoso.com
    adLookup.username=contoso\\admin
    adLookup.password=pa$sw0rd
    api.referenceIdentitySources=CONTOSO,contoso
    api.referenceIdentitySource.contoso.id=08ef8becd116faa5d3783f8c5a80e5aa
    api.referenceIdentitySource.CONTOSO.id=08ef8becd116faa5d3783f8c5a80e5aa
    

    이 값은 api.sourceId 대신 매개변수가 api.customerId이라는 점을 제외하고 SharePoint On-Prem 커넥터와 거의 동일합니다. api.customerId 값은 Google Workspace 관리자에게 받은 고객 ID입니다.

6단계: SharePoint On-Prem 커넥터 실행

다음 단계에서는 온프레미스 Active Directory와 SharePoint 사이트 모음의 주 구성원을 Cloud ID 서비스의 ID에 매핑합니다. 이 동기화는 Google Cloud 디렉터리 동기화 (GCDS) 및 SharePoint On-Prem ID 커넥터를 사용하여 수행됩니다.

GCDS에서 사용자 및 그룹을 동기화한 후 SharePoint 사이트 모음 그룹을 동기화하려면 SharePoint On-Prem ID 커넥터를 실행합니다. 마지막으로 SharePoing On-Prem 커넥터를 실행하여 Cloud Search 사용자에게 색인을 생성하고 결과를 제공합니다.

  1. 아직 하지 않았다면 GCDS를 구성하고 실행합니다. ID 매핑 그룹을 사용 설정해야 합니다.

  2. SharePoint On-Prem ID 커넥터를 실행합니다.

    $ java -Djava.util.logging.config.file=logging.properties -cp "google-cloudsearch-sharepoint-connector-version.jar" com.google.enterprise.cloudsearch.sharepoint.SharePointIdentityConnector -Dconfig=sharepoint-onprem-identity-connector.config
  3. SharePoint On-Prem 커넥터를 실행합니다. SharePoint 사이트 보안에 다음 명령어 문법을 사용하세요.

    • HTTP (신뢰할 수 있는 호스트 필요 없음):

      $ java -Djava.util.logging.config.file=logging.properties -jar google-cloudsearch-sharepoint-connector-v1-version.jar
    • HTTPS (SharePoint를 신뢰할 수 있는 호스트로 추가):

      $ java -Djavax.net.ssl.trustStore=cacerts.jks -Djavax.net.ssl.trustStoreType=jks -Djavax.net.ssl.trustStorePassword=changeit -Djava.util.logging.config.file=logging.properties -jar google-cloudsearch-sharepoint-connector-v1-version.jar

구성 매개변수 참조 정보

데이터 소스 액세스

설정 매개변수
데이터 소스 ID api.sourceId=1234567890abcdef

필수 항목입니다. Google Workspace 관리자가 설정한 Google Cloud Search 데이터 소스 ID입니다.

서비스 계정 비공개 키 파일의 경로 api.serviceAccountPrivateKeyFile=PrivateKey.json

필수 항목입니다. Google Cloud Search 서비스 계정 키 파일의 경로입니다.

SharePoint 온프레미스 액세스

설정 매개변수
SharePoint 서버 URL sharepoint.server=http://yoursharepoint.example.com/

필수 항목입니다. 정규화된 호스트 이름으로 된 SharePoint 서버의 URL(예: http://yoursharepoint.example.com/) 호스트 이름이 정규화되지 않은 경우 커넥터 호스트에서 DNS 재정의를 설정해야 합니다.

SharePoint 사용자 이름 sharepoint.username=YOURDOMAIN\\ConnectorUser

SharePoint Server AD 도메인에 속하지 않는 Linux 또는 Windows 시스템에서 커넥터를 실행할 때 필요합니다.

SharePoint 비밀번호 sharepoint.password=user_password

SharePoint Server AD 도메인에 속하지 않는 Linux 또는 Windows 시스템에서 커넥터를 실행할 때 필요합니다.

실시간 인증을 사용하여 SharePoint에 연결 sharepoint.username=AdaptorUser Live Authentication Id

sharepoint.password uS3R_passWoRD

sharepoint.formsAuthenticationMode=LIVE

ADFS 인증을 사용하여 SharePoint에 연결 sharepoint.username=AdaptorUser@yourdomain.com

sharepoint.password=uS3R_passWoRD

sharepoint.sts.endpoint=https://adfs.example.com/adfs/services/trust/2005/usernamemixed

sharepoint.sts.realm=urn:myserver:sharepoint 또는 https://yoursharepoint.example.com/_trust

sharepoint.formsAuthenticationMode=ADFS

사이트 모음 색인 생성

설정 매개변수
색인 유형 sharepoint.siteCollectionOnly=boolean

선택사항(멀티 테넌트 SharePoint 배포 제외)(자세히 알아보기) 커넥터 색인 sharepoint.server을 가상 서버가 아닌 사이트 모음으로 사용하려면 true로 설정하세요. 기본값은 null입니다 (자동 감지됨).

SharePoint ID 매핑

설정 매개변수
ID 소스 ID api.identitySourceId=1234567890abcdef

필수 항목입니다. SharePoint 로컬 그룹을 동기화하기 위한 ID 소스 ID입니다.검색할 데이터 소스 추가하기에 설명된 대로 Google Workspace 관리자가 설정한 Google Cloud Search 소스 ID입니다.

참조 ID 소스 api.referenceIdentitySources=CONTOSO,contoso

Active Directory 주 구성원의 참조 ID 소스를 쉼표로 구분한 목록입니다. 이 값은 참조 Active Directory 주 구성원의 Active Directory NETBIOS 이름과 일치합니다.

참조 ID 소스 ID api.referenceIdentitySource.DOMAIN.id=identity-source-id

필수 항목입니다. Active Directory 주 구성원 동기화를 위한 ID 소스 ID입니다.

Active Directory 조회

설정 매개변수
Active Directory 호스트 adLookup.host=host

필수 항목입니다. 활성 디렉터리 호스트 이름(예: dc.contoso.com) 또는 IP 주소

Active Directory 조회 포트 adLookup.port=port

선택사항입니다. 기본값은 389입니다. SSL의 경우 686을 사용합니다.

Active Directory 조회 메소드 adLookup.method=value

선택사항입니다. 기본값은 `standard`입니다. HTTPS 연결의 경우 `ssl`로 설정합니다.

Active Directory 조회 사용자 adLookup.username=CONTOSO\user1

필수 항목입니다. Active Directory 조회를 수행할 권한이 있는 사용자입니다.

Active Directory 조회 비밀번호 adLookup.password=password123

필수 항목입니다. adLookup.user에서 지정한 사용자의 비밀번호입니다.

HTML 콘텐츠 생성

설정 매개변수
HTML 템플릿 제목 필드 contentTemplate.sharePointItem.title=Title

생성된 HTML의 HTML 템플릿 제목으로 사용할 SharePoint 필드입니다.

HTML 콘텐츠 높은 검색 품질 필드 contentTemplate.sharePointItem.quality.high=highField1[,highField2,...]

생성된 HTML에 고품질 필드로 포함할 쉼표로 구분된 필드 목록입니다. 검색어가 이러한 필드와 일치하면 결과의 순위가 높아집니다.

HTML 콘텐츠 중간 검색 품질 필드 contentTemplate.sharePointItem.quality.medium=mediumField1[,mediumField2,...]

생성된 HTML에 중간 품질 필드로 포함할 쉼표로 구분된 필드 목록입니다.

HTML 콘텐츠 낮은 검색 품질 필드 contentTemplate.sharePointItem.quality.low=lowField1[,lowField2,...]

생성된 HTML에 낮은 품질 필드로 포함할 쉼표로 구분된 필드 목록입니다.

HTML 콘텐츠 매핑되지 않은 열 contentTemplate.sharepointItem.unmappedColumnsMode=APPEND

커넥터가 매핑되지 않은 열을 처리하는 방법입니다. 값은 APPEND (기본값) 또는 IGNORE입니다.

  • APPEND: 커넥터가 품질 수준 (높음, 중간 또는 낮음)으로 설정되지 않은 필드를 비롯한 모든 필드가 포함된 HTML 콘텐츠를 생성합니다.
  • IGNORE—커넥터가 매핑된 필드만 있는 HTML 콘텐츠를 생성합니다.