根据用户上下文进行筛选 - Amazon Kendra

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

根据用户上下文进行筛选

注意

功能支持因索引类型和使用的搜索API而异。要查看API您正在使用的索引类型和搜索是否支持此功能,请参阅索引类型

您可以根据用户或其群组对文档的访问权限来筛选用户的搜索结果。您可以使用用户令牌、用户 ID 或用户属性来筛选文档。

用户上下文筛选是一种个性化搜索,其优点是控制对文档的访问权限。例如,并非所有在公司门户网站上搜索信息的团队都应该访问绝密的公司文档,这些文档也不应与所有用户相关。只有获得绝密文档访问权限的特定用户或团队组才能在搜索结果中看到这些文档。

将文档编入索引后 Amazon Kendra,会为大多数文档提取相应的访问控制列表 (ACL)。ACL指定允许或拒绝哪些用户名和组名访问文档。不带的文档ACL是公共文档。

Amazon Kendra 可以为大多数数据源提取与每个文档关联的用户或组信息。例如,Quip 中的文档可以包含有权访问该文档的精选用户的“共享”列表。如果您使用 S3 存储桶作为数据源,则需要为其提供一个JSON文件,ACL并在数据源配置中包含该文件的 S3 路径。如果将文档直接添加到索引ACL中,则可以将 Princip al 对象中的指定为中文档对象的一部分BatchPutDocumentAPI。

如果您使用的是 Amazon Kendra Enterprise 或开发者版索引,则可以使用CreateAccessControlConfigurationAPI来重新配置现有文档级别的访问控制,而无需再次为所有文档编制索引。例如,您的索引包含只有特定员工或用户才能访问的绝密公司文档。其中一位用户离开公司或转到应被禁止访问绝密文档的团队。用户仍然可以访问绝密文档,因为在您的文档之前被编入索引时,该用户拥有访问权限。您可以为具有拒绝访问权限的用户创建特定的访问控制配置。您可以稍后更新访问控制配置,以便在用户返回公司并重新加入“绝密”团队时允许访问。随着情况的变化,您可以重新配置文档的访问控制。

要将访问控制配置应用于某些文档,请BatchPutDocumentAPI使用 D oc ument 对象中AccessControlConfigurationId包含的来调用。如果您使用 S3 存储桶作为数据源,则.metadata.json使用更新AccessControlConfigurationId并同步您的数据源。 Amazon Kendra 目前仅支持对使用索引的 S3 数据源和文档进行访问控制配置。BatchPutDocument API

按用户令牌筛选

重要

亚马逊 Kendra GenAI 企业版索引不支持基于令牌的用户访问控制。

查询索引时,您可以使用用户令牌根据用户或其群组对文档的访问权限筛选搜索结果。当您发出查询时, Amazon Kendra 提取并验证令牌,提取和检查用户和群组信息,然后运行查询。将返回用户有权访问的所有文档,包括公共文档。有关更多信息,请参阅基于角色的访问控制

您在UserContext对象中提供用户令牌,然后在查询中传递该令牌API。

以下命令说明如何添加用户令牌。

response = kendra.query( QueryText = query, IndexId = index, UserToken = { Token = "token" })

您可以将用户映射到群组。使用用户上下文筛选时,无需在发出查询时包含用户所属的所有群组。使用 PutPrincipalMappingAPI,您可以将用户映射到他们的群组。如果您不想使用 PutPrincipalMappingAPI,则必须在发出查询时提供用户名和该用户所属的所有群组。您还可以使用该UserGroupResolutionConfiguration对象获取 Identity Center IAM 身份源中群组和用户的访问级别。

按用户 ID 和群组筛选

查询索引时,您可以使用用户 ID 和群组,根据用户或其群组对文档的访问权限筛选搜索结果。当您发出查询时, Amazon Kendra 会检查用户和群组信息并运行查询。将返回与用户有权访问的查询相关的所有文档,包括公共文档。

您还可以按用户和群组有权访问的数据来源筛选搜索结果。如果一个组与多个数据来源相关联,但您只想让该组访问特定数据来源的文档,则指定数据来源非常有用。例如,“研究”、“工程”和“销售和营销”这三个组都与存储在数据来源Confluence和Salesforce中的公司文档相关联。但是,“销售和营销”团队只需要访问存储在Salesforce中的客户相关文档即可。因此,当销售和营销用户搜索与客户相关的文档时,他们可以在搜索结果中看到来自 Salesforce 的文档。不从事销售和市场营销工作的用户不会在搜索结果中看到 Salesforce 文档。

您在UserContext对象中提供用户、群组和数据源信息,然后在查询中传递这些信息API。用户 ID 以及组和数据来源列表应与您在 Princip al 对象中指定的名称相匹配,以标识用户、组和数据来源。使用该Principal对象,您可以将用户、组或数据来源添加到允许列表或拒绝列表中以访问文档。

您必须提供以下任一信息:

  • 用户和群组信息,以及(可选)数据来源信息。

  • 仅当您使用将用户映射到群组和数据源时,才会显示用户信息PutPrincipalMappingAPI。您还可以使用该UserGroupResolutionConfiguration对象获取 Identity Center IAM 身份源中群组和用户的访问级别。

如果查询中未包含此信息,则 Amazon Kendra 返回所有文档。如果您提供此信息,则仅返回具有匹配用户IDs、组和数据源的文档。

以下内容显示了如何包括用户 ID、群组和数据来源。

response = kendra.query( QueryText = query, IndexId = index, UserContext={'Token': 'string', 'UserId': 'string', 'Groups': [ 'string', ], 'DataSourceGroups': [ { 'GroupId': 'string', 'DataSourceId': 'string' }, ] },)

按属性筛选

查询索引时,您可以使用内置属性,_user_id_group_id根据用户及其群组对文档的访问权限筛选搜索结果。您最多可以设置 100 个群组标识符。当您发出查询时, Amazon Kendra 会检查用户和群组信息并运行查询。将返回与用户有权访问的查询相关的所有文档,包括公共文档。

您在AttributeFilter对象中提供用户和群组属性,然后在查询中传递这些属性API。

以下示例显示了一个请求,该请求根据用户 ID 以及用户所属的“HR”和“IT”组筛选查询响应。该查询将返回允许列表中包含用户或“HR”或“IT”组的所有文档。如果该用户或其中一个组在文档的拒绝列表中,则不会返回该文档。

response = kendra.query( QueryText = query, IndexId = index, AttributeFilter = { "OrAllFilters": [ { "EqualsTo": { "Key": "_user_id", "Value": { "StringValue": "user1" } } }, { "EqualsTo": { "Key": "_group_ids", "Value": { "StringListValue": ["HR", "IT"] } } } ] } )

您还可以在Principal对象中指定群组可以访问哪个数据来源。

注意

用户上下文筛选不是对内容的身份验证或授权控制。它不会对发送给的用户和群组进行用户身份验证QueryAPI。您的应用程序有责任确保发送到QueryAPI的用户和群组信息经过身份验证和授权。

每个数据来源都实现了用户上下文筛选。以下部分描述了每种实现。

对直接添加到索引的文档进行用户上下文筛选

使用将文档直接添加到索引时 BatchPutDocumentAPI,会从文档的AccessControlList字段中 Amazon Kendra 获取用户和群组信息。您为文档提供了访问控制列表 (ACL),ACL该列表将与您的文档一起收录。

您可以将 P ACL rincip al 对象中的指定为中文档对象的一部分BatchPutDocumentAPI。提供以下信息:

  • 用户或组应具有的访问权限。您可以说ALLOWDENY

  • 实体的类型。您可以说USERGROUP

  • 用户或组的名称。

您最多可以在AccessControlList字段中添加 200 个条目。

筛选用户上下文以查找常见问题

FAQ向索引中添加时, Amazon Kendra 会从文件的AccessControlList对象/字段中获取用户和组信息。FAQ JSON您也可以使用带有自定义字段或属性的FAQCSV文件进行访问控制。

提供以下信息:

  • 用户或组应具有的访问权限。您可以说ALLOWDENY

  • 实体的类型。您可以说USERGROUP

  • 用户或组的名称。

有关更多信息,请参阅FAQ文件

数据来源的用户上下文筛选

Amazon Kendra 还会从支持的数据源连接器中抓取用户和组访问控制列表 (ACL) 信息。这对于用户上下文筛选非常有用,在这种筛选中,搜索结果是根据用户或其群组对文档的访问权限进行筛选的。

重要

亚马逊 Kendra GenAI 企业版索引仅支持 v2.0 亚马逊 Kendra 数据源连接器。

主题

针对 Adobe 体验管理器数据来源的用户上下文筛选

当您使用 Adobe Experience Manager 数据源时, Amazon Kendra 会从 Adobe Experience Manager 实例获取用户和群组信息。

群组和用户映射IDs如下:

  • _group_ids—群组IDs存在于 Adobe Experience Manager 内容中,其中设置了访问权限。它们是从 Adobe 体验管理器中的群组名称映射出来的。

  • _user_id— 用户IDs存在于 Adobe Experience Manager 内容中,其中设置了访问权限。它们是从 Adobe 体验管理器中的用户电子邮件IDs中映射出来的。

您最多可以在AccessControlList字段中添加 200 个条目。

Alfresco 数据来源的用户上下文筛选

当你使用 Alfresco 数据源时, Amazon Kendra 会从 Alfresco 实例中获取用户和群组信息。

群组和用户映射IDs如下:

  • _group_ids—在 Alfresco 中,群组IDs存在于设置了访问权限的文件上。它们是从 Alfresco 中组的系统名称(不是显示名称)映射出来的。

  • _user_id—用户IDs存在于 Alfresco 中已设置访问权限的文件上。它们是从用户电子邮件中映射出来的,就像IDs在 Alfresco 中一样。

您最多可以在AccessControlList字段中添加 200 个条目。

筛选 Aurora (我的SQL)数据源的用户上下文

使用 Aurora (我的SQL)数据源时, Amazon Kendra 会从源表中的一列中获取用户和群组信息。您可以在控制台中指定此列,或者使用TemplateConfiguration对象作为控制台的一部分CreateDataSourceAPI。

Aurora (我的SQL)数据库数据源有以下限制:

  • 您只能为数据库数据来源指定允许列表。您无法指定拒绝列表。

  • 您只能指定群组。您不能为允许列表指定单个用户。

  • 数据库列应是一个包含以分号分隔的组列表的字符串。

筛选 Aurora (PostgreSQL) 数据源的用户上下文

使用 Aurora (PostgreSQL) 数据源时, Amazon Kendra 会从源表中的一列中获取用户和组信息。您可以在控制台中指定此列,或者使用TemplateConfiguration对象作为控制台的一部分CreateDataSourceAPI。

Aurora (PostgreSQL) 数据库数据源具有以下限制:

  • 您只能为数据库数据来源指定允许列表。您无法指定拒绝列表。

  • 您只能指定群组。您不能为允许列表指定单个用户。

  • 数据库列应是一个包含以分号分隔的组列表的字符串。

Amazon FSx 数据源的用户上下文筛选

使用 Amazon FSx 数据源时, Amazon Kendra 会从 Amazon FSx 实例的目录服务中获取用户和组信息。

群 Amazon FSx 组和用户映射IDs如下:

  • _group_ids—群组IDs存在 Amazon FSx 于设置了访问权限的文件中。它们是从的目录服务中的系统组名称映射出来的 Amazon FSx。

  • _user_id—用户IDs存在 Amazon FSx 于设置了访问权限的文件中。它们是从的目录服务中的系统用户名映射出来的 Amazon FSx。

您最多可以在AccessControlList字段中添加 200 个条目。

数据库数据来源的用户上下文筛选

当您使用数据库数据源(例如)时 Amazon Aurora PostgreSQL, Amazon Kendra 会从源表的某一列中获取用户和组信息。您可以在AclConfiguration对象中将此列指定为DatabaseConfiguration对象的一部分CreateDataSourceAPI。

数据库数据来源具有以下限制:

  • 您只能为数据库数据来源指定允许列表。您无法指定拒绝列表。

  • 您只能指定群组。您不能为允许列表指定单个用户。

  • 数据库列应是一个包含以分号分隔的组列表的字符串。

Amazon RDS (微软SQL服务器)数据源的用户上下文筛选

当你使用 Amazon RDS (Microsoft SQL Server)数据源时, Amazon Kendra 会从源表中的一列中获取用户和组信息。您可以在控制台中指定此列,或者使用TemplateConfiguration对象作为控制台的一部分CreateDataSourceAPI。

Amazon RDS (Microsoft SQL 服务器)数据库数据源有以下限制:

  • 您只能为数据库数据来源指定允许列表。您无法指定拒绝列表。

  • 您只能指定群组。您不能为允许列表指定单个用户。

  • 数据库列应是一个包含以分号分隔的组列表的字符串。

筛选 Amazon RDS (我的SQL)数据源的用户上下文

使用 Amazon RDS (我的SQL)数据源时, Amazon Kendra 会从源表中的一列中获取用户和群组信息。您可以在控制台中指定此列,或者使用TemplateConfiguration对象作为控制台的一部分CreateDataSourceAPI。

Amazon RDS (我的SQL)数据库数据源有以下限制:

  • 您只能为数据库数据来源指定允许列表。您无法指定拒绝列表。

  • 您只能指定群组。您不能为允许列表指定单个用户。

  • 数据库列应是一个包含以分号分隔的组列表的字符串。

筛选 Amazon RDS (Oracle) 数据源的用户上下文

使用 Amazon RDS (Oracle) 数据源时, Amazon Kendra 会从源表中的一列中获取用户和组信息。您可以在控制台中指定此列,或者使用TemplateConfiguration对象作为控制台的一部分CreateDataSourceAPI。

Amazon RDS (Oracle) 数据库数据源具有以下限制:

  • 您只能为数据库数据来源指定允许列表。您无法指定拒绝列表。

  • 您只能指定群组。您不能为允许列表指定单个用户。

  • 数据库列应是一个包含以分号分隔的组列表的字符串。

筛选 Amazon RDS (PostgreSQL) 数据源的用户上下文

使用 Amazon RDS (PostgreSQL) 数据源时, Amazon Kendra 会从源表中的一列中获取用户和组信息。您可以在控制台中指定此列,或者使用TemplateConfiguration对象作为控制台的一部分CreateDataSourceAPI。

Amazon RDS (PostgreSQL) 数据库数据源具有以下限制:

  • 您只能为数据库数据来源指定允许列表。您无法指定拒绝列表。

  • 您只能指定群组。您不能为允许列表指定单个用户。

  • 数据库列应是一个包含以分号分隔的组列表的字符串。

Amazon S3 数据来源的用户上下文筛选

您可以使用与文档关联的元数据文件向 Amazon S3 数据源中的文档添加用户上下文筛选。您可以将信息添加到JSON文档的AccessControlList字段中。有关向从数据来源编制索引的文档中添加元 Amazon S3 数据的更多信息,请参阅 S3 文档元数据

您提供三条信息:

  • 实体应拥有的访问权限。您可以说ALLOWDENY

  • 实体的类型。您可以说USERGROUP

  • 在 中,将实体命名为 。

您最多可以在AccessControlList字段中添加 200 个条目。

Amazon WorkDocs 数据源的用户上下文筛选

使用 Amazon WorkDocs 数据源时, Amazon Kendra 会从该 Amazon WorkDocs 实例获取用户和群组信息。

群 Amazon WorkDocs 组和用户映射IDs如下:

  • _group_ids—群组IDs存在 Amazon WorkDocs 于设置了访问权限的文件中。它们是根据中组的名称映射出来的 Amazon WorkDocs。

  • _user_id—用户IDs存在 Amazon WorkDocs 于设置了访问权限的文件中。它们是根据中的用户名映射出来的 Amazon WorkDocs。

您最多可以在AccessControlList字段中添加 200 个条目。

Box 数据来源的用户上下文筛选

使用 Box 数据源时, Amazon Kendra 会从 Box 实例获取用户和群组信息。

Box 组和用户映射IDs如下:

  • _group_ids—群组IDs存在于 Box 中已设置访问权限的文件上。它们是从 Box 中群组的名称映射出来的。

  • _user_id—用户IDs存在于设置访问权限的文件的 Box 中。它们是从 Box 中的用户电子邮件IDs中映射出来的。

您最多可以在AccessControlList字段中添加 200 个条目。

Confluence 数据来源的用户上下文筛选

当您使用 Confluence 数据源时, Amazon Kendra 会从 Confluence 实例获取用户和群组信息。

您可以使用空间权限页面配置用户和群组对空间的访问权限。对于页面和博客,您可以使用限制页面。有关空间权限的更多信息,请参阅 Confluence Support 网站上的空间权限概述。有关页面和博客限制的更多信息,请参阅 Confluence Support 网站上的页面限制

Confluence 群组和用户名映射如下:

  • _group_ids-群组名称会出现在有限制的空间、页面和博客上。它们是根据 Confluence 中的群组名称映射出来的。群组名称始终为小写。

  • _user_id- 用户名出现在空间、页面或博客上有限制的地方。它们根据您使用的 Confluence 实例的类型进行映射。

    适用于 Confluence 连接程序 v1.0

    • 服务器-_user_id 是用户名。用户名始终为小写。

    • 云端-_user_id 是用户的账户 ID。

    适用于 Confluence 连接器 v2.0

    • 服务器-_user_id 是用户名。用户名始终为小写。

    • Cloud-_user_id 是用户的电子邮件 ID。

    重要

    要使用户上下文筛选功能在 Confluence 连接器上正常运行,您需要确保将获得 Confluence 页面访问权限的用户的可见性设置为“任何人”。有关更多信息,请参阅 Atlassian 开发者文档中的设置电子邮件可见性

您最多可以在AccessControlList字段中添加 200 个条目。

针对 Dropbox 数据来源的用户上下文筛选

当您使用 Dropbox 数据源时, Amazon Kendra 会从 Dropbox 实例中获取用户和群组信息。

群组和用户映射IDs如下:

  • _group_ids—群组IDs存在于 Dropbox 中已设置访问权限的文件上。它们是从 Dropbox 中群组的名称映射出来的。

  • _user_id—用户IDs存在于 Dropbox 中已设置访问权限的文件中。它们是从 Dropbox 中的用户电子邮件IDs中映射出来的。

您最多可以在AccessControlList字段中添加 200 个条目。

Drupal 数据来源的用户上下文筛选

当你使用 Drupal 数据源时, Amazon Kendra 会从 DrupalInstance 中获取用户和群组信息。

群组和用户映射IDs如下:

  • _group_ids— 在 Drupal 中,在设置了访问权限的文件上存在群IDs组。它们是根据Drupal中群组的名称映射出来的。

  • _user_id— 在 Drupal 中,用户IDs存在于设置了访问权限的文件上。它们是从用户电子邮件中映射出来的,就像IDs在Drupal中一样。

您最多可以在AccessControlList字段中添加 200 个条目。

GitHub 数据源的用户上下文筛选

当您使用 GitHub 数据源时, Amazon Kendra 会从该 GitHub 实例获取用户信息。

GitHub 用户映射IDs如下:

  • _user_id—用户IDs存在 GitHub 于设置了访问权限的文件中。它们是从用户电子邮件中映射出来IDs的 GitHub。

您最多可以在AccessControlList字段中添加 200 个条目。

Gmail 数据来源的用户上下文筛选

当你使用 Gmail 数据源时, Amazon Kendra 会从 Gmail 实例中获取用户信息。

用户映射IDs如下:

  • _user_id— 用户IDs存在于 Gmail 中已设置访问权限的文件上。它们是从用户电子邮件中映射出来的,就像在 Gmail IDs 中一样。

您最多可以在AccessControlList字段中添加 200 个条目。

筛选 Google 云端硬盘数据来源的用户上下文

Google Workspace 云端硬盘数据来源会返回谷歌云端硬盘用户和群组的用户和群组信息。组和域成员资格映射到_group_ids索引字段。Google 云端硬盘用户名将映射到该_user_id字段。

当您在中提供一个或多个用户电子邮件地址时 QueryAPI,仅返回与这些电子邮件地址共享的文档。以下AttributeFilter参数仅返回与“martha@example.com”共享的文档。

"AttributeFilter": { "EqualsTo":{ "Key": "_user_id", "Value": { "StringValue": "martha@example.com" } } }

如果您在查询中提供一个或多个群组电子邮件地址,则仅返回与群组共享的文档。以下AttributeFilter参数仅返回与“hr@example.com”群组共享的文档。

"AttributeFilter": { "EqualsTo":{ "Key": "_group_ids", "Value": { "StringListValue": ["hr@example.com"] } } }

如果您在查询中提供了域,则会返回与该域共享的所有文档。以下AttributeFilter参数返回与“example.com”域共享的文档。

"AttributeFilter": { "EqualsTo":{ "Key": "_group_ids", "Value": { "StringListValue": ["example.com"] } } }

您最多可以在AccessControlList字段中添加 200 个条目。

IBMDB2数据源的用户上下文筛选

使用IBMDB2数据源时, Amazon Kendra 会从源表的某一列中获取用户和组信息。您可以在控制台中指定此列,或者使用TemplateConfiguration对象作为控制台的一部分CreateDataSourceAPI。

IBMDB2数据库数据源有以下限制:

  • 您只能为数据库数据来源指定允许列表。您无法指定拒绝列表。

  • 您只能指定群组。您不能为允许列表指定单个用户。

  • 数据库列应是一个包含以分号分隔的组列表的字符串。

Jira 数据来源的用户上下文筛选

使用 Jira 数据源时, Amazon Kendra 会从 Jira 实例获取用户和群组信息。

Jira 用户的映射IDs如下所示:

  • _user_id—用户IDs存在于 Jira 中已设置访问权限的文件上。它们从用户电子邮件中映射为 Jira IDs 中的用户。

您最多可以在AccessControlList字段中添加 200 个条目。

Microsoft Exchange 数据来源的用户上下文筛选

当你使用微软 Exchange 数据源时, Amazon Kendra 会从微软 Exchange 实例获取用户信息。

微软 Exchange 用户映射IDs如下:

  • _user_id— 用户在 Microsoft Exchange 中IDs存在访问某些内容的权限。它们是从微软 Exchange IDs 中的用户名映射出来的。

您最多可以在AccessControlList字段中添加 200 个条目。

微软 OneDrive 数据源的用户上下文筛选

Amazon Kendra 在 Microsoft 为站点上的文档编制索引 OneDrive 时,会从 Microsoft 检索用户和群组信息。用户和群组信息取自托管的底层 Microsoft SharePoint 站点 OneDrive。

使用 OneDrive 用户或群组筛选搜索结果时,按如下方式计算 ID:

  1. 获取网站名称。例如,https://host.onmicrosoft.com/sites/siteName.

  2. 以网站名称的MD5哈希值为例。例如,430a6b90503eef95c89295c8999c7981

  3. 通过将MD5哈希值与竖线 (|) 和 ID 连接起来,创建用户电子邮件或群组 ID。例如,如果群组名称是 localGroupName “”,则群组 ID 将是:

    "430a6b90503eef95c89295c8999c7981 | localGroupName"

    注意

    在竖线前后各留一个空格。竖条用于用其MD5哈希值localGroupName进行标识。

    对于用户名“someone@host.onmicrosoft.com”,用户 ID 将如下所示:

    "430a6b90503eef95c89295c8999c7981 | someone@host.onmicrosoft.com"

调用 Q uery 时,将用户_user_id或群组 ID Amazon Kendra 作为或_group_id属性发送到API。例如,使用群组筛选搜索结果的 AWS CLI 命令如下所示:

aws kendra query \ --index-id index ID --query-text "query text" --attribute-filter '{ "EqualsTo":{ "Key": "_group_id", "Value": {"StringValue": "430a6b90503eef95c89295c8999c7981 | localGroupName"} }}'

您最多可以在AccessControlList字段中添加 200 个条目。

微软 OneDrive v2.0 数据源的用户上下文筛选

Microsoft OneDrive v2.0 数据源返回来自 OneDrive 访问控制列表 (ACL) 实体的分区和页面信息。 Amazon Kendra 使用 OneDrive 租户域连接到 OneDrive 实例,然后可以根据用户或群组对分区和文件名的访问权限筛选搜索结果。

对于标准对象,_user_id_group_id的使用方式如下:

  • _user_id— 你的 Microsoft OneDrive 用户电子邮件 ID 已映射到该_user_id字段。

  • _group_id— 你的 Microsoft OneDrive 群组电子邮件已映射到该_group_id字段。

您最多可以在AccessControlList字段中添加 200 个条目。

微软 SharePoint 数据源的用户上下文筛选

Amazon Kendra 在 Microsoft 为站点文档编制索引 SharePoint 时,会从 Microsoft 检索用户和群组信息。要根据用户或群组访问权限筛选搜索结果,请在致电时提供用户和群组信息QueryAPI。

要使用用户名进行筛选,请使用该用户的电子邮件地址。例如,johnstiles@example.com。

使用 SharePoint 群组筛选搜索结果时,按如下方式计算群组 ID:

对于本地团体

  1. 获取网站名称。例如,https://host.onmicrosoft.com/sites/siteName.

  2. 以网站名称的SHA256哈希值为例。例如,430a6b90503eef95c89295c8999c7981

  3. 通过将SHA256哈希值与竖线 (|) 和群组名称连接起来来创建群组 ID。例如,如果群组名为 localGroupName “”,则群组 ID 将是:

    "430a6b90503eef95c89295c8999c7981 | localGroupName"

    注意

    在竖线前后各留一个空格。竖条用于用其SHA256哈希值localGroupName进行标识。

调用查询时,将群组 ID Amazon Kendra 作为_group_id属性发送到API。例如,该 AWS CLI 命令如下所示:

aws kendra query \ --index-id index ID --query-text "query text" --attribute-filter '{ "EqualsTo":{ "Key": "_group_id", "Value": {"StringValue": "430a6b90503eef95c89295c8999c7981 | localGroupName"} }}'

适用于 AD 组

  1. 使用 AD 组 ID 配置搜索结果筛选。

调用查询时,将群组 ID Amazon Kendra 作为_group_id属性发送到API。例如,该 AWS CLI 命令如下所示:

aws kendra query \ --index-id index ID --query-text "query text" --attribute-filter '{ "EqualsTo":{ "Key": "_group_id", "Value": {"StringValue": "AD group"} }}'

您最多可以在AccessControlList字段中添加 200 个条目。

微软SQL服务器数据源的用户上下文筛选

当你使用 Microsoft SQL Server 数据源时, Amazon Kendra 会从源表中的一列中获取用户和组信息。您可以在控制台中指定此列,或者使用TemplateConfiguration对象作为控制台的一部分CreateDataSourceAPI。

Microsoft SQL 服务器数据库数据源有以下限制:

  • 您只能为数据库数据来源指定允许列表。您无法指定拒绝列表。

  • 您只能指定群组。您不能为允许列表指定单个用户。

  • 数据库列应是一个包含以分号分隔的组列表的字符串。

Microsoft 团队数据来源的用户上下文筛选

Amazon Kendra 在为文档编制索引时,会从 Microsoft Teams 检索用户信息。用户信息取自底层的 Microsoft Teams 实例。

您最多可以在AccessControlList字段中添加 200 个条目。

Microsoft Yammer 数据来源的用户上下文筛选

Amazon Kendra 在为文档编制索引时,会从 Microsoft Yammer 中检索用户信息。用户和群组信息取自底层的 Microsoft Yammer 实例。

微软 Yammer 用户映射IDs如下:

  • _email_id— 映射到该_user_id字段的 Microsoft 电子邮件 ID。

您最多可以在AccessControlList字段中添加 200 个条目。

“我的SQL数据源” 的用户上下文筛选

使用 “我的SQL数据源” 时, Amazon Kendra 会从源表的某一列中获取用户和群组信息。您可以在控制台中指定此列,或者使用TemplateConfiguration对象作为控制台的一部分CreateDataSourceAPI。

“我的SQL数据库” 数据源有以下限制:

  • 您只能为数据库数据来源指定允许列表。您无法指定拒绝列表。

  • 您只能指定群组。您不能为允许列表指定单个用户。

  • 数据库列应是一个包含以分号分隔的组列表的字符串。

筛选 Oracle 数据库数据来源的用户上下文

使用 Oracle 数据库数据源时, Amazon Kendra 会从源表中的一列中获取用户和组信息。您可以在控制台中指定此列,或者使用TemplateConfiguration对象作为控制台的一部分CreateDataSourceAPI。

Oracle 数据库数据来源具有以下限制:

  • 您只能为数据库数据来源指定允许列表。您无法指定拒绝列表。

  • 您只能指定群组。您不能为允许列表指定单个用户。

  • 数据库列应是一个包含以分号分隔的组列表的字符串。

Postgre SQL 数据源的用户上下文筛选

使用 Postgre SQL 数据源时, Amazon Kendra 会从源表中的一列中获取用户和群组信息。您可以在控制台中指定此列,或者使用TemplateConfiguration对象作为控制台的一部分CreateDataSourceAPI。

Postgre SQL 数据库数据源具有以下限制:

  • 您只能为数据库数据来源指定允许列表。您无法指定拒绝列表。

  • 您只能指定群组。您不能为允许列表指定单个用户。

  • 数据库列应是一个包含以分号分隔的组列表的字符串。

Quip 数据来源的用户上下文筛选

使用 Quip 数据源时, Amazon Kendra 会从 Quip 实例获取用户信息。

Quip 用户的映射IDs如下所示:

  • _user_id—用户IDs存在于 Quip 中已设置访问权限的文件上。它们是从 Quip 中的用户电子邮件IDs中映射出来的。

您最多可以在AccessControlList字段中添加 200 个条目。

Salesforce 数据来源的用户上下文筛选

Salesforce 数据源从 Salesforce 访问控制列表 (ACL) 实体返回用户和群组信息。您可以将用户上下文筛选应用于 Salesforce 标准对象和聊天提要。用户上下文筛选不适用于 Salesforce 知识文章。

如果您将任何 Salesforce 字段映射到 Amazon Kendra 文档标题和文档正文字段,Amazon Kendra 将在搜索响应中使用文档标题和正文字段中的数据。

对于标准对象,_user_id_group_ids的使用方式如下:

  • _user_id- Salesforce 用户的用户名。

  • _group_ids

    • Salesforce 的名字 Profile

    • Salesforce 的名字 Group

    • Salesforce 的名字 UserRole

    • Salesforce 的名字 PermissionSet

对于 chatter Feed,_user_id_group_ids的使用方式如下:

  • _user_id- Salesforce 用户的用户名。仅当该项目发布在用户的 Feed 中时才可用。

  • _group_ids—群组IDs的使用方式如下。仅当 Feed 项目在聊天或协作群组中发布时才可用。

    • 聊天群组或协作群组的名称。

    • 如果该群组是公开的,PUBLIC:ALL.

您最多可以在AccessControlList字段中添加 200 个条目。

ServiceNow 数据来源的用户上下文筛选

只有 TemplateConfiguration API和 ServiceNow Connec ServiceNow tor v2.0 支持用户上下文筛选。 ServiceNowConfigurationAPI和 Con ServiceNow nector v1.0。不支持用户上下文筛选。

使用 ServiceNow 数据源时, Amazon Kendra 会从该 ServiceNow 实例获取用户和群组信息。

群组和用户映射IDs如下:

  • _group_ids—群组IDs存在 ServiceNow 于设置了访问权限的文件中。它们是根据中的角色名称映射而来sys_ids的 ServiceNow。

  • _user_id—用户IDs存在 ServiceNow 于设置了访问权限的文件中。它们是从用户电子邮件中映射出来IDs的 ServiceNow。

您最多可以在AccessControlList字段中添加 200 个条目。

Slack 数据来源的用户上下文筛选

当你使用 Slack 数据源时, Amazon Kendra 会从 Slack 实例中获取用户信息。

Slack 用户映射IDs如下:

  • _user_id—用户IDs存在于 Slack 中设置访问权限的消息和频道上。它们是从用户电子邮件中映射出来的,就像在 Slack IDs 中一样。

您最多可以在AccessControlList字段中添加 200 个条目。

Zendesk 数据来源的用户上下文筛选

当你使用 Zendesk 数据源时, Amazon Kendra 会从 Zendesk 实例中获取用户和群组信息。

群组和用户映射IDs如下:

  • _group_ids—群组IDs存在于设置访问权限的 Zendesk 工单和文章中。它们是从 Zendesk 中的群组名称映射出来的。

  • _user_id—群组IDs存在于设置访问权限的 Zendesk 工单和文章中。它们是从用户电子邮件中映射出来的,就像IDs在 Zendesk 中一样。

您最多可以在AccessControlList字段中添加 200 个条目。