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

Google Cloud Search を設定して、Google Workspace コンテンツに加えて、組織の SharePoint オンプレミス コンテンツの結果も返すことができます。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 Directory Sync を使用して、ID マッピング グループを有効にします。SharePoint ローカル グループを同期するには、SharePoint ID コネクタを使用します。

また、プリンシパルを同期するために、AD を使用して参照を実行し、追加情報を取得する必要があります。たとえば、AD でのルックアップにより、コネクタは次の処理を実行できます。

  • ドメイン グループの SID を対応する sAMAccountName にマッピングします。
  • ユーザー sAMAccountName を SharePoint ローカル グループ メンバーシップのメールアドレスにマッピングします。

検索の最適化

コネクタを構成して、より関連性の高い検索結果を返すようにすることで、ユーザー エクスペリエンスを向上させることができます。

API を使用するには、SharePoint Online コネクタの構成ファイルで HTML 生成パラメータの値を設定します。これらのパラメータを使用すると、どのフィールドが一致に大きな影響を与えるか、小さな影響を与えるかを設定できます。

スキーマを設定するには、スキーマを作成して登録するの手順に沿って操作します。スキーマを設定する際は、次の点に注意してください。

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

  • コネクタがオブジェクト定義をオブジェクト定義と照合できない場合、コネクタは代替オブジェクト タイプ(itemMetadata.objectType)を使用します。メタデータ構成パラメータの詳細をご覧ください。

  • SharePoint プロパティ名をプロパティ定義にマッピングするために、コネクタは 16 進数でエンコードされた文字をデコードして「ows_」接頭辞を削除し、サポートされていない文字(A ~ Z、a ~ z、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 に設定します。

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

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

  • コネクタがデータベース内のアイテムの変更を検出するのにかかる時間は、コネクタがモニタリングするデータベースの数が増えるにつれて長くなります。
  • 各サイト コレクションの ACL で使用する一意のユーザーとグループの数が増えると、メモリ消費量が増加します。
  • コネクタは、1 つの Active Directory ドメインの ID でのみ構成できます。
  • EveryoneBUILTIN\UsersAll Authenticated Users などの一般的な Active Directory と Windows のプリンシパルはサポートされていません。
  • 通知の削除は瞬時には行われず、ユーザーがソース リポジトリからコンテンツを削除したことをコネクタが認識するまでに 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 管理者は 2 つの ID ソースを作成し、その 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_versionv1-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. コネクタのインストールと同じディレクトリにファイルを作成します。Google は、コネクタの実行に追加のコマンドライン パラメータを指定しなくてもよいように、ファイル名を connector-config.properties にすることを推奨しています。多くのコネクタ インスタンスを実行する予定がある場合は、名前を区別できるように詳細を追加します。

  2. 次の例のように、パラメータを Key-Value ペアとしてファイルの内容に追加します。

    ### 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. 表示された警告ページで、[I Understand the Risks]、[Add Exception] の順にクリックします。証明書が自己署名されており、信頼できる認証局によって署名されていないため、ページに「この接続は信頼できません」などのメッセージが表示されます。

  3. [View] ボタンが使用可能になったら、クリックします。

  4. [詳細] タブに移動し、[エクスポート] をクリックします。

  5. 証明書を sharepoint.crt という名前でコネクタ ディレクトリに保存します。

  6. [Close]、[Cancel] の順にクリックして、ウィンドウを閉じます。

  7. コマンド プロンプトを開き、次のコマンドを入力します。

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

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

ステップ 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. 次の例のように、パラメータを Key-Value ペアとしてファイルの内容に追加します。

    ### 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
    

    値は SharePoint On-Prem コネクタの場合とほぼ同じですが、api.sourceId の代わりに api.customerId パラメータが使用されます。api.customerId の値は、Google Workspace 管理者から取得したお客様 ID です。

ステップ 6. SharePoint On-Prem コネクタを起動する

次の手順では、オンプレミス Active Directory と SharePoint サイト コレクションの両方のプリンシパルを Cloud Identity サービスの ID にマッピングします。この同期は、Google Cloud Directory Sync(GCDS)と SharePoint On-Prem ID コネクタを使用して行われます。

GCDS がユーザーとグループを同期した後、SharePoint サイト コレクション グループを同期するには、SharePoint On-Prem ID コネクタを実行します。最後に、SharePoint 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

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

サイト コレクションのインデックス登録

設定 パラメータ
インデックス タイプ sharepoint.siteCollectionOnly=boolean

マルチテナント SharePoint デプロイ(詳細)を除き、省略可能です。true に設定すると、コネクタは sharepoint.server を仮想サーバーではなくサイト コレクションとしてインデックスに登録します。デフォルトは 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

必須。Active Directory のホスト名(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 コンテンツを生成します。