Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Руководство [8.17] ›Ввод контента с помощью коннекторов Elastic ›Справочник по коннекторам

Справочник по коннектору Elastic для SharePoint Server

Коннектор Elastic для SharePoint Server — это коннектор для Microsoft SharePoint Server.

Этот коннектор написан на Python с использованием открытого кода фреймворка коннекторов Elastic. Посмотреть исходный код этого коннектора можно здесь.

Ищете коннектор SharePoint Online? Смотрите справочник SharePoint Online.

Справочник по управляемому коннектору Elastic

Просмотреть справочник по управляемому коннектору Elastic
Доступность и предварительные требования

Этот коннектор доступен как управляемая служба с Elastic 8.15.0. Для использования этого коннектора необходимо выполнить все требования к управляемым коннекторам.

Этот коннектор находится в стадии бета-тестирования и может быть изменен. Бета-функции могут быть изменены и не покрываются SLA поддержки общедоступных (GA) функций. Elastic планирует перевести эту функцию в GA в будущей версии.

Создать коннектор SharePoint Server

Использование пользовательского интерфейса

Чтобы создать новый коннектор SharePoint Server:

  1. В пользовательском интерфейсе Kibana перейдите на страницу Поиск → Контент → Коннекторы из главного меню или используйте поле глобального поиска.
  2. Следуйте инструкциям, чтобы создать новый нативный коннектор SharePoint Server.

Дополнительные операции см. в Пользовательском интерфейсе коннекторов в Kibana.

Использование API

Вы можете использовать Elasticsearch API создания коннекторов, чтобы создать новый нативный коннектор SharePoint Server.

Например:

resp = client.connector.put(
    connector_id="my-{service-name-stub}-connector",
    index_name="my-elasticsearch-index",
    name="Content synced from {service-name}",
    service_type="{service-name-stub}",
    is_native=True,
)
print(resp)
const response = await client.connector.put({
  connector_id: "my-{service-name-stub}-connector",
  index_name: "my-elasticsearch-index",
  name: "Content synced from {service-name}",
  service_type: "{service-name-stub}",
  is_native: true,
});
console.log(response);
PUT _connector/my-sharepoint_server-connector
{
  "index_name": "my-elasticsearch-index",
  "name": "Content synced from SharePoint Server",
  "service_type": "sharepoint_server",
  "is_native": true
}
Вам также потребуется создать ключ API для использования коннектором.

Пользователю необходимы привилегии кластера manage_api_key, manage_connector и write_connector_secrets для программно генерируемых ключей API.

Чтобы создать ключ API для коннектора:

  1. Выполните следующую команду, заменив значения там, где указано. Обратите внимание на возвращаемые значения id и encoded из ответа:

    resp = client.security.create_api_key(
        name="my-connector-api-key",
        role_descriptors={
            "my-connector-connector-role": {
                "cluster": [
                    "monitor",
                    "manage_connector"
                ],
                "indices": [
                    {
                        "names": [
                            "my-index_name",
                            ".search-acl-filter-my-index_name",
                            ".elastic-connectors*"
                        ],
                        "privileges": [
                            "all"
                        ],
                        "allow_restricted_indices": False
                    }
                ]
            }
        },
    )
    print(resp)
    const response = await client.security.createApiKey({
      name: "my-connector-api-key",
      role_descriptors: {
        "my-connector-connector-role": {
          cluster: ["monitor", "manage_connector"],
          indices: [
            {
              names: [
                "my-index_name",
                ".search-acl-filter-my-index_name",
                ".elastic-connectors*",
              ],
              privileges: ["all"],
              allow_restricted_indices: false,
            },
          ],
        },
      },
    });
    console.log(response);
    POST /_security/api_key
    {
      "name": "my-connector-api-key",
      "role_descriptors": {
        "my-connector-connector-role": {
          "cluster": [
            "monitor",
            "manage_connector"
          ],
          "indices": [
            {
              "names": [
                "my-index_name",
                ".search-acl-filter-my-index_name",
                ".elastic-connectors*"
              ],
              "privileges": [
                "all"
              ],
              "allow_restricted_indices": false
            }
          ]
        }
      }
    }
  2. Используйте значение encoded для хранения секрета коннектора и обратите внимание на возвращаемое значение id из этого ответа:

    resp = client.perform_request(
        "POST",
        "/_connector/_secret",
        headers={"Content-Type": "application/json"},
        body={
            "value": "encoded_api_key"
        },
    )
    print(resp)
    const response = await client.transport.request({
      method: "POST",
      path: "/_connector/_secret",
      body: {
        value: "encoded_api_key",
      },
    });
    console.log(response);
    POST _connector/_secret
    {
      "value": "encoded_api_key"
    }
  3. Используйте ключ API id и секрет коннектора id для обновления коннектора:

    resp = client.connector.update_api_key_id(
        connector_id="my_connector_id>",
        api_key_id="API key_id",
        api_key_secret_id="secret_id",
    )
    print(resp)
    const response = await client.connector.updateApiKeyId({
      connector_id: "my_connector_id>",
      api_key_id: "API key_id",
      api_key_secret_id: "secret_id",
    });
    console.log(response);
    PUT /_connector/my_connector_id>/_api_key_id
    {
      "api_key_id": "API key_id",
      "api_key_secret_id": "secret_id"
    }

Подробную информацию обо всех доступных API коннекторов см. в документации API Elasticsearch.

Использование

См. Управляемые коннекторы Elastic.

Дополнительные операции см. в Пользовательском интерфейсе коннекторов в Kibana.

Совместимость

Совместимые версии SharePoint Server:

  • SharePoint 2013
  • SharePoint 2016
  • SharePoint 2019
Настройка

Для настройки коннектора необходимы следующие поля конфигурации:

authentication
Режим аутентификации, либо Basic, либо NTLM.
username
Имя пользователя учетной записи для экземпляра SharePoint Server.
password
Пароль учетной записи.
host_url

URL хоста сервера, где размещен экземпляр SharePoint Server. Примеры:

  • https://192.158.1.38:8080
  • https://<tenant_name>.sharepoint.com
site_collections

Список сайтов коллекций, разделенных запятыми, для извлечения из SharePoint Server. Примеры:

  • collection1
  • collection1, collection2
ssl_enabled
Включить проверку SSL. Значение по умолчанию False.
ssl_ca

Содержимое сертификата SSL, необходимого для SharePoint Server. Оставьте это поле пустым, если ssl_enabled установлено в False.

Пример сертификата:

-----BEGIN CERTIFICATE-----
MIID+jCCAuKgAwIBAgIGAJJMzlxLMA0GCSqGSIb3DQEBCwUAMHoxCzAJBgNVBAYT
...
7RhLQyWn2u00L7/9Omw=
-----END CERTIFICATE-----
retry_count
Количество попыток повторной обработки после неудачного запроса к экземпляру SharePoint Server. Значение по умолчанию 3.
use_document_level_security

Переключатель для включения безопасности на уровне документа (DLS). При включении полные синхронизации будут извлекать списки управления доступом для каждого документа и сохранять их в поле _allow_access_control. Синхронизации управления доступом извлекают списки управления доступом пользователей и сохраняют их в отдельном индексе.

После включения доступны следующие переключатели для более детальных разрешений:

  • Извлечь уникальные разрешения списка: Включите эту опцию для извлечения уникальных разрешений списка. Если этот параметр отключен, список унаследует разрешения от родительского сайта.
  • Извлечь уникальные разрешения элемента списка: Включите эту опцию для извлечения уникальных разрешений элемента списка. Если этот параметр отключен, элемент списка унаследует разрешения от родительского сайта.

    Если поле пустое, будет использоваться значение по умолчанию true для этих переключателей точных разрешений. Обратите внимание, что эти настройки могут увеличить время синхронизации.

Документы и синхронизации

Коннектор синхронизирует следующие типы объектов SharePoint:

  • Сайты и подсайты
  • Списка
  • Элементы списка и содержимое вложений
  • Библиотеки документов и содержимое вложений (включая веб-страницы)
  • Содержимое файлов размером более 10 МБ по умолчанию не будет извлечено. Используйте собственную локальную службу извлечения для обработки больших бинарных файлов.
  • Разрешения не синхронизируются по умолчанию. Включите безопасность на уровне документа (DLS) для синхронизации разрешений.
Типы синхронизации

Полные синхронизации по умолчанию поддерживаются для всех коннекторов.

Этот коннектор также поддерживает инкрементные синхронизации.

Безопасность на уровне документа

Безопасность на уровне документа (DLS) позволяет ограничивать доступ к документам на основе разрешений пользователя. См. настройку на этой странице, чтобы включить DLS для этого коннектора.

См. DLS в приложениях поиска, чтобы узнать, как импортировать данные из коннектора с включенной DLS при создании приложения поиска. В примере используется SharePoint Online в качестве источника данных, но те же шаги применимы к каждому коннектору.

Правила синхронизации

Основные правила синхронизации одинаковы для всех коннекторов и доступны по умолчанию.

Дополнительные правила синхронизации в текущей версии для этого коннектора недоступны. Фильтрация в настоящее время контролируется через конвейеры загрузки.

Извлечение содержимого

См. Извлечение содержимого.

Известные проблемы

В настоящее время для этого коннектора нет известных проблем. Список известных проблем для всех коннекторов см. в Известных проблемах.

Поиск и устранение неисправностей

См. Поиск и устранение неисправностей.

Безопасность

См. Безопасность.

Фреймворк и исходный код

Этот коннектор написан на Python с использованием фреймворка коннекторов Elastic.

Просмотреть исходный код этого коннектора (ветка 8.17, совместима с Elastic 8.17).

Справочник по управляемому пользователем коннектору

Просмотреть справочник по управляемому пользователем коннектору
Доступность и предварительные требования

Этот коннектор доступен в виде самостоятельного самостоятельного коннектора. Этот самостоятельный коннектор совместим с версиями Elastic 8.9.0+. Для использования этого коннектора, выполните все требования к самостоятельному коннектору.

Этот коннектор находится в стадии бета-тестирования и может быть изменён. Функции в бета-версии могут быть изменены и не покрываются SLA поддержки общедоступных (GA) функций. Elastic планирует продвинуть эту функцию до GA в будущей версии.

Создайте коннектор SharePoint Server

Используйте пользовательский интерфейс

Для создания нового коннектора SharePoint Server:

  1. В пользовательском интерфейсе Kibana перейдите на страницу Поиск → Содержимое → Коннекторы из главного меню или используйте поле глобального поиска.
  2. Следуйте инструкциям по созданию нового самостоятельного коннектора SharePoint Server.

Использование API

Вы можете использовать Elasticsearch API создания коннектора для создания нового самостоятельного коннектора SharePoint Server.

Например:

resp = client.connector.put(
    connector_id="my-{service-name-stub}-connector",
    index_name="my-elasticsearch-index",
    name="Content synced from {service-name}",
    service_type="{service-name-stub}",
)
print(resp)
const response = await client.connector.put({
  connector_id: "my-{service-name-stub}-connector",
  index_name: "my-elasticsearch-index",
  name: "Content synced from {service-name}",
  service_type: "{service-name-stub}",
});
console.log(response);
PUT _connector/my-sharepoint_server-connector
{
  "index_name": "my-elasticsearch-index",
  "name": "Content synced from SharePoint Server",
  "service_type": "sharepoint_server"
}
Вам также потребуется создать ключ API для использования коннектором.

Пользователю необходимы права кластера manage_api_key, manage_connector и write_connector_secrets для программированного создания ключей API.

Для создания ключа API для коннектора:

  1. Выполните следующую команду, заменив значения там, где указано. Обратите внимание на возвращаемые значения encoded из ответа:

    resp = client.security.create_api_key(
        name="connector_name-connector-api-key",
        role_descriptors={
            "connector_name-connector-role": {
                "cluster": [
                    "monitor",
                    "manage_connector"
                ],
                "indices": [
                    {
                        "names": [
                            "index_name",
                            ".search-acl-filter-index_name",
                            ".elastic-connectors*"
                        ],
                        "privileges": [
                            "all"
                        ],
                        "allow_restricted_indices": False
                    }
                ]
            }
        },
    )
    print(resp)
    const response = await client.security.createApiKey({
      name: "connector_name-connector-api-key",
      role_descriptors: {
        "connector_name-connector-role": {
          cluster: ["monitor", "manage_connector"],
          indices: [
            {
              names: [
                "index_name",
                ".search-acl-filter-index_name",
                ".elastic-connectors*",
              ],
              privileges: ["all"],
              allow_restricted_indices: false,
            },
          ],
        },
      },
    });
    console.log(response);
    POST /_security/api_key
    {
      "name": "connector_name-connector-api-key",
      "role_descriptors": {
        "connector_name-connector-role": {
          "cluster": [
            "monitor",
            "manage_connector"
          ],
          "indices": [
            {
              "names": [
                "index_name",
                ".search-acl-filter-index_name",
                ".elastic-connectors*"
              ],
              "privileges": [
                "all"
              ],
              "allow_restricted_indices": false
            }
          ]
        }
      }
    }
  2. Обновите свой файл config.yml со значением API ключа encoded.

Обратитесь к документации API Elasticsearch для получения подробной информации обо всех доступных API коннекторов.

Использование

Для использования этого коннектора как самостоятельного коннектора, см. Самостоятельные коннекторы.

Для дополнительных операций, см. Пользовательский интерфейс коннекторов в Kibana.

Совместимость

Следующие версии SharePoint Server совместимы со средой коннекторов Elastic:

  • SharePoint 2013
  • SharePoint 2016
  • SharePoint 2019
Настройка

При использовании самостоятельного коннектора, по умолчанию эти поля будут использовать значения по умолчанию, заданные в исходном коде коннектора. Эти значения задаются в определении функции get_default_configuration.

Эти настраиваемые поля будут отображаться соответствующими метками в пользовательском интерфейсе Kibana. После подключения вы сможете обновить эти значения в Kibana.

Для настройки коннектора требуются следующие поля конфигурации:

authentication
Режим аутентификации, либо Basic, либо NTLM.
username
Имя пользователя учетной записи для экземпляра SharePoint Server.
password
Пароль учетной записи.
host_url
URL хоста сервера, на котором размещён экземпляр SharePoint Server. Примеры:
  • https://192.158.1.38:8080
  • https://<tenant_name>.sharepoint.com
site_collections
Список сайтов, которые необходимо получить из SharePoint Server, разделённый запятыми. Примеры:
  • collection1
  • collection1, collection2
ssl_enabled
Включить проверку SSL. Значение по умолчанию False.
ssl_ca

Содержимое сертификата SSL, необходимого для экземпляра SharePoint Server. Оставьте это поле пустым, если ssl_enabled установлено в значение False.

Пример сертификата:

-----BEGIN CERTIFICATE-----
MIID+jCCAuKgAwIBAgIGAJJMzlxLMA0GCSqGSIb3DQEBCwUAMHoxCzAJBgNVBAYT
...
7RhLQyWn2u00L7/9Omw=
-----END CERTIFICATE-----
retry_count
Количество попыток повтора после неудачного запроса к экземпляру SharePoint Server. Значение по умолчанию 3.
use_document_level_security

Включить безопасность на уровне документа (DLS). При включении, полные синхронизации будут получать списки управления доступом для каждого документа и сохранять их в поле _allow_access_control. Синхронизации управления доступом получают списки управления доступом пользователей и сохраняют их в отдельном индексе.

После включения станут доступными следующие параметры разрешений:

  • Получить уникальные разрешения списка: Включите этот параметр, чтобы получить уникальные список разрешения. Если этот параметр выключен, список наследует разрешения от родительского сайта.
  • Получить уникальные разрешения элементов списка: Включите этот параметр, чтобы получить уникальные разрешения элемента списка. Если этот параметр выключен, элемент списка наследует разрешения от родительского сайта.

    Если оставлено пустым, по умолчанию используется значение true для этих параметров разрешений. Обратите внимание, что эти настройки могут увеличить время синхронизации.

Развертывание с помощью Docker

Вы можете развернуть коннектор SharePoint Server в виде самостоятельного коннектора с помощью Docker. Следуйте этим инструкциям.

Шаг 1: Загрузка образца файла конфигурации

Загрузите файл образца конфигурации. Вы можете загрузить его вручную или выполнить следующую команду:

curl https://raw.githubusercontent.com/elastic/connectors/main/config.yml.example --output ~/connectors-config/config.yml

Не забудьте обновить значение аргумента --output, если имя вашей директории отличается или вы хотите использовать другое имя файла конфигурации.

Шаг 2: Обновление файла конфигурации для вашего самостоятельного коннектора

Обновите файл конфигурации с указанными настройками, чтобы они соответствовали вашей среде:

  • elasticsearch.host
  • elasticsearch.api_key
  • connectors

Если вы запускаете службу коннектора против Docker-изображения Elasticsearch и Kibana, ваш файл конфигурации будет выглядеть так:

# When connecting to your cloud deployment you should edit the host value
elasticsearch.host: http://host.docker.internal:9200
elasticsearch.api_key: <ELASTICSEARCH_API_KEY>

connectors:
  -
    connector_id: <CONNECTOR_ID_FROM_KIBANA>
    service_type: sharepoint_server
    api_key: <CONNECTOR_API_KEY_FROM_KIBANA> # Optional. If not provided, the connector will use the elasticsearch.api_key instead

Использование elasticsearch.api_key является рекомендуемым методом аутентификации. Однако, вы также можете использовать elasticsearch.username и elasticsearch.password для аутентификации с вашим экземпляром Elasticsearch.

Примечание: Вы можете изменить другие значения по умолчанию, просто раскомментировав соответствующие настройки в файле конфигурации и изменив их значения.

Шаг 3: Запуск Docker-изображения

Запустите Docker-изображение со службой коннектора с помощью следующей команды:

docker run \
-v ~/connectors-config:/config \
--network "elastic" \
--tty \
--rm \
docker.elastic.co/enterprise-search/elastic-connectors:8.17.3 \
/app/bin/elastic-ingest \
-c /config/config.yml

См. DOCKER.md в репозитории elastic/connectors для получения более подробной информации.

Найдите все доступные Docker-изображения в официальном репозитории.

У нас также есть быстрое начальное руководство для самостоятельного варианта с использованием Docker Compose, чтобы сразу запустить все необходимые службы: Elasticsearch, Kibana и службу коннекторов. Обратитесь к README в репозитории elastic/connectors для получения дополнительной информации.

Документы и синхронизации

Коннектор синхронизирует следующие типы объектов SharePoint:

  • Сайты и подсайты
  • Списки
  • Элементы списка и их вложения
  • Библиотеки документов и их вложения (включая веб-страницы)
  • Содержимое файлов размером более 10 МБ по умолчанию не будет извлекаться. Используйте самостоятельно управляемую локальную службу извлечения, чтобы обрабатывать более крупные двоичные файлы.
  • Разрешения не синхронизируются. Все документы, индексированные в развертывании Elastic, будут видны всем пользователям с доступом к этому индексу Elasticsearch.
Типы синхронизации

Полные синхронизации поддерживаются по умолчанию для всех коннекторов.

Этот коннектор также поддерживает инкрементные синхронизации, но эта функция по умолчанию отключена. Обратитесь к связанной документации для включения инкрементной синхронизации.

Безопасность на уровне документов

Безопасность на уровне документов (DLS) позволяет ограничить доступ к документам на основе разрешений пользователя. Обратитесь к настройкам на этой странице, чтобы узнать, как включить DLS для этого коннектора.

Обратитесь к DLS в приложениях поиска, чтобы узнать, как импортировать данные из коннектора с включенной DLS при создании приложения поиска. В примере используется SharePoint Online в качестве источника данных, но те же шаги применимы для каждого коннектора.

Правила синхронизации

Основные правила синхронизации одинаковы для всех коннекторов и доступны по умолчанию.

Расширенные правила синхронизации недоступны для этого коннектора в текущей версии. В настоящее время фильтрация контролируется с помощью конвейеров извлечения.

Извлечение содержимого

См. Извлечение содержимого.

Самостоятельно управляемые операции коннектора
Конечное тестирование

Фреймворк коннектора позволяет операторам запускать функциональные тесты на реальном источнике данных. Подробнее см. в тестировании коннекторов.

Для выполнения E2E-тестирования для коннектора SharePoint запустите следующую команду:

$ make ftest NAME=sharepoint_server

Для более быстрых тестов добавьте флаг DATA_SIZE=small:

make ftest NAME=sharepoint_server DATA_SIZE=small
Известные проблемы

В настоящее время для этого коннектора нет известных проблем. См. Известные проблемы для списка известных проблем для всех коннекторов.

Устранение неполадок

См. Устранение неполадок.

Безопасность

См. Безопасность.

Фреймворк и исходный код

Этот коннектор написан на Python с использованием фреймворка Elastic для коннекторов.

Посмотрите исходный код этого коннектора (ветка 8.17, совместимая с Elastic 8.17).

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/es-connectors-sharepoint.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API