Elastic Microsoft Teams 连接器参考
编辑Elastic Microsoft Teams 连接器参考
编辑Microsoft Teams 连接器是使用 Elastic 连接器框架用 Python 编写的。
查看此连接器的源代码(分支8.17,与 Elastic 8.17 兼容)。
Elastic 托管连接器参考
编辑查看Elastic 托管连接器参考
可用性和先决条件
编辑此托管连接器在 Elastic 8.14.0 中作为 Elastic Cloud 上的托管服务引入。
要在 Elastic Cloud 中原生使用此连接器,请满足所有托管连接器要求。
此连接器处于技术预览阶段,可能会发生更改。其设计和代码不如正式 GA 功能成熟,并且按原样提供,不提供任何保证。技术预览功能不受官方 GA 功能的支持 SLA 的约束。
创建 Microsoft Teams 连接器
编辑使用 UI
编辑要创建新的 Microsoft Teams 连接器
- 在 Kibana UI 中,从主菜单导航到搜索 → 内容 → 连接器页面,或使用全局搜索字段。
- 按照说明创建新的原生Microsoft Teams连接器。
有关其他操作,请参阅Kibana 中的连接器 UI。
使用 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.connector.secret_post( body={ "value": "encoded_api_key" }, ) print(resp)
const response = await client.connector.secretPost({ 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 的详细信息,请参阅Elasticsearch API 文档。
用法
编辑要在 UI 中使用此连接器,请在搜索 → 连接器下创建新连接器时选择Teams磁贴。
如果您已经熟悉连接器的工作方式,您还可以使用连接器 API。
有关其他操作,请参阅Kibana 中的连接器 UI。
连接到 Microsoft Teams
编辑要连接到 Microsoft Teams,您需要创建可访问资源的 Azure Active Directory 应用程序和服务主体。请按照以下步骤操作
- 转到Azure 门户并使用您的 Azure 帐户登录。
- 导航到Azure Active Directory服务。
- 从左侧菜单中选择应用注册。
- 单击新注册按钮以注册新应用程序。
- 为您的应用程序提供一个名称,并可选选择受支持的帐户类型(例如,单租户、多租户)。
- 单击注册按钮以创建应用程序注册。
- 注册完成后,您将被重定向到应用程序的概述页面。请记下应用程序(客户端)ID值,稍后您将需要它。
- 向下滚动到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 门户授予同意。
- 在“证书和密钥”选项卡下,转到客户端密钥。生成一个新的客户端密钥,并记下
值
列下的字符串。
完成后,使用以下配置参数配置连接器。
配置
编辑需要以下配置字段
-
client_id
(必填) -
您的 Azure 应用程序的唯一标识符,位于应用程序的概述页面上。示例
-
ab123453-12a2-100a-1123-93fd09d67394
-
-
secret_value
(必填) -
应用程序在请求令牌时用于证明其身份的字符串值,在您的 Azure 应用程序菜单的
证书和密钥
选项卡下可用。示例-
eyav1~12aBadIg6SL-STDfg102eBfCGkbKBq_Ddyu
-
-
tenant_id
(必填) -
您的 Azure Active Directory 实例的唯一标识符,位于应用程序的概述页面上。示例
-
123a1b23-12a3-45b6-7c8d-fc931cfb448d
-
-
username
(必填) -
您的 Azure 应用程序的用户名。示例
-
dummy@[email protected]
-
-
password
(必填) -
您的 Azure 应用程序的密码。示例
-
changeme
-
内容提取
编辑请参阅内容提取。
文档和同步
编辑连接器同步以下对象和实体
- 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 MB 的文件将不会被提取。
- 权限不会同步。所有索引到 Elastic 部署的文档将对所有有权访问该 Elastic 部署的用户可见。
同步类型
编辑默认情况下,所有连接器都支持完整同步。
此连接器还支持增量同步。
同步规则
编辑基本同步规则对于所有连接器都是相同的,并且默认可用。
高级同步规则
编辑当前版本中,此连接器不提供高级同步规则。
已知问题
编辑- 通过 Graph API 不会获取 Chat with Self 用户的点对点聊天中的消息。因此,这些消息不会被索引到 Elasticsearch 中。
有关所有连接器的已知问题列表,请参阅已知问题。
故障排除
编辑请参阅故障排除。
安全
编辑请参阅安全。
自管理连接器参考
编辑查看自管理连接器参考
可用性和先决条件
编辑此连接器可用作自管理的自管理连接器。要使用此连接器,请满足所有自管理连接器先决条件。
此连接器处于技术预览阶段,可能会发生更改。其设计和代码不如正式 GA 功能成熟,并且按原样提供,不提供任何保证。技术预览功能不受官方 GA 功能的支持 SLA 的约束。
创建 Microsoft Teams 连接器
编辑使用 UI
编辑要创建新的 Microsoft Teams 连接器
- 在 Kibana UI 中,从主菜单导航到搜索 → 内容 → 连接器页面,或使用全局搜索字段。
- 按照说明创建新的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 } ] } } }
- 使用 API 密钥
encoded
值更新您的config.yml
文件。
有关所有可用连接器 API 的详细信息,请参阅Elasticsearch API 文档。
用法
编辑要将此连接器用作自管理连接器,请使用连接器列表中的Microsoft Teams磁贴,选择自定义连接器工作流程。
有关其他操作,请参阅Kibana 中的连接器 UI。
连接到 Microsoft Teams
编辑要连接到 Microsoft Teams,您需要创建可访问资源的 Azure Active Directory 应用程序和服务主体。请按照以下步骤操作
- 转到Azure 门户并使用您的 Azure 帐户登录。
- 导航到Azure Active Directory服务。
- 从左侧菜单中选择应用注册。
- 单击新注册按钮以注册新应用程序。
- 为您的应用程序提供一个名称,并可选选择受支持的帐户类型(例如,单租户、多租户)。
- 单击注册按钮以创建应用程序注册。
- 注册完成后,您将被重定向到应用程序的概述页面。请记下应用程序(客户端)ID值,稍后您将需要它。
- 向下滚动到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 门户授予同意。
- 在“证书和密钥”选项卡下,转到客户端密钥。生成一个新的客户端密钥,并记下
值
列下的字符串。
完成后,使用以下配置参数配置连接器。
配置
编辑需要以下配置字段
-
client_id
(必填) -
您的 Azure 应用程序的唯一标识符,位于应用程序的概述页面上。示例
-
ab123453-12a2-100a-1123-93fd09d67394
-
-
secret_value
(必填) -
应用程序在请求令牌时用于证明其身份的字符串值,在您的 Azure 应用程序菜单的
证书和密钥
选项卡下可用。示例-
eyav1~12aBadIg6SL-STDfg102eBfCGkbKBq_Ddyu
-
-
tenant_id
(必填) -
您的 Azure Active Directory 实例的唯一标识符,位于应用程序的概述页面上。示例
-
123a1b23-12a3-45b6-7c8d-fc931cfb448d
-
-
username
(必填) -
您的 Azure 应用程序的用户名。示例
-
dummy@[email protected]
-
-
password
(必填) -
您的 Azure 应用程序的密码。示例
-
changeme
-
使用 Docker 部署
编辑您可以使用 Docker 将 Microsoft Teams 连接器部署为自管理连接器。请按照以下说明进行操作。
步骤 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: 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.0.0 \ /app/bin/elastic-ingest \ -c /config/config.yml
有关更多详细信息,请参阅 elastic/connectors
仓库中的 DOCKER.md
。
在官方注册表中查找所有可用的 Docker 镜像。
我们还提供了一个使用 Docker Compose 的快速启动自管理选项,因此您可以一次启动所有必需的服务:Elasticsearch、Kibana 和连接器服务。有关更多信息,请参阅 elastic/connectors
仓库中的 README。
内容提取
编辑请参阅内容提取。
文档和同步
编辑连接器同步以下对象和实体
- 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 MB 的文件将不会被提取。
- 权限不会同步。所有索引到 Elastic 部署的文档将对所有有权访问该 Elastic 部署的用户可见。
同步类型
编辑默认情况下,所有连接器都支持完整同步。
此连接器还支持增量同步。
同步规则
编辑基本同步规则对于所有连接器都是相同的,并且默认可用。
高级同步规则
编辑当前版本中,此连接器不提供高级同步规则。
端到端测试
编辑连接器框架允许操作员针对真实数据源运行功能测试。有关更多详细信息,请参阅连接器测试。
要对 Teams 连接器执行 E2E 测试,请运行以下命令
$ make ftest NAME=microsoft_teams
为了加快测试速度,请添加 DATA_SIZE=small
标志
make ftest NAME=microsoft_teams DATA_SIZE=small
已知问题
编辑- 通过 Graph API 不会获取 Chat with Self 用户的点对点聊天中的消息。因此,这些消息不会被索引到 Elasticsearch 中。
有关所有连接器的已知问题列表,请参阅已知问题。
故障排除
编辑请参阅故障排除。
安全
编辑请参阅安全。