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

Google Workspace のコンテンツに加えて、組織の SharePoint オンプレミス コンテンツの結果も返すように Google Cloud Search を設定できます。Google Cloud Search SharePoint On-Prem コネクタを使用し、特定の SharePoint データソースにアクセスするように構成します。

重要な考慮事項

SharePoint の設定の優先

Cloud Search SharePoint On-Prem コネクタは、SharePoint の [SearchVisibility] 設定を常に適用します。この設定はオーバーライドできません。ドキュメントの下書きの場合、コネクタが SharePoint Online へのアクセスに使用するユーザー アカウントの権限によって、インデックスに登録して返される下書きドキュメントを制御できます。アカウントに「完全な読み取り」権限のみがある場合、コネクタは SharePoint の「下書きアイテムの公開設定」設定に従います。

また、ユーザー アカウントのアクセス権に基づいて結果を制限するようにコネクタを構成することもできます。Google プリンシパルと外部プリンシパルを使用すると、ACL を定義できます。 SharePoint コンテンツのセキュリティ トリミングを適用するには、次の外部 ID を Google Directory と同期します。

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

AD のユーザーとグループを同期するには、Google Cloud Directory Sync を使用して ID マッピング グループを有効にします。SharePoint ローカル グループを同期するには、SharePoint Identity コネクタを使用します。

コネクタは、プリンシパルを同期するために追加情報を取得するには、AD によるルックアップも行う必要があります。たとえば、AD によるルックアップによって、コネクタは次のことを行えます。

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

検索の最適化

関連性の高い検索結果を返すようにコネクタを設定することで、ユーザー エクスペリエンスを改善できます。

API を使用するには、SharePoint Online コネクタ構成ファイルで HTML 生成パラメータの値を設定します。これらのパラメータを使用して、一致への影響が大きいまたは低いフィールドを設定できます。

スキーマを設定するには、スキーマを作成して登録する手順を実施します。スキーマを設定する場合:

  • SharePoint コンテンツ タイプの名前を対応するオブジェクト定義にマッピングするために、コネクタはサポートされていない文字を除外してコンテンツ タイプの名前を正規化します。オブジェクト定義では、有効な文字として AZ、az、0-9 のみがサポートされます。たとえば、コンテンツ タイプ「お知らせ」は、オブジェクト定義「お知らせ」にマッピングされます。コンテンツ タイプの「ニュース記事」は「NewsArticle」(スペースなし)にマッピングされます。

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

  • SharePoint プロパティ名をプロパティ定義にマッピングするため、コネクタはプロパティ名を正規化するために、16 進数でエンコードされた文字をデコードし、「ows_」プレフィックスを削除し、サポートされていない文字(AZ、az、0 ~ 9 を除くすべての文字を有効な文字)を除外します。

Microsoft Outlook でのメール処理

コネクタでコンテンツをインデックスに登録する際に Microsoft Outlook の .msg ファイルが出現すると、そのファイルのメディアの種類をオーバーライドし、それらを application/vnd.ms-outlook. としてインデックス登録します。

マルチテナント構成

SharePoint がマルチテナント デプロイで、複数の顧客サイトが同じウェブ アプリケーションでホストされている場合は、構成ファイルでサイト コレクション モードを構成する必要があります。マルチテナントのデプロイでは、サイト コレクションの権限のみが付与され、SharePoint On-Prem コネクタで必要な Full Read 権限を取得することはできません。

サイト コレクション モードを有効にするには:

  • コネクタのユーザー アカウントに、サイト コレクション管理者の権限を付与します。
  • コネクタ構成ファイルの 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 時間以上かかることがあります。

システム要件

システム要件
OS
  • Windows Server 2016
  • Ubuntu
  • Red Hat Enterprise Linux 5.0
  • SUSE Enterprise Linux 10(64 ビット)
ソフトウェア
  • SharePoint Server
    • 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 REST 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 Web Application に対する完全な読み取り権限を持つコネクタのユーザー アカウントを設定します。

  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. 次の例のように、パラメータは 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. 表示される警告ページで、[リスクを理解しています] と [例外を追加] をクリックします。証明書は自己署名されており、信頼できる認証局によって署名されていないため、「This Connection is Untrusted」などのメッセージが表示されます。

  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. 次の例のように、パラメータは 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 サイト コレクションの両方のプリンシパルを Google Cloud Identity サービスの ID にマッピングします。この同期は、Google Cloud Directory Sync(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/

必須。http://yoursharepoint.example.com/ などの完全修飾ホスト名としての SharePoint サーバーの URL。ホスト名が完全修飾名でない場合は、コネクタのホストで 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 のマルチテナント デプロイを除きます(詳細)。コネクタ インデックス 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

必須。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 コンテンツを生成します。