SharePointサイトの接続
SharePoint Onlineの対象サイトを接続および検索できるようにします。
以下に表記される「SharePoint」は全て「SharePoint Online」のことを示します。
ドキュメントルートフォルダの割り当て
SharePoint接続用フォルダとして、ファイルサーバーの実フォルダをドキュメントルートフォルダに1つ割り当てます。
SharePoint接続用フォルダは、FileBlogサーバーのローカルフォルダを割り当てることを推奨します。
FileBlogサーバーとは別のファイルサーバーに割り当てることもできますが、ローカルフォルダの方が性能面で有利です。
空のフォルダを割り当てます。
下図はSharePoint接続用のドキュメントルートフォルダの登録例です。

SharePoint接続用フォルダのデータ
上記設定で登録したフォルダに.SharePoint
というフォルダが作成され、SharePoint Onlineサイトにあるディレクトリ構造と同じフォルダ階層が作成されます。
各階層にはSharePointにあるファイルと同一のファイル名を持つショートカットファイルが作成されます。
各ショートカットファイルのサイズは1KBもないためディスク空き容量を圧迫することはありません。
アクセス権限
ユーザーはFileBlogでの接続においてもSharePointサイトのアクセス権限に応じてファイルアクセスできます。
SharePoint接続用フォルダには次のNTFSアクセス権を設定します。
ユーザー |
アクセス権限 |
---|---|
Fb5Indexerサービスの実行ユーザー |
「読み取り・書き込み」ができること(「変更」権限以上) |
Fb5Webサービスの実行ユーザー |
SYSTEMアカウント(=FileBlogサーバーのコンピューターアカウント)で「読み取り」できること |
サーバー運用上、バックアップとリストアのためにAdministratorsグループとSYSTEMアカウントにフルコントロール権限があっても問題ありません。
各ユーザーのNTFSアクセス権は不要です。
Everyone, Users, Domain Users, Authenticated Users
などのユーザー権限は削除した方が安全です。
リポジトリの登録
SharePoint OnlineとSharePoint接続用フォルダの関連付ける設定です。
[管理ツール > 設定全般 > repository]を検索します。
[Miscellaneous/ExternalRepositoryConnector]を選択します。
[追加]を選択して[出力先と種別]にある次の2つを指定します。
DocumentRootAlias: SharePoint接続用フォルダのエイリアス値を指定します。
ConnectorType: [SharePoint]を指定します。
[接続設定]タブの次の3項目には、Azure Portalに作成した認証アカウントの情報を登録します。
clientId: アプリケーション (クライアント) IDの値を入力します。
clientSecret: クライアントシークレットの値を入力します。(メモしておいた値)
tenantId: ディレクトリ (テナント) IDの値を入力します。
[接続設定]タブの次の3項目には、自己署名証明書の情報とSharePoint OnlineのURLを登録します。
Certificate: Azure Portalの設定時に作成した自己署名証明書ファイルを登録します。
Key : PEM形式(.pfxではない)の証明書ファイルの登録には秘密鍵ファイルの登録も必要です。
Password: 自己署名証明書の作成時に登録したパスワードを指定します。
SharepointUrl:
https://demo.sharepoint.com
のようなSharePoint OnlineのURLを指定します。
[クロール設定]タブで接続対象のSharePointサイトアドレスを登録します。
標準既定ではSharePoint Onlineの全てのルートサイトが接続対象です。
サイトアドレスとは、SharePoint URLのhttps://demo.sharepoint.com/Sites/SiteAddress/...におけるSiteAddress部分です。
[SiteNames]と[IncludeSiteNamePatterns・ExcludeSiteNamePatterns]の併用はできません。
RootSiteNames: クロール対象にするサイトアドレスを指定します。無指定の場合は全てのサイトアドレスが対象になります。
TeamsSiteInclusionMode: Teamsで作成したサイトをクロール対象に含める/含めいないを指定できます。
Includes: 指定した特定パスに一致するリソースをクロール対象に含めます。パスは複数指定でき、いずれかのパスに一致し、かつExcludesのいずれのパスにも一致しないリソースがクロールされます。
/ルートサイト名/Lists/リスト名/ドキュメントライブラリ名/フォルダ
globパターンでもパスの指定ができます。特定のサイトやリストを対象にする記述例です。
特定サイト /サイト名/**/* 特定リスト /**/Lists/リスト名/**/*
Excludes: 指定した特定パスに一致するリソースをクロール対象から除外します。パスは複数指定でき、いずれかのパスに一致するリソースが対象から除外されます。不要なパス(リスト、フォルダ、ドキュメントライブラリなど)を対象から除外できます。パスの指定方法はIncludesと同様です。
CheckPermissionLevel: 適用するアクセス権限の範囲を指定します。[ALLItems]を選択するとクロール時間が伸長します。
ListItemsFetchTopCount: 1リクエストあたり取得するリストのアイテム一覧の最大取得件数を指定します。
ListItemCommentCrawl: リストアイテムに付加されているコメント情報をクロール対象に含めることができます。有効にするとコメント情報が検索対象になります。なおアイテム量やコメント量によりクロールの処理時間が長くなります。
ListItemOutputWithFieldName: リストアイテムの各フィールドの値を抽出する際に、フィールド名を含めることができます。有効にするとフィールド名=値の形式で抽出されます。
有効 Title=Sample Item(フィールド名も抽出) 無効 Sample Item(値のみ抽出)
IncludeListItemFieldNamePatterns: 全文検索の対象にするリストアイテムのフィールド名をパターン(正規表現形式)で指定できます。複数指定ができ、いずれかの正規表現式に適合(大文字/小文字区別なし)するフィールドのテキスト情報を抽出対象とします。無指定は全てのフィールドが対象です。
ExcludeListItemFieldNamePatterns: 全文検索の対象から除外するリストアイテムのフィールド名をパターン(正規表現形式)で指定できます。複数指定ができ、いずれかの正規表現式に適合(大文字/小文字区別なし)するフィールドのテキスト情報は抽出されません。
設定を保存してサービスを再起動します。
アクセス権連携の登録
SharePoint Onlineのアクセス権をFileBlogのログインアカウントに連携させるための設定です。
[管理ツール > 設定全般 > authority]で検索します。
[Miscellaneous/ExternalAuthorityConnector]を選択します。
[追加]を選択して[接続タイプ]にある次の2つを指定します。
ConnectorType: [SharePoint]を選択します。
Enabled: チェックを入れて有効化します。
[接続設定]タブには、前節の「コネクタにリポジトリを登録する」で指定した値と同一にします。
[マッピング]タブでは、FileBlogにログイン認証するユーザーアカウントと、SharePoint Onlineで認証されるユーザーアカウントを関連付けます。
FileBlogに
user@fbsite.com
でログインしているとき、SharePointでもuser@fbsite.com
で認証している場合は設定不要です。FileBlogに
user@FBSITE
でログインしているとき、SharePointではuser@fbsite.com
で認証している場合は設定が必要です。
[追加]を選択してドメイン名の関連付けを指定します。
key(キー): FileBlogで使用しているドメイン名を指定します。上記例だと
FBSITE
です。value(accountDomain): 関連付けるドメイン名を指定します。上記例だと
fbsite.com
です。
設定を保存します。
プロキシ情報を登録する
クライアントからプロキシを通じてSharePointに接続する場合に設定が必要です。
使用不可の操作を禁止にする
SharePoint接続ではアップロード等の書き込み処理を伴う操作の実行はできません。実行しても拒否または失敗になります。
使用できない操作を禁止(非表示)にしておくことをおすすめします。
[管理ツール > 設定全般 > すべての検索 > セキュリティ > PermissionDenyList]を選択します。
[追加]を選択して新規定義を作成します。
禁止する操作は[FileWrite 書き込み]にチェックを入れます。
適用条件ではSharePoint接続のドキュメントルートフォルダを指定します。(例図では
/SPRoot
がSharePoint接続用のドキュメントルートフォルダです)
[保存する]を選択します。
インデックス再構築の定期実行
SharePointから変更通知を得られないため、ファイル更新があっても受動的なファイルの存在確認や検索インデックスの更新を行うことができません。
そのため定期的なインデックス再構築(クロール処理)のタスク実行が必要です。インデックス再構築によりSharePoint内で発生した変更を認識して、ファイル確認や検索インデックスの更新が行われます。
インデックス再構築の定期タスクはタスクスケジュールで登録します。
SharePointでのファイル更新の頻度が高い場合には、定期タスクの頻度も上げることをおすすめします。