Microsoft SharePoint On-Prem コネクタをデプロイする

このガイドは、Google Cloud Search SharePoint On-Prem コネクタの管理者、つまり、コネクタのダウンロード、構成、実行、モニタリングを担当するすべての方を対象としています。

このガイドでは、SharePoint On-Prem コネクタのデプロイ関連の主要なタスクを実行する手順を説明しています。

  • Google Cloud Search SharePoint On-Prem コネクタ ソフトウェアをダウンロードする
  • オンプレミスの SharePoint Server データソースで使用するためにコネクタを構成する
  • コネクタをデプロイして稼働させる

このドキュメントのコンセプトを理解するには、G Suite とオンプレミスの SharePoint Server に関する基本的な知識が必要です。

概要

Google Cloud Search は、デフォルトで Google ドキュメントや Gmail などの G Suite データからコンテンツを検出し、インデックスに登録して提供できます。SharePoint On-Prem コネクタを使用することで、Google Cloud Search を拡張し、SharePoint On-Prem コンテンツをユーザーに提供できます。

構成プロパティ ファイル

コネクタがオンプレミス SharePoint からコンテンツを検出してインデックス API にアップロードできるようにするには、構成ファイルを作成してコネクタに特定の情報を指定する必要があります。デプロイ手順に記載されている構成手順で、パラメータを追加して構成ファイルを作成します。

このドキュメントで説明している SharePoint On-Prem コネクタ パラメータ以外にも、すべての Cloud Search コネクタで使用される構成パラメータがあります。詳細については、Google 提供のコネクタ パラメータをご覧ください。

サポートされているオペレーティング システム

  • Windows Server 2016
  • Ubuntu
  • Red Hat Enterprise Linux 5.0
  • SUSE Enterprise Linux 10(64 ビット)

サポートされている SharePoint のバージョン

  • SharePoint Server 2016
  • SharePoint Server 2013

未公開ドキュメントのインデックス登録

Cloud Search SharePoint On-Prem コネクタは、SharePoint の検索の表示設定に常に従います(これをオーバーライドすることはできません)。ドラフト ドキュメントの場合、インデックス登録はコネクタのユーザー アカウントに付与された権限によって異なります。コネクタのユーザーに「完全な読み取り」権限のみが付与されている場合、コネクタは SharePoint のすべての「下書きアイテムの表示」設定に従います。

サポートされている認証メカニズム

  • NTLM
  • Kerberos
  • HTTP ベーシック
  • ADFS

コネクタの既知の制限事項

  • コンテンツ データベースの数は、ドキュメントの変更検出のレイテンシに影響します。
  • 各サイト コレクションの ACL で使用される一意のユーザーとグループの数は、メモリ消費に影響します。
  • 現在のバージョンのコネクタは、1 つの Active Directory ドメインの ID のみをサポートしています。
  • 現在のバージョンのコネクタは、Everyone, BUILTIN\Users, All Authenticated Users などのよく知られている Active Directory と Windows のプリンシパルをサポートしていません。
  • 現在のバージョンのコネクタでは、即時削除通知は生成されません。
  • 現在のバージョンのコネクタは、ソース リポジトリからの削除を識別するためにコンテンツのインデックス再登録を利用します。以前にインデックスに登録されたコンテンツの場合、削除検出のレイテンシは 4 時間を超えることがあります。

Cloud Search SharePoint On-Prem コネクタをデプロイする前に

Google Cloud Search SharePoint On-Prem コネクタをデプロイする前に、次の必須コンポーネントがあることを確認してください。

  • サポートされているオペレーティングシステムSharepoint Server
  • Google Cloud Search SharePoint On-Prem コネクタを実行するコンピュータに Java JRE 1.8 がインストールされている。
  • Google Cloud Search とデータソースの関係を確立するために必要な G Suite 情報:

    通常、これらの認証情報はドメインの G Suite 管理者から提供されます。

  • ユーザー ポリシーで SharePoint ウェブ アプリケーションへの完全な読み取り権限が付与されたコネクタのユーザー アカウント

  • ウェブ アプリケーションにルートサイト コレクションが作成されていることを確認します。このコネクタは、ルートサイト コレクションが存在しないウェブ アプリケーションのコンテンツのインデックス登録をサポートしていません。

  • 書き込みロックされたサイト コレクションがある場合は、コネクタをインストールする前に管理者権限を持つアカウントを使用して SharePoint 上で PrepareWriteLockedSitesForAdaptor.ps1 スクリプトを実行します。

  • ファーム管理権限を使用して SharePoint サーバーにログインし、diagnose_sp.ps1 を実行すると、このコネクタを容易に構成できます。

    このコマンドの出力(ウェブ アプリケーションの数、ドキュメントの数、ユーザー グループ メンバーの数など)は、必要なコネクタ インスタンス数、メモリ要件、予想されるドキュメント数の見積もりに役立ちます。

デプロイ手順

Google Cloud Search SharePoint On-Prem コネクタをデプロイする手順は、次のとおりです。

  1. Google Cloud Search SharePoint On-Prem コネクタ ソフトウェアをインストールする
  2. SharePoint On-Prem コネクタの構成を指定する。
  3. Google Cloud Search データソースへのアクセスを構成する。
  4. SharePoint On-Prem へのアクセスを構成する。
  5. SharePoint を信頼できるホストとして追加する。
  6. サイト コレクションを構成する。
  7. ロギングを有効にする。
  8. Google Cloud Search で SharePoint の ID マッピングを構成する。
  9. Active Directory 参照を構成する。
  10. HTML 生成と構造化データのサポートを構成する。

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/v1-0.0.3
  3. コネクタをビルドします。

    $ mvn package

    コネクタをビルドするときにテストをスキップするには、mvn package の代わりに mvn package -DskipTests を実行します。

  4. コネクタ zip ファイルをローカルのインストール ディレクトリにコピーします。

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

2. SharePoint On-Prem コネクタの構成を指定する

コネクタが SharePoint On-Prem に正しくアクセスし、関連コンテンツをインデックスに登録できるようにするには、まずコネクタの構成ファイルを作成する必要があります。コネクタの管理者は、コネクタの構成ファイル内でパラメータを定義して、SharePoint On-Prem コネクタの動作と属性を制御します。構成可能なパラメータによって、次のことが制御されます。

  • データソースへのアクセス
  • SharePoint On-Prem サーバーへのアクセス
  • SharePoint On-Prem サーバーをサイト コレクションとしてインデックスに登録する

構成ファイルを作成するには:

  • 任意のテキスト エディタを開き、構成ファイルに名前を付けます。
  • ファイルに Key-Value ペアを key=value の形式で追加します(次のセクションの説明を参照)。
  • 構成ファイルに名前を付けて保存します。Google は構成ファイルの名前を connector-config.properties とするよう推奨しています。これで、追加のコマンドライン パラメータを指定しなくてもコネクタが実行されます。

3. Google Cloud Search データソースへのアクセスを構成する

すべての構成ファイルでは、Cloud Search データソースにアクセスするために必要なパラメータを最初に指定する必要があります。次の表をご覧ください。Cloud Search へのコネクタのアクセスを構成するには、通常、データソースの ID、ID ソースの ID、サービス アカウントの秘密鍵ファイルへのパスが必要です。データソースを設定するために必要な手順については、検索対象のデータソースを追加するをご覧ください。

設定 パラメータ
データソース ID api.sourceId=1234567890abcdef

必須。G Suite 管理者がセットアップした、Google Cloud Search ソースの ID。「サードパーティのデータソースを管理する」をご覧ください。

サービス アカウントの秘密鍵ファイルへのパス api.serviceAccountPrivateKeyFile=./PrivateKey.json

必須。Google Cloud Search SharePoint On-Prem コネクタへのアクセスに必要な Google Cloud Search サービス アカウント キー ファイル。

ID ソースの ID api.identitySourceId=x0987654321

必須。G Suite 管理者がセットアップした、Cloud Search ID ソースの ID。

4. SharePoint On-Prem へのアクセスを構成する

コネクタが SharePoint On-Prem にアクセスし、インデックスに登録するデータを抽出できるようにするには、SharePoint サーバーへのアクセスを構成する必要があります。次のパラメータを使用して、アクセス情報を構成ファイルに追加します。

設定 パラメータ
SharePoint サーバーの完全修飾ドメイン名 sharepoint.server=http://yoursharepoint.example.com/

必須。ドメイン名が完全修飾されていない場合は、コネクタホストで DNS オーバーライドを設定する必要があります。

SharePoint ユーザー名 sharepoint.username=YOURDOMAIN\\ConnectorUser

Linux マシン、または SharePoint Server AD ドメインに含まれていない Windows マシンでコネクタを実行する場合に必要です。

SharePoint パスワード sharepoint.password=user_password

Linux マシン、または SharePoint Server AD ドメインに含まれていない 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

5. SharePoint を信頼できるホストとして追加する

SharePoint が HTTPS を使用するように構成されている場合は、次の手順を実行して、SharePoint 証明書を取得してコネクタの信頼できるホストとして追加します。

  • ブラウザで SharePoint に移動します。警告ページが表示され、「この接続は信頼できません」といったメッセージが表示されます。このメッセージが表示されるのは、証明書が自己署名されており、信頼できる認証局の署名がないためです。[I Understand the Risks]、[Add Exception] の順にクリックします。
  • [View] ボタンがクリック可能になるのを待ってクリックします。
  • [Details] タブに移動し、[Export] をクリックします。
  • 証明書を sharepoint.crt という名前でコネクタのディレクトリに保存します。
  • [Close]、[Cancel] の順にクリックして、ウィンドウを閉じます。
  • コネクタが SharePoint を信頼できるようにするには、コマンド プロンプトを開き、次のコマンドを入力します。

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

    [Trust this certificate?] というプロンプトが表示されたら、[yes] と回答します。

6. サイト コレクションを構成する

必要に応じて、SharePoint サーバーをサイト コレクションとしてインデックスに登録するようにコネクタを構成できます。

設定 パラメータ
Sharepoint サーバーが仮想サーバーではなくサイト コレクションであるかどうか sharepoint.siteCollectionOnly=true

デフォルトでは、自動的に検出されます。true の場合、コネクタは sharepoint.server をサイト コレクションとしてインデックスに登録します。

7. ロギングを有効にする

コネクタ バイナリを含むディレクトリに、logs という名前のフォルダを作成します。logging.properties という名前の ASCII または UTF-8 ファイルを同じディレクトリに作成し、次の内容を追加します。

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
    

Google Cloud Search では、検索結果に ACL トリミングを適用できます。こうした ACL は、Google プリンシパルと外部プリンシパルを使用して定義できます。

一般的な SharePoint On-Prem の設定には、次の 3 つのプリンシパルが含まれます。

  • Active Directory ユーザー
  • Active Directory グループ
  • SharePoint ローカル グループ(メンバーは Active Directory ユーザーとグループ)

SharePoint コンテンツに適切なセキュリティ トリミングを適用するには、次の外部 ID を Google と同期する必要もあります。

  • Active Directory ユーザーとグループを同期するには、Google Cloud Directory Sync ツール(ID とグループのマッピングのサポートを追加)を使用します。
  • SharePoint ローカル グループを同期するには、SharePoint ID コネクタを使用します。

このような設定をサポートするには、2 つの ID ソースを作成する必要があります。

  • Active Directory ユーザーとグループを同期するための ID ソース。
  • SharePoint ローカル グループの ID ソース。
設定 パラメータ
ID ソースの ID api.identitySourceId=1234567890abcdef

SharePoint ローカル グループを同期するための ID ソースの ID。必須。G Suite 管理者がセットアップした、Google Cloud Search ソースの ID。検索対象のデータソースを追加するをご覧ください。

参照 ID ソース api.referenceIdentitySources=CONTOSO,contoso

Active Directory プリンシパルの参照 ID ソースのリスト。値は、参照される Active Directory プリンシパルの Active Directory NETBIOS 名と一致する必要があります。

参照 ID ソースの ID api.referenceIdentitySource.CONTOSO.id=112233abcd

必須。ドメイン CONTOSO の Active Directory プリンシパルを同期するための ID ソースの ID。

9. Active Directory 参照を構成する

他のコネクタでは Active Directory のユーザーとグループを同期するのに Google Cloud Directory Sync を利用しますが、SharePoint コネクタでは同期するプリンシパルに関する追加情報を取得するために AD を参照する必要があります。次のようなユースケースがあります。

  • ドメイン グループの SID を対応する sAMAccountName にマッピングする。
  • ユーザー sAMAccountName を SharePoint ローカル グループ メンバーシップのメールアドレスにマッピングする。
設定 パラメータ
Active Directory ホスト adLookup.host=dc.contoso.com

必須。Active Directory のホスト名または IP アドレス。

Active Directory 参照ポート adLookup.port=389

省略可。デフォルトは 389 です。ssl には 686 を使用します。

Active Directory 参照方法 adLookup.method=standard

省略可。デフォルトは standard です。安全な接続には「ssl」を使用します。

Active Directory 参照ユーザー adLookup.username=CONTOSO\user1

必須。Active Directory 参照を実行することを承認されたユーザー。

Active Directory 参照パスワード adLookup.passowrd=password123

必須。adLookup.user で指定されたユーザーのパスワード。

10. SharePoint リストアイテムの構造化データのサポートと HTML コンテンツの生成を構成する

SharePoint リストアイテムの追加メタデータをインデックスに登録するには、HTML コンテンツの生成や構造化データをサポートするようにコネクタを構成します。

HTML コンテンツの生成

HTML コンテンツの生成を構成するには、次の表のパラメータを使用します。オプションの HTML コンテンツ生成パラメータについては、「HTML コンテンツの生成」をご覧ください。

設定 パラメータ
HTML テンプレート タイトル項目 contentTemplate.sharePointItem.title=Title

生成された 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 です。生成される HTML コンテンツに、マッピングされていない(高、中、低の構成に含まれていない)項目を含めるには、APPEND に設定します。IGNORE に設定すると、マッピングされた列のみを使用して HTML が生成されます。

構造化データのサポート

データソースのスキーマが次のガイドラインを使用して定義されている場合、コネクタは SharePoint リストアイテムの構造化データを入力します。

  • コネクタは、Cloud Search API で定義された仕様に従って SharePoint コンテンツ タイプ名を正規化することによって、SharePoint コンテンツ タイプ名を対応するオブジェクト定義にマッピングします。Cloud Search API では、オブジェクト定義の有効な文字として、A~Z、a~z、0~9 のみがサポートされています。コネクタは、サポートされていない文字を除外することでコンテンツ タイプ名を正規化します。たとえば、コンテンツ タイプ「Announcements」はオブジェクト定義「Announcements」にマッピングされますが、コンテンツ タイプ「News Article」は「NewsArticle」にマッピングされます。

  • コネクタは、itemMetadata.objectType 構成による代替オブジェクト タイプの構成もサポートします。スキーマで SharePoint コンテンツ タイプに対応するオブジェクト定義が使用できない場合、コネクタは代替オブジェクト タイプを使用します。

  • コネクタは、SharePoint 列の表示名を正規化することによって、SharePoint プロパティ名をプロパティ定義にマッピングします。

例: 構成ファイル

次の構成ファイルの例は、コネクタの動作の例を定義するパラメータの Key-Value ペアを示しています。

api.sourceId=08ef8becd116faa4546b8ca2c84b2879
    api.serviceAccountPrivateKeyFile=service_account.json
    api.identitySourceId=08ef8becd116faa475de26d9b291fed9

    # Optional
    contentTemplate.sharepointItem.title=Title
    contentTemplate.sharepointItem.unmappedColumnsMode=APPEND

    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

    adLookup.host=dc.contoso.com
    adLookup.port=389
    adLookup.username=contoso\\admin
    adLookup.password=pa$sw0rd

    api.referenceIdentitySources=CONTOSO,contoso
    api.referenceIdentitySource.contoso.id=08ef8becd116faa5d3783f8c5a80e5aa
    api.referenceIdentitySource.CONTOSO.id=08ef8becd116faa5d3783f8c5a80e5aa
    

SharePoint On-Prem ID コネクタを実行する

ユーザーがアクセスできる SharePoint コンテンツの結果を Cloud Search で取得できるようにするには、まずオンプレミス Active Directory と SharePoint サイト コレクションの両方のプリンシパルを Google Cloud Identity サービスの ID にマッピングする必要があります。この同期は、Google Cloud Directory Sync(GCDS)アプリケーションと SharePoint On-Prem ID コネクタを介して行われます。GCDS を使用する手順については、Google Directory Sync についてをご覧ください。ID とグループのマッピングを有効にする方法については、グループを Cloud Search の ID ソースに同期するをご覧ください。

GCDS が Active Directory 内のユーザーとグループを同期した後、以下で説明するように SharePoint On-Prem ID コネクタを実行して、SharePoint サイト コレクション グループを同期します。

ID コネクタは、コンテンツのインデックス登録に使用されるものと同様の構成ファイルを使用します。次に、ID コネクタ構成ファイルの例を示します。

api.customerId=C05d3djk8
    api.serviceAccountPrivateKeyFile=service_account.json
    api.identitySourceId=08ef8becd116faa475de26d9b291fed9

    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

    adLookup.host=dc.contoso.com
    adLookup.port=389
    adLookup.username=contoso\\admin
    adLookup.password=pa$sw0rd

    api.referenceIdentitySources=CONTOSO,contoso
    api.referenceIdentitySource.contoso.id=08ef8becd116faa5d3783f8c5a80e5aa
    api.referenceIdentitySource.CONTOSO.id=08ef8becd116faa5d3783f8c5a80e5aa
    

このファイルには api.customerId プロパティが含まれていることに注意してください。このプロパティには、G Suite のアカウント ID が含まれています。customerID の生成については、Cloud Search でユーザー ID をマッピングするをご覧ください。

コンテンツをインデックスに登録するのに使用される JAR ファイルには、ID コネクタも含まれています。これを実行するには、構成ファイルを含むディレクトリで次のコマンドを発行します。version の代わりに、現在のバージョン番号を使用します。これは GitHub リリースのページにあります。

java -Djava.util.logging.config.file=logging.properties -cp "google-cloudsearch-sharepoint-connector-version.jar" com.google.enterprise.cloudsearch.sharepoint.SharePointIdentityConnector

SharePoint On-Prem コネクタを実行する

ホストマシン上で cmd.exe を使用してコネクタを実行します。

$ java -Djava.util.logging.config.file=logging.properties -jar google-cloudsearch-sharepoint-connector-v1-0.0.3.jar

HTTPS で保護された SharePoint サイトに対してコネクタを実行するには、上記のように 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-0.0.3.jar

詳細トピック

このセクションの情報は、基本的な SharePoint コネクタ構成の範囲を超えています。

マルチテナント構成

SharePoint のマルチテナント デプロイでは、通常、複数の顧客サイトを同じウェブ アプリケーションでホストします。顧客にはそれぞれ各自のサイト コレクションに対する権限のみが付与されます。このようなシナリオでは、SharePoint On-Prem コネクタに必要な完全な読み取り権限を SharePoint ウェブ アプリケーションで取得することはできません。

このようなマルチテナント構成は、サイト コレクション専用モードでサポートされます。マルチテナント構成をサポートするには、connector-config.properties ファイルで sharepoint.siteCollectionOnly 構成オプションを使用してサイト コレクション モードを有効にする必要があります。

サイト コレクション専用モードでルートレベルのサイト コレクションをインデックスに登録するには、sharepoint.siteCollectionOnly を明示的に true に設定する必要があります。

コネクタは、サイト コレクションとその子アイテムをインデックスに登録します。そのため、SharePoint のコネクタ ユーザー アカウントには、サイト コレクションの管理者権限が必要です。

マルチテナント環境でインデックスに登録するサイト コレクションが複数ある場合は、各サイト コレクションに対して 1 つのコネクタ インスタンスを構成する必要があります。

サイト コレクション専用モードで SharePoint On-Prem コネクタを構成するには:

  • sharepoint.server をサイト コレクション URL として指定します(http://sharepoint.example.com/sites/sitecollection など)。

  • サイト コレクション URL がルートサイト コレクションの場合(http://sharepoint.example.com など)、sharepoint.siteCollectionOnly=true を明示的に設定します。

サイト コレクション専用モードの非正規 URL

SharePoint On-Prem コネクタでは、サイト コレクション専用モードで非正規 URL を使用できます。つまり、connector-config.properties ファイルの sharepoint.server 構成オプションで指定されたコネクタ URL は、大文字と小文字が SharePoint と完全に同じである必要はありません。

Microsoft Outlook .msg ファイルの Content-Type をオーバーライドする

コネクタは、コンテンツのクロール時に Outlook の .msg ファイルを検出すると、ファイルの Content-Type をオーバーライドし、application/vnd.ms-outlook としてインデックスに登録します。