Справочник по коннектору Microsoft Teams от Elastic
Коннектор Microsoft Teams написан на Python с использованием фреймворка коннекторов Elastic.
Просмотреть исходный код этого коннектора (ветвь 8.17, совместима с Elastic 8.17).
Справочная информация по управляемому коннектору Elastic
Просмотр справки управляемого коннектора Elastic
Доступность и предварительные требования
Этот управляемый коннектор был представлен в Elastic 8.14.0 в качестве управляемой службы в Elastic Cloud.
Чтобы использовать этот коннектор в Elastic Cloud, выполните все требования к управляемым коннекторам.
Этот коннектор находится в техническом предварительном просмотре и может быть изменен. Дизайн и код менее зрелые, чем официальные функции GA, и предоставляются как есть без каких-либо гарантий. Функции технического предварительного просмотра не подпадают под SLA поддержки официальных функций GA.
Создание коннектора Microsoft Teams
Использование пользовательского интерфейса
Чтобы создать новый коннектор Microsoft Teams:
- В пользовательском интерфейсе Kibana перейдите на страницу Поиск → Содержание → Коннекторы из главного меню или используйте поле глобального поиска.
- Следуйте инструкциям по созданию нового нативного коннектора Microsoft Teams.
Для дополнительных операций см. Пользовательский интерфейс коннекторов в Kibana.
Использование API
Вы можете использовать Elasticsearch API для создания коннекторов для создания нового нативного коннектора Microsoft Teams.
Например:
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-microsoft_teams-connector
{
"index_name": "my-elasticsearch-index",
"name": "Content synced from Microsoft Teams",
"service_type": "microsoft_teams",
"is_native": true
} Вам также потребуется создать ключ API для использования коннектором.
Пользователю необходимы права кластера manage_api_key, manage_connector и write_connector_secrets для программно генерации ключей API.
Чтобы создать ключ API для коннектора:
-
Запустите следующую команду, заменив указанные значения. Обратите внимание на значения
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 } ] } } } -
Используйте значение
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" } -
Используйте ключ 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.
Использование
Для использования этого коннектора в пользовательском интерфейсе выберите плитку Teams при создании нового коннектора в разделе Поиск → Коннекторы.
Если вы уже знакомы с принципом работы коннекторов, вы также можете использовать API коннекторов.
Для дополнительных операций см. Пользовательский интерфейс коннекторов в Kibana.
Подключение к Microsoft Teams
Для подключения к Microsoft Teams необходимо создать приложение и сервисный принцип в Azure Active Directory, которые могут получить доступ к ресурсам. Следуйте этим шагам:
- Перейдите на портал Azure и войдите в систему с учетной записью Azure.
- Перейдите к службе Azure Active Directory.
- Выберите Регистрации приложений в левом меню.
- Нажмите кнопку Новая регистрация для регистрации нового приложения.
- Укажите название для вашего приложения и, по желанию, выберите поддерживаемые типы учетных записей (например, единый арендатор, многоарендатор).
- Нажмите кнопку Зарегистрировать для создания регистрации приложения.
- После завершения регистрации вы будете перенаправлены на страницу обзора приложения. Обратите внимание на значение Идентификатор приложения (клиента), так как оно вам понадобится позже.
- Прокрутите вниз до раздела Разрешения API и нажмите кнопку "Добавить разрешение".
- В окне "Запрос разрешений API" выберите "Microsoft Graph" как API.
-
Выберите следующие разрешения:
-
TeamMember.Read.All(Делегированные) -
Team.ReadBasic.All(Делегированные) -
TeamsTab.Read.All(Делегированные) -
Group.Read.All(Делегированные) -
ChannelMessage.Read.All(Делегированные) -
Chat.Read(Делегированные) иChat.Read.All(Приложение) -
Chat.ReadBasic(Делегированные) иChat.ReadBasic.All(Приложение) -
Files.Read.All(Делегированные и Приложение) -
Calendars.Read(Делегированные и Приложение)
-
- Нажмите кнопку Добавить разрешения для добавления выбранных разрешений к вашему приложению.
- Нажмите кнопку Предоставить разрешения администратора для предоставления требуемых разрешений приложению. Этот шаг требует прав администратора. Если вы не являетесь администратором, вам необходимо запросить у администратора предоставление согласия через их портал Azure.
- В вкладке "Сертификаты и секреты" перейдите к Секреты клиента. Сгенерируйте новый секрет клиента и запомните строку в столбце
Value.
После завершения используйте следующие параметры конфигурации для настройки коннектора.
Конфигурация
Необходимы следующие поля конфигурации:
-
client_id(обязательно) -
Уникальный идентификатор вашего приложения Azure, найденный на странице обзора приложения. Пример:
-
ab123453-12a2-100a-1123-93fd09d67394
-
-
secret_value(обязательно) -
Строковое значение, используемое приложением для подтверждения своей личности при запросе токена, доступно на вкладке
Certificates & Secretsменю вашего приложения Azure. Пример:-
eyav1~12aBadIg6SL-STDfg102eBfCGkbKBq_Ddyu
-
-
tenant_id(обязательно) -
Уникальный идентификатор вашей подписки Azure Active Directory, найденный на странице обзора приложения. Пример:
-
123a1b23-12a3-45b6-7c8d-fc931cfb448d
-
-
username(обязательно) -
Имя пользователя вашего приложения Azure. Пример:
-
dummy@3hmr2@onmicrosoft.com
-
-
password(обязательно) -
Пароль вашего приложения Azure. Пример:
-
changeme
-
Извлечение содержимого
Документы и синхронизация
Коннектор синхронизирует следующие объекты и сущности:
- СООБЩЕНИЯ_ЧАТОВ_ПОЛЬЗОВАТЕЛЯ
- ВКЛАДКИ_ЧАТА_ПОЛЬЗОВАТЕЛЯ
- ВЛОЖЕНИЕ_ЧАТА_ПОЛЬЗОВАТЕЛЯ
- ЗАПИСЬ_ВСТРЕЧИ_ЧАТА_ПОЛЬЗОВАТЕЛЯ
- ВСТРЕЧА_ПОЛЬЗОВАТЕЛЯ
- ТЕАМЫ
- КАНАЛ_ТЕАМЫ
- ВКЛАДКА_КАНАЛА
- СООБЩЕНИЕ_КАНАЛА
- ВСТРЕЧА_КАНАЛА
- ВЛОЖЕНИЕ_КАНАЛА
- СОБЫТИЯ_КАЛЕНДАРЯ
- Файлы размером более 10 МБ не будут извлечены.
- Разрешения не синхронизируются. Все документы индексируемые в развертывании Elastic будут видны всем пользователям с доступом к этому развертыванию Elastic.
Типы синхронизации
Полные синхронизации поддерживаются по умолчанию для всех коннекторов.
Этот коннектор также поддерживает инкрементные синхронизации.
Правила синхронизации
Базовые правила синхронизации идентичны для всех коннекторов и доступны по умолчанию.
Расширенные правила синхронизации
Расширенные правила синхронизации недоступны для этого коннектора в текущей версии.
Известные проблемы
- Сообщения в чатах один на один для пользователей Чат с собой не извлекаются через API Graph. Поэтому эти сообщения не будут индексированы в Elasticsearch.
См. Известные проблемы для списка известных проблем для всех коннекторов.
Поиск и устранение неисправностей
См. Поиск и устранение неисправностей.
Безопасность
См. Безопасность.
Справочник по управляемому пользователем коннектору
Ссылка на самостоятельный коннектор
Доступность и предварительные условия
Этот коннектор доступен как самостоятельный коннектор. Для использования этого коннектора, выполните все предварительные условия для самостоятельных коннекторов.
Этот коннектор находится в техническом предварительном просмотре и может быть изменён. Дизайн и код менее зрелые, чем официальные функции GA, и предоставляются как есть, без гарантий. Функции технического предварительного просмотра не подпадают под SLA поддержки официальных функций GA.
Создать коннектор Microsoft Teams
Использовать пользовательский интерфейс
Чтобы создать новый коннектор Microsoft Teams:
- В пользовательском интерфейсе Kibana перейдите на страницу Поиск → Содержание → Коннекторы из главного меню или воспользуйтесь полем глобального поиска.
- Следуйте инструкциям для создания нового коннектора Microsoft Teams с самостоятельным управлением.
Использование API
Вы можете использовать Elasticsearch API для создания коннекторов, чтобы создать новый самостоятельный коннектор Microsoft Teams.
Например:
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-microsoft_teams-connector
{
"index_name": "my-elasticsearch-index",
"name": "Content synced from Microsoft Teams",
"service_type": "microsoft_teams"
} Вам также потребуется создать ключ API для использования коннектором.
Пользователь нуждается в кластерных привилегиях manage_api_key, manage_connector и write_connector_secrets для программного создания ключей API.
Чтобы создать ключ API для коннектора:
-
Запустите следующую команду, заменив значения там, где указано. Обратите внимание на значения
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 } ] } } } - Обновите свой файл
config.ymlсо значением ключа APIencoded.
Для получения подробностей обо всех доступных API коннекторов обратитесь к документации API Elasticsearch.
Использование
Чтобы использовать этот коннектор как самостоятельный коннектор, воспользуйтесь плиткой Microsoft Teams из списка коннекторов в работе с настроенными коннекторами.
Для дополнительных операций см. Пользовательский интерфейс коннекторов в Kibana.
Подключение к Microsoft Teams
Для подключения к Microsoft Teams необходимо создать приложение и службу-принципал Azure Active Directory, которые могут получить доступ к ресурсам. Следуйте этим шагам:
- Перейдите в портал Azure и войдите в систему с помощью вашей учетной записи Azure.
- Перейдите к службе Azure Active Directory.
- Выберите Регистрации приложений в левом меню.
- Нажмите кнопку Новая регистрация, чтобы зарегистрировать новое приложение.
- Укажите имя вашего приложения и, по желанию, выберите поддерживаемые типы учетных записей (например, однодоменная, многодоменная).
- Нажмите кнопку Зарегистрировать, чтобы создать регистрацию приложения.
- После завершения регистрации вы будете перенаправлены на страницу обзора приложения. Обратите внимание на значение Идентификатор приложения (клиента), так как вам потребуется оно позже.
- Прокрутите вниз до раздела Разрешения API и нажмите кнопку "Добавить разрешение".
- В окне "Запрос разрешений API" выберите "Microsoft Graph" в качестве API.
-
Выберите следующие разрешения:
-
TeamMember.Read.All(Делегированное) -
Team.ReadBasic.All(Делегированное) -
TeamsTab.Read.All(Делегированное) -
Group.Read.All(Делегированное) -
ChannelMessage.Read.All(Делегированное) -
Chat.Read(Делегированное) &Chat.Read.All(Приложение) -
Chat.ReadBasic(Делегированное) &Chat.ReadBasic.All(Приложение) -
Files.Read.All(Делегированное и Приложение) -
Calendars.Read(Делегированное и Приложение)
-
- Нажмите кнопку Добавить разрешения, чтобы добавить выбранные разрешения к вашему приложению.
- Нажмите кнопку Предоставить согласие администратора, чтобы предоставить необходимые разрешения приложению. Для этого шага требуются административные привилегии. Если вы не являетесь администратором, вам необходимо запросить у администратора предоставление согласия через их портал Azure.
- В вкладке "Сертификаты и секреты" перейдите к Секреты клиента. Сгенерируйте новый секрет клиента и запомните строку в столбце
Value.
После завершения используйте следующие параметры конфигурации для настройки коннектора.
Конфигурация
Необходимы следующие поля конфигурации:
-
client_id(обязательно) -
Уникальный идентификатор вашего приложения Azure, найденный на странице обзора приложения. Пример:
-
ab123453-12a2-100a-1123-93fd09d67394
-
-
secret_value(обязательно) -
Строковое значение, которое приложение использует для подтверждения своей личности при запросе токена, доступное во вкладке
Certificates & Secretsменю вашего приложения Azure. Пример:-
eyav1~12aBadIg6SL-STDfg102eBfCGkbKBq_Ddyu
-
-
tenant_id(обязательно) -
Уникальный идентификатор вашей инстанции Azure Active Directory, найденный на странице обзора приложения. Пример:
-
123a1b23-12a3-45b6-7c8d-fc931cfb448d
-
-
username(обязательно) -
Имя пользователя вашего приложения Azure. Пример:
-
dummy@3hmr2@onmicrosoft.com
-
-
password(обязательно) -
Пароль вашего приложения Azure. Пример:
-
changeme
-
Развертывание с использованием Docker
Вы можете развернуть коннектор Microsoft Teams в качестве самостоятельного коннектора с использованием 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
Если вы запускаете службу коннектора на базе Dockerized 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: microsoft_teams
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 для получения дополнительной информации.
Извлечение содержимого
Обратитесь к извлечению содержимого.
Документы и синхронизации
Коннектор синхронизирует следующие объекты и сущности:
- USER_CHATS_MESSAGE
- USER_CHAT_TABS
- USER_CHAT_ATTACHMENT
- USER_CHAT_MEETING_RECORDING
- USER_MEETING
- TEAMS
- TEAM_CHANNEL
- CHANNEL_TAB
- CHANNEL_MESSAGE
- CHANNEL_MEETING
- CHANNEL_ATTACHMENT
- CALENDAR_EVENTS
- Файлы размером более 10 МБ не будут извлечены.
- Разрешения не синхронизируются. Все документы, индексированные в развертывании Elasticsearch, будут видны всем пользователям с доступом к этому развертыванию Elasticsearch.
Типы синхронизации
Полные синхронизации поддерживаются по умолчанию для всех коннекторов.
Этот коннектор также поддерживает инкрементные синхронизации.
Правила синхронизации
Основные правила синхронизации идентичны для всех коннекторов и доступны по умолчанию.
Расширенные правила синхронизации
Расширенные правила синхронизации недоступны для этого коннектора в текущей версии.
Тестирование от начала до конца
Фреймворк коннектора позволяет операторам запускать функциональные тесты на реальном источнике данных. Обратитесь к тестированию коннекторов для получения дополнительной информации.
Для выполнения тестирования от начала до конца для коннектора Teams выполните следующую команду:
$ make ftest NAME=microsoft_teams
Для более быстрых тестов добавьте флаг DATA_SIZE=small:
make ftest NAME=microsoft_teams DATA_SIZE=small
Известные проблемы
- Сообщения в чатах один на один для пользователей Чат с собой не извлекаются через API Graph. Поэтому эти сообщения не будут индексированы в Elasticsearch.
Обратитесь к известным проблемам для получения списка известных проблем для всех коннекторов.
Устранение неполадок
См. устранение неполадок.
Безопасность
См. безопасность.
© 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-teams.html