ServiceNow Knowledge Microsoft Graph 连接器

使用适用于 ServiceNow 的 Microsoft Graph 连接器,组织可以编制所有用户可见或受组织内用户条件权限限制的知识库文章的索引。 从 ServiceNow 配置连接器和索引内容后,最终用户可以在 Microsoft Copilot 和任何Microsoft搜索客户端中搜索这些文章。

本文适用于 Microsoft 365 管理员或配置、运行和监视 ServiceNow Knowledge Graph 连接器的任何人。

功能

  • 为所有类型的知识文章编制索引
  • 使最终用户能够提出与 Copilot 中的 IT/HR 工作流相关的问题。
    • 如何请求新设备?
    • 如何创建新的 VPN 连接?
    • 如何实现申请叶子?
  • Copilot 中使用语义搜索 ,使用户能够根据关键字、个人偏好和社交关系查找相关内容。

限制

  • 不支持 高级脚本
  • 如果同时定义了“知识库”和“知识库文章”级别权限,则仅遵循文章级权限。
  • 不为附件编制索引。

先决条件

  • ServiceNow 实例 URL:若要连接到 ServiceNow 数据,需要组织的 ServiceNow 实例 URL。 组织的 ServiceNow 实例 URL 通常类似于 https://your-organization-name.service-now.com。 (没有? 检查如何创建测试实例)

  • 服务帐户:若要连接到 ServiceNow 并允许 Microsoft Graph 连接器定期更新知识文章,需要一个对特定 ServiceNow 表记录具有读取权限的服务帐户。 服务帐户需要对以下 ServiceNow 表记录 的读取访问权限才能成功对各种实体进行爬网。

    功能 需要读取访问权限的表 说明
    每个人都可用的知识文章编制索引 kb_knowledge 对于爬网知识文章
    索引和支持用户条件权限 kb_uc_can_read_mtom 谁可以阅读此知识库
    kb_uc_can_contribute_mtom 谁可以参与此知识库
    kb_uc_cannot_read_mtom 谁无法阅读此知识库
    kb_uc_cannot_contribute_mtom 谁无法参与此知识库
    sys_user 读取用户表
    sys_user_has_role 读取用户的角色信息
    sys_user_grmember 读取用户的组成员身份
    user_criteria 读取用户条件权限
    kb_knowledge_base 读取知识库信息
    sys_user_group 读取用户组段
    sys_user_role 读取用户角色
    cmn_location 读取位置信息
    cmn_department 读取部门信息
    core_company 读取公司属性
    索引扩展表属性 (可选) sys_db_object 读取扩展表详细信息
    sys_dictionary 读取扩展表属性

    可以为用于连接Microsoft搜索的服务帐户 创建和分配角色了解如何为 ServiceNow 帐户分配角色。 可以对创建的角色分配对表的读取访问权限。 若要了解如何设置对表记录的读取访问权限,请参阅 保护表记录

    如果要为扩展表的属性编制索引kb_knowledge,请提供对sys_dictionary和sys_db_object的读取访问权限。 对这些表的访问是可选的。 可以 索引kb_knowledge 表属性,而无法访问另外两个表。

入门

显示适用于 ServiceNow Knowledge 的 Microsoft Graph 连接器的连接创建屏幕的屏幕截图

1. 显示名称

显示名称用于标识 Copilot 中的每个引用,帮助用户轻松识别关联的文件或项。 显示名称还表示受信任的内容。 显示名称也用作 内容源筛选器。 此字段存在默认值,但你可以将其自定义为组织中的用户可识别的名称。

2. ServiceNow URL

若要连接到 ServiceNow 数据,需要组织的 ServiceNow 实例 URL。 组织的 ServiceNow 实例 URL 通常类似于 https://your-organization-name.service-now.com

3.身份验证类型

若要对 ServiceNow 中的内容进行身份验证和同步,请选择 三种受支持的方法之一

a. 基本身份验证
输入具有 知识 角色的 ServiceNow 帐户的用户名和密码,以便对实例进行身份验证。

b. ServiceNow OAuth (推荐)

[单击展开]若要使用 ServiceNow OAuth 进行身份验证,请执行以下步骤。
ServiceNow 管理员需要在 ServiceNow 实例中预配终结点,以便 Graph 连接器可以访问它。 若要了解详细信息,请参阅 ServiceNow 文档中的[创建客户端访问实例的终结点] (https://docs.servicenow.com/bundle/vancouver-platform-security/page/administer/security/task/t_CreateEndpointforExternalClients.html) 。

下表提供了有关如何填写终结点创建表单的指导:

字段 说明 建议的值
名称 标识需要为其进行 OAuth 访问的应用程序的唯一值。 Microsoft 搜索
客户端 ID 应用程序自动生成的只读唯一 ID。 实例在请求访问令牌时使用客户端 ID。 不适用
客户端密码 通过此共享机密字符串,ServiceNow 实例和Microsoft搜索授权彼此通信。 遵循安全最佳做法,将机密视为密码。
重定向 URL 授权服务器重定向到的所需回调 URL。 对于 M365 企业版:https:// gcs.office。com/v1.0/admin/oauth/callback,
适用于 M365 政府版:https:// gcsgcc.office。com/v1.0/admin/oauth/callback
徽标 URL 一个 URL,其中包含应用程序徽标的图像。 不适用
活动 选择“检查”框,使应用程序注册表处于活动状态。 设置为活动
刷新令牌生存期 刷新令牌有效的秒数。 默认情况下,刷新令牌在 100 天后过期 (8,640,000 秒) 。 31,536,000 (一年)
访问令牌生存期 访问令牌有效的秒数。 43,200 (12 小时)

输入客户端 ID 和客户端密码以连接到实例。 连接后,使用 ServiceNow 帐户凭据对爬网权限进行身份验证。 该帐户至少应具有 知识 角色。 有关提供对更多 ServiceNow 表记录的读取访问权限和索引用户条件权限,请参阅 先决条件 部分中的服务帐户下提及的表。


c. Microsoft Entra ID OpenID Connect

若要使用 Microsoft Entra ID OpenID Connect 进行身份验证,请执行以下步骤。

  1. 在 Microsoft Entra ID 中注册新应用程序

    若要了解如何在 Microsoft Entra ID 中注册新应用程序,请参阅注册应用程序。 选择“单租户组织目录”。 不需要重定向 URI。 注册后,记下应用程序 (客户端) ID 和目录 (租户) ID。

  2. 创建客户端密码

    若要了解如何创建客户端密码,请参阅 创建客户端密码。 记下客户端密码。

  3. 检索服务主体对象标识符

    按照步骤检索服务主体对象标识符

    1. 运行 PowerShell。

    2. 使用以下命令安装Azure PowerShell。

      Install-Module -Name Az -AllowClobber -Scope CurrentUser
      
    3. 连接到 Azure。

      Connect-AzAccount
      
    4. 获取服务主体对象标识符。

      Get-AzADServicePrincipal -ApplicationId "Application-ID"
      

      将“Application-ID”替换为应用程序 (客户端) ID (,而不用引号) 步骤 1 中注册的应用程序。 记下 PowerShell 输出中的 ID 对象的值。 它是服务主体 ID。

      现在,你已获得Azure 门户所需的所有信息。 下表提供了信息的快速摘要。

      属性 说明
      目录 ID (租户 ID) 步骤 3.a 中Microsoft Entra租户的唯一 ID。
      应用程序 ID (客户端 ID) 在步骤 3.a 中注册的应用程序的唯一 ID。
      客户端密码 应用程序密钥 (步骤 3.b) 。 将其视为密码。
      服务主体 ID 作为服务运行的应用程序的标识。 步骤 3.c) 中的 (
  4. 注册 ServiceNow 应用程序

    ServiceNow 实例需要以下配置:

    1. 注册新的 OAuth OIDC 实体。 若要了解,请参阅 创建 OAuth OIDC 提供程序

    2. 下表提供了有关如何填写 OIDC 提供程序注册表单的指导

      字段 说明 建议的值
      名称 标识 OAuth OIDC 实体的唯一名称。 Microsoft Entra ID
      客户端 ID 在第三方 OAuth OIDC 服务器中注册的应用程序的客户端 ID。 实例在请求访问令牌时使用客户端 ID。 步骤 3.a 中的应用程序 (客户端) ID
      客户端密码 在第三方 OAuth OIDC 服务器中注册的应用程序的客户端密码。 步骤 3.b 中的客户端密码

      所有其他值都可以为默认值。

    3. 在 OIDC 提供程序注册表单中,需要添加新的 OIDC 提供程序配置。 选择 “OAuth OIDC 提供程序配置 ”字段的搜索图标,打开 OIDC 配置的记录。 选择 新建。

    4. 下表提供了有关如何填写 OIDC 提供程序配置表单的指导

      字段 建议的值
      OIDC 提供程序 Microsoft Entra ID
      OIDC 元数据 URL URL 的格式必须为 https://login.microsoftonline.com/<tenandId“>/.well-known/openid-configuration
      将“tenantID”替换为步骤 3.a 中的目录 (租户) ID。
      OIDC 配置缓存生存期 120
      应用程序 全球
      用户声明
      用户字段 用户 ID
      启用 JTI 声明验证 Disabled
    5. 选择“提交并更新 OAuth OIDC 实体”窗体。

  5. 创建 ServiceNow 帐户

    请参阅有关创建 ServiceNow 帐户和 在 ServiceNow 中创建用户的说明。

    下表提供了有关如何填写 ServiceNow 用户帐户注册的指导

    字段 建议的值
    用户 ID 步骤 3.c 中的服务主体 ID
    仅限 Web 服务访问 Checked

    所有其他值都可以保留为默认值。

  6. 为 ServiceNow 帐户启用知识角色

    访问使用 ServiceNow 主体 ID 作为用户 ID 创建的 ServiceNow 帐户,并分配知识角色。 可在此处找到将角色分配给 ServiceNow 帐户的说明,即 向用户分配角色。 有关提供对更多 ServiceNow 表记录的读取访问权限和索引用户条件权限,请参阅 先决条件 部分中的服务帐户下提及的表。

    使用应用程序 ID 作为步骤 3.1) 中的客户端 ID (,使用管理中心配置向导中的步骤 3.2) 中的客户端机密 (,使用 Microsoft Entra ID OpenID Connect 向 ServiceNow 实例进行身份验证。

4. 向有限受众推出

如果要先在 Copilot 和其他搜索图面中验证此连接,然后再将此连接部署到有限的用户群,然后再将它扩展到更广泛的受众。 若要了解有关有限推出的详细信息, 请单击此处

此时,已准备好为 ServiceNow Knowledge 创建连接。 可以单击“创建”按钮,Microsoft Graph 连接器将从 ServiceNow 帐户开始为文章编制索引。

对于其他设置,如访问权限、数据包含规则、架构、爬网频率等,我们已根据最适合 ServiceNow 数据的方式设置默认值。 可以看到以下默认值:

用户  
访问权限 仅有权访问数据源中内容的人员。
映射标识 使用 Microsoft Entra ID 映射的数据源标识。
内容  
查询字符串 active=true^workflow_state=published
管理属性 若要检查默认属性及其架构,请单击此处
同步  
增量爬网 频率:每 15 分钟
完全爬网 频率:每天

如果要编辑这些值中的任何一个,需要选择“自定义设置”选项。

适用于 ServiceNow Knowledge 的 Microsoft Graph 连接器入门

自定义设置

自定义设置适用于想要编辑上表中列出的设置的默认值的管理员。 单击“自定义设置”选项后,会看到另外三个选项卡 - 用户、内容和同步。

用户

显示“用户”选项卡的屏幕截图,可在其中配置访问权限和用户映射规则

访问权限

ServiceNow 连接器支持对“每个人”或“只有有权访问数据源中内容的人员”可见的访问权限。 索引数据显示在结果中,并且对组织中的所有用户或通过用户条件权限有权访问这些数据的用户可见。 选择最适合你的组织的一个。

如果未使用用户条件启用知识文章,则该文章会显示在组织中每个人的结果中。

重要

在 ServiceNow 中,在评估用户的读取权限时,将同时查看文章级权限和 KB 级权限。 ServiceNow 的 Microsoft Graph 连接器对权限的处理方式不同:

  1. 如果项目包含“可读取”用户条件,则在引入期间,它们将标记在文章上,并忽略知识库“可读取”/“Can Contribute”用户条件。
  2. 如果项目包含“无法读取”用户条件,并且相应的知识库也包含“无法读取”用户条件,则两个用户条件都标记在项目上。

注意

如果用户是文章级别的“可阅读”用户条件的一部分,但不在知识库级别的“可阅读”/“可以参与”用户条件中,则该用户将无权访问 ServiceNow 中的文章,但有权访问Microsoft Copilot、Microsoft搜索和其他 M365 图面中的文章。 解决方法是从文章级别的“可读”用户条件中删除用户。

映射标识

使用 Microsoft Entra ID 映射数据源标识的默认方法是检查 ServiceNow 用户的Email ID 是否与 UserPrincipalName (UPN) 相同,还是与 Microsoft Entra ID 用户的邮件相同。 如果你认为默认映射不适用于你的组织,则可以提供自定义映射公式。 若要详细了解映射非 EntraID 标识, 请单击此处

内容

显示“内容”选项卡的屏幕截图,可在其中配置“查询字符串”和“属性

查询字符串

在此处选择的属性列表可能会影响如何在 Copilot for Microsoft 365 中筛选、搜索和查看结果。

Source 属性 Label 说明
AccessUrl url 数据源中项的目标 URL。
作者 authors 所有在数据源中参与/协作处理项的人员的姓名。
IconUrl iconUrl 表示项目类别或类型的图标 URL。
Short_description title 要在搜索和其他体验中显示的项的标题。
SysUpdatedBy lastModifiedBy 数据源中项的最近编辑者的姓名。
SysUpdatedOn lastModifiedDateTime 上次在数据源中修改项的日期和时间。
SysCreatedBy createdBy 数据源中项创建者的姓名。
SysCreatedOn createdDateTime 在数据源中创建项的日期和时间。

使用 ServiceNow 查询字符串,可以指定同步项目的条件。 它类似于 SQL Select 语句中的 Where 子句。 例如,可以选择仅为已发布和处于活动状态的项目编制索引。 若要了解如何创建自己的查询字符串,请参阅 使用筛选器生成编码的查询字符串

管理属性

在这里,可以在 ServiceNow 数据源中添加或删除可用属性,将架构分配给属性 (定义属性是否可搜索、可查询、可检索或可优化) ,更改语义标签并向属性添加别名。 下面列出了默认选择的属性。

Source 属性 标签 说明 架构
AccessURL url 数据源中的项的目标 URL 取回
活动
ArticleType
作者 authors 为数据源中的项目参与/协作的所有人员命名 搜索、查询、检索
CanReadUserCriteria
CannotReadUserCriteria
内容
EntityType
IconURL iconUrl 表示项目类别或类型的图标 URL。 取回
KbKnowledgeBase
数字 取回
PreviewContent 取回
Short_description title 要在 Copilot 和其他搜索体验中显示的项的标题 搜索、检索
SysCreatedBy createdBy 数据源中项创建者的姓名。 取回
SysCreatedOn CreatedDateTime 在数据源中创建项的数据和时间 取回
SysUpdatedBy lastModifiedBy 数据源中项的最近编辑者的姓名。 取回
SysUpdatedOn lastModifiedDateTime 上次在数据源中修改项的日期和时间。 取回
WorkflowState 取回

预览数据

使用预览结果按钮验证所选属性和查询筛选器的示例值。

显示“预览数据”选项的屏幕截图,用于检查查询筛选器和已配置

同步

显示“同步”选项卡的屏幕截图,可在其中配置爬网频率

刷新间隔确定数据在数据源和 Graph 连接器索引之间同步的频率。 有两种类型的刷新间隔 - 完全爬网和增量爬网。 有关更多详细信息, 请单击此处

如果需要,可以从此处更改刷新间隔的默认值。

读取和拒绝访问 Microsoft Graph 连接器 for ServiceNow 中的知识库文章

[单击展开]下面是连接器如何根据 ServiceNow Knowledge 中的用户条件处理访问权限的场景说明:

注意

下表中使用的术语:

  • 无条件:未为文章或知识库定义用户条件。 (不同于空条件,其中定义了用户条件,但在条件中,所有字段都为空)
  • 默认用户条件:使用 ServiceNow 字段(如用户、组、角色、位置、部门等)定义的用户条件。
  • 空条件:所有字段都有空值的用户画面。

如何确定读取访问权限

知识库   知识文章 Access
可读取 可以参与 可读取
任何条件 任何条件 默认用户条件 遵循的默认用户条件
任何条件 任何条件 默认 + 高级条件 遵循的默认用户条件。 忽略高级条件。
任何条件 任何条件 空条件 + 任何条件 向每个 ServiceNow 用户提供的访问权限
默认用户条件 默认用户条件 无条件 遵循的默认用户条件。 [注意:如果不存在“无法参与”用户条件,则遵循“可读取”和“Can Contribute”中的默认条件。 但是,如果存在“无法参与”用户条件,则不会标记“Can Contribute”用户条件。]
默认 + 高级条件 默认 + 高级条件 无条件 遵循的默认用户条件。 忽略高级条件。
空条件 任何条件 无条件 向每个 ServiceNow 用户提供的访问权限

如何确定拒绝访问

知识库 知识文章 Access
无法读取 无法读取
默认用户条件 默认用户条件 同时遵循基本和文章级别的条件。
高级条件 任何条件 拒绝所有人访问。
任何条件 高级条件 拒绝所有人访问。
空条件 + 默认用户条件 任何条件 拒绝所有人访问。
任何条件 空条件 拒绝所有人访问。

疑难解答

发布连接后,可以在管理中心的“数据源”选项卡下查看状态。 若要了解如何进行更新和删除,请参阅 管理连接器。 可 在此处找到常见问题的故障排除步骤。

如果遇到问题或想要提供反馈,请联系 Microsoft Graph |支持