ServiceNow Knowledge Microsoft Graph 连接器

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

还可以参考 此视频 详细了解 Graph 连接器在管理搜索权限方面的功能。

本文适用于 Microsoft 365 管理员或配置、运行和监视 ServiceNow Knowledge Graph 连接器的任何人。 它补充了Microsoft 365 管理中心中设置 Microsoft Graph 连接器一文中提供的一般说明。 如果尚未执行此操作,请阅读整个设置 Graph 连接器一文,了解常规设置过程。

下面列出了安装过程中的每个步骤,以及一条说明,指示应遵循常规设置说明或仅适用于 ServiceNow 连接器的其他说明,包括有关 故障排除限制的信息。

必需和可选设置

为了帮助你快速开始使用 Microsoft Graph 连接器,设置过程中的步骤分为两组:

强制设置 - 必须为这些步骤提供一些输入才能建立连接。 输入 (连接名称、数据源设置等 ) 因组织的上下文和用例而异。

高级设置 (可选) - 顾名思义,高级设置是可选步骤。 为方便起见,设置过程中的这些设置会根据管理员进行的最常见选择使用默认值进行预配置。 可以选择接受默认值或修改它们以满足组织的需求。

入门

添加 ServiceNow 知识连接器

(有关详细信息,请参阅常规 设置说明)

强制设置

1. 名称 & ID:

连接 ID:根据需要编辑连接 ID, (预填充默认的唯一字符串) 。 单击 “保存并继续” 按钮后,无法对其进行编辑。

名称:输入连接的名称 (预填充了默认名称) 。 即使连接发布) ,你也始终可以在以后 (对其进行编辑。

“名称 & ID”字段的屏幕截图。

2. 数据源设置:

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

数据源设置的屏幕截图。

除了此 URL,还需要一个 服务帐户 来设置与 ServiceNow 的连接,并允许 Microsoft 搜索根据刷新计划定期更新知识文章。 服务帐户需要对以下 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 Microsoft Graph 连接器可以编制知识文章和用户条件权限的索引,而无需高级脚本。 如果用户条件包含高级脚本,则搜索结果中将隐藏所有相关知识文章。

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

  • 基本身份验证

  • ServiceNow OAuth (建议)

  • Microsoft Entra ID OpenID Connect

    1. 基本身份验证

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

    2. ServiceNow OAuth

    若要使用 ServiceNow OAuth 进行身份验证,请执行以下步骤。

    ServiceNow 管理员需要在 ServiceNow 实例中预配终结点,以便 Microsoft 搜索应用可以访问它。 若要了解详细信息,请参阅 ServiceNow 文档中 的为客户端创建终结点以访问实例

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

    字段 说明 建议的值
    名称 标识需要为其进行 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 帐户凭据对爬网权限进行身份验证。 该帐户至少应具有 知识 角色。 请参阅 步骤 2:数据源设置 开头的表,以提供对更多 ServiceNow 表记录的读取访问权限和索引用户条件权限。

    3. 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 帐户的说明,即 向用户分配角色。 请参阅 步骤 2:数据源设置 开头的表,以提供对更多 ServiceNow 表记录的读取访问权限和索引用户条件权限。

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

3.访问权限

ServiceNow 连接器支持对 “所有人 ”或 “只有有权访问此数据源的人员”可见的访问权限。 索引数据显示在搜索结果中,并且对组织中的所有用户或通过用户条件权限有权访问这些数据的用户可见。 如果未使用用户条件启用知识文章,则该文章将显示在组织中每个人的搜索结果中。

显示访问权限的屏幕截图。

若要访问 ServiceNow 中的知识库文章,用户需要项目级权限和 KB 级权限。 使用 ServiceNow 知识库连接器时,如果没有项目级限制,则会应用知识库级权限。 但是,如果存在项目级限制,则它们优先于知识库级限制。

重要

  • 连接器支持不使用高级脚本的默认用户条件权限。 当连接器遇到具有高级脚本的用户条件时,使用该用户条件的所有数据都不会显示在搜索结果中。
  • 连接器不应用知识库级权限和项目级权限的交集,而是直接应用项目级权限。

如果选择“仅有权访问此数据源的人员”,则需要进一步选择 ServiceNow 实例具有Microsoft Entra ID预配用户还是非 AAD 用户。

若要确定哪个选项适合你的组织,请执行以下操作:

  1. 如果 ServiceNow 用户的Email ID 与 Microsoft Entra ID 中用户的 UserPrincipalName (UPN) 相同,请选择“Microsoft Entra ID”选项
  2. 如果 ServiceNow 用户的电子邮件 ID 与 Microsoft Entra ID 中用户的 UserPrincipalName (UPN) 不同,请选择“非 AAD”选项。

注意

  • 如果选择Microsoft Entra ID作为标识源的类型,连接器会将从 ServiceNow 获取的用户的Email ID 直接映射到Microsoft Entra ID的 UPN 属性。
  • 如果为标识类型选择“非 AAD”,请参阅 映射非 Azure AD 标识 以获取有关映射标识的说明。 可以使用此选项提供从 Email ID 到 UPN 的映射正则表达式。
  • 汇报管理访问权限的用户或组仅在完全爬网中同步。 增量爬网当前不支持处理权限更新。

高级设置 (可选)

1. 选择属性

在此步骤中,可以在 ServiceNow 数据源中添加或删除可用属性。 默认情况下,Microsoft 365 会选择几个属性。

显示如何选择属性的屏幕截图。

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

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

2. 映射标识

在此步骤中,可以映射Microsoft Entra ID和非Microsoft Entra ID标识类型的标识。

  • 如果选择Microsoft Entra ID作为标识源的类型,连接器会将从 ServiceNow 获取的用户的Email ID 直接映射到Microsoft Entra ID的 UPN 属性。
  • 如果为标识类型选择“非 AAD”,请参阅 映射非 Azure AD 标识 以获取有关映射标识的说明。

3. 分配属性标签

按照常规 设置说明进行操作

4.管理架构

按照常规 设置说明进行操作

5.刷新设置

按照常规 设置说明进行操作

注意

对于标识,将仅应用计划的完全爬网。

查看 & 发布

按照常规 设置说明进行操作

发布连接后,需要自定义搜索结果页。 若要了解如何自定义搜索结果,请参阅 自定义搜索结果页

限制

重要

ServiceNow Knowledge Microsoft Graph 连接器在其最新版本中具有以下限制:

  • 只有“管理搜索权限”步骤下有权访问此数据源功能的人员仅处理用户条件权限。 搜索结果中不应用任何其他类型的访问权限。
  • 当前版本中不支持具有高级脚本的用户条件。 对具有此类访问限制的任何知识文章编制索引,并拒绝所有人访问,也就是说,在我们支持他们之前,它们不会出现在任何用户的搜索结果中。

疑难解答

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

1. 由于启用了单个 Sign-On ServiceNow 实例而无法登录

如果组织已启用 ServiceNow 的单 Sign-On (SSO) ,则可能无法使用服务帐户登录。 可以通过将 添加到 login.do ServiceNow 实例 URL 来显示基于用户名和密码的登录名。 例子。 https://<your-organization-domain>.service-now.com./login.do

2. 未经授权或禁止对 API 请求的响应

2.1. 检查表访问权限

如果在连接状态中看到禁止或未经授权的响应,检查服务帐户是否对步骤 2:数据源设置中提到的表具有所需的访问权限。 检查表中的所有列是否都具有读取访问权限。

2.2. 更改帐户密码

Microsoft Graph 连接器使用代表服务帐户提取的访问令牌进行爬网。 访问令牌每 12 小时刷新一次。 确保发布连接后不会更改服务帐户密码。 如果密码发生更改,可能需要重新对连接进行身份验证。

2.3. 检查 ServiceNow 实例是否位于防火墙后面

如果 Microsoft Graph 连接器位于网络防火墙后面,则可能无法访问 ServiceNow 实例。 需要显式允许访问连接器服务。 可以在下表中找到连接器服务的公共 IP 地址范围。 根据租户区域,将其添加到 ServiceNow 实例网络允许列表。

环境 Region 区域
PROD 北美 52.250.92.252/30, 52.224.250.216/30
PROD 欧洲 20.54.41.208/30, 51.105.159.88/30
PROD 亚太地区 52.139.188.212/30, 20.43.146.44/30

2.4. 访问权限未按预期工作

如果观察到应用于搜索结果的访问权限存在差异,请在 管理对知识库和文章的访问时验证用户条件的访问流程图。

3. 更改知识文章的 URL,以在支持门户中查看它

ServiceNow 知识连接器使用 格式sys_id <instance_url>/kb_view.do?sys_kb_id<sysId> 计算 AccessUrl 属性。 它会在后端系统视图中打开知识文章。 如果希望将文章重定向到其他 URL,请按照以下说明进行操作。

3.1 编辑结果类型

Microsoft 365 管理中心的“搜索 & 智能”部分中的“自定义”选项卡中,导航到编辑为 ServiceNow Knowledge 连接配置的结果类型。 编辑结果类型

打开“编辑结果类型”对话框时,单击“结果布局”部分旁边的“ 编辑 ”。 编辑结果布局

3.2 查找项目块

查找包含具有 shortDescriptionAccessUrl 值的文本属性的项目块。

结果类型中的编辑项目块

3.3 编辑 AccessUrl 属性

若要更改目标 URL,请 AccessUrl 编辑 items 块中的 text 属性部分。 例如,如果 ServiceNow Knowledge 文章应重定向到 https://contoso.service-now.com/sp 服务 URL 门户前缀, sp 请按照以下步骤操作。

原始值 新值
"[{shortdescription}]({AccessUrl})" "[{shortdescription}](https://contoso.service-now.com/sp?id=kb_article_view&sysparm_article={number})"

其中 number 是知识文章编号属性。 在创建连接期间,应在“管理架构”屏幕中将其标记为 “检索 ”。

完成查看结果类型更新并点击“ 提交”。 请一两分钟来选取更改。 搜索结果现在应重定向到所需的 URL。

4. 仅有权访问此数据源权限的人员 的问题

4.1 无法选择“仅有权访问此数据源的人员

如果服务帐户没有对步骤 2:数据源设置中所需表的读取权限,则可能无法选择“仅有权访问此数据源的人员”选项。 检查服务帐户是否可以读取 索引和支持用户条件权限 功能下提到的表。

4.2 用户映射失败

Microsoft Entra ID中没有 M365 用户的 ServiceNow 用户帐户将不会映射。 非用户服务帐户应会失败用户映射。 可以在连接详细信息窗口中的标识统计信息区域中访问的用户映射失败次数。 可以从“错误”选项卡下载失败的用户映射日志。

5. 用户条件访问流的问题

如果在 ServiceNow 和 Microsoft 搜索的用户条件验证中看到差异,请将系统属性设置为 glide.knowman.block_access_with_no_user_criteriano

如果你有任何其他问题或想要提供反馈,请写信给我们 aka.ms/TalkToGraphConnectors