ServiceNow 数据连接器

若要设置 ServiceNow CMDB 集成,需要提供 ServiceNow 实例的主机名和有效凭据。 连接器支持基本身份验证和 OAuth 2.0 作为只读访问的身份验证选项。 基本身份验证需要用户名和密码才能进行连接,OAuth 2.0 基于授予客户端凭据。

注意

ServiceNow 连接器支持基本身份验证和 OAuth 2.0 (客户端凭据授予) 。 我们建议创建一个专用用户,以便在具有最低特权 (cmdb_read) 角色分配的公开管理中的数据连接器中使用。

使用基本身份验证配置 ServiceNow

  1. 查找 ServiceNow 实例的主机名。 例如,“contoso.service-now.com”。  
  2. 创建新的 ServiceNow 用户:
    1. 按照 此处 的步骤创建新用户。
    2. 请将 用户名 (用户 ID) 和密码 保留,以供将来使用。
    3. 如果没有密码字段,请提交表单以创建用户。 之后,选择新用户时,将收到 “设置密码” 选项。
    4. 创建用户时,检查“仅访问 Web 服务”框,以便用户将专用于此集成。
  3. cmdb_read 角色分配给已创建的用户。 可 在此处找到详细说明。

配置 OAuth 2.0 身份验证 (客户端凭据流)

使用 OAuth 2.0 客户端凭据可避免存储长期密码,并符合新式身份验证标准。

先决条件

  1. 创建 (或标识至少具有cmdb_read角色的 ServiceNow 用户) 。 有关创建 ServiceNow 用户和分配角色的详细说明,请参阅 使用基本身份验证配置 ServiceNow 部分。 建议使用专用集成用户;仅当需要安装插件时,才暂时需要管理员。
  2. 请验证是否已安装这些插件, (导航到 sys_plugins.list) :
    • OAuth 2.0 (com.snc.platform.security.oauth)
    • REST API 提供程序 (com.glide.rest)
    • 身份验证范围 (com.glide.auth.scope)
    • REST API 身份验证范围插件 (com.glide.rest.auth.scope)
  3. 启用客户端凭据授予:
    • 导航至 sys_properties.list
    • 属性名称: glide.oauth.inbound.client.credential.grant_type.enabled
    • 值:true
    • 此属性切换对客户端凭据流的支持。

创建 OAuth 客户端 (应用程序注册表)

  1. 转到:系统 OAuth -> 应用程序注册表。
  2. 选择:为外部客户端创建 OAuth API 终结点。
  3. 填写必填字段 (名称等 ) 。 将重定向 URL 和登录 URL 留空 (不用于客户端凭据) 。
  4. 确保公共客户端保持未选中状态, (必须是机密客户端) 。
  5. 保存记录。
  6. 在“应用程序注册表”列表视图中,自定义视图 (齿轮图标) 添加“OAuth 应用程序用户”列。
  7. 将 OAuth 应用程序用户设置为专用集成用户, (令牌将假定此用户的角色) 。
  8. 打开记录以复制客户端 ID 并生成/查看客户端密码。

令牌终结点和授予详细信息

  • 令牌 URL 格式: https://<your-instance>.service-now.com/oauth_token.do
  • 授予类型: client_credentials
  • 不涉及重定向或授权代码。
  • 范围:通常不需要;访问权限由 OAuth 应用程序用户的角色确定。
  • 集成用户所需的角色: cmdb_read (以及特定 CI 访问所需的任何其他角色(如果适用) )。

差异与基本身份验证

  • 凭据可以轻松轮换 (重新生成客户端密码,而无需更改集成用户密码) 。
  • 身份验证的范围限定为 OAuth 应用程序用户的角色。
  • 速率限制和数据范围保持不变;确保专用用户以避免 API 争用。
  • 不需要交互式登录或重定向 URL。

OAuth 疑难解答

问题 操作
401 未授权 确认客户端 ID/机密正确;验证是否设置了 OAuth 应用程序用户;确保 cmdb_read 已分配角色;确认属性 glide.oauth.inbound.client.credential.grant_type.enabled = true
403 已禁止 用户缺少所需的 CMDB 读取角色;添加 cmdb_read
无效的客户端 重新生成客户端密码;验证是否使用了“外部客户端的 OAuth API 终结点”。
令牌终结点失败 验证已安装的插件;确认实例主机名正确性。
空或缺少 CMDB 数据 验证集成用户是否可以直接在 CMDB 中查看 CIS;检查角色。

有关 ServiceNow OAuth 的更多背景信息,请参阅 ServiceNow 文档。

在公开管理中建立 ServiceNow 连接

若要在公开管理中与 ServiceNow 建立连接,请执行以下步骤:

  1. 从“公开管理”导航中打开 “数据连接器 ”,然后在“ServiceNow CMDB”磁贴中选择“ 连接 ”。
  2. 选择身份验证方法并输入所需信息:
    • 对于“基本身份验证”:输入 ServiceNow 实例主机名,以及基本身份验证配置中创建的用户名和密码。
    • 对于 OAuth 2.0:选择 OAuth 2.0 身份验证选项,并输入在 OAuth 配置中创建的实例主机名、客户端 ID 和客户端密码。
  3. 选择“连接”。 系统将使用所选方法进行身份验证并检索 CMDB 数据。

连接 ServiceNow 连接器的屏幕截图

检索到的数据

公开管理当前检索设备上的数据、其业务应用程序关联和业务关键性。 还会检索有助于识别设备的其他数据,例如网络适配器信息和 OS 数据。

以下字段通过连接器引入:

类别 Properties
Devices -操作系统
- osVersion
- osServicePack
- cpuType
-类别
- assetTag
-虚拟
- serviceNowCriticality
- usedFor
- networkAdapters (在下面查看详细信息)
- lastLoggedOnUser
- mostFrequentUser
- sysClassName
- uPrimaryBusinessApplication (在下面查看详细信息)
网络适配器 -名字
- sysId
- macAddress
- ipAddress
- ipDefaultGateway
业务应用程序 - sysId
-数
- uCriticality
- businessCriticality

连接器疑难解答

下面是配置 ServiceNow 连接器时可能出现的一些常见问题,以及如何解决这些问题的建议。

错误类型 故障排除作
“无法解析远程服务器名称”错误消息 验证 ServiceNow 实例主机名。 在此处详细了解对 ServiceNow 的 身份验证:身份验证 (servicenow.com)
错误代码 401:授权失败 授权失败表示凭据可能不正确,或者没有足够的权限来访问 ServiceNow 数据。 检查凭据,确保凭据正确且有效。 此外,检查凭据具有所需的权限。 有关如何确保分配cmdb_read角色的详细信息,请参阅 使用基本身份验证配置 ServiceNow 部分。 此失败的另一个可能原因是 ServiceNow 实例配置为仅接受来自有限 IP 地址范围的连接。 在这种情况下,请参阅此处将正确的 IP 集添加到允许列表的指南: 允许列表 IP 地址
错误代码 403: 访问禁止错误 此错误表示提供的凭据缺少运行请求的 API 所需的权限。 按照 配置 ServiceNow 的基本身份验证 部分中所述,使用适当的权限更新凭据,并确保它们至少分配了cmdb_read角色。
错误代码 404: 找不到错误 此错误指示找不到可访问请求的终结点。 验证 ServiceNow 实例主机名是否正确。
错误代码 429 “请求过多” 系统定期从配置的外部提供程序拉取数据,这些提供程序对并发请求数可能有限制。 建议为连接器创建专用用户或帐户,以避免达到此限制。
错误 URL 错误消息 此错误指示找不到可访问请求的终结点。 验证 ServiceNow 实例主机名是否正确。
“临时断开连接”或“临时失败”错误 如果出现此错误消息时没有其他任何信息,请验证连接器配置 (主机名和凭据) 。 如果这些问题有效,并且问题无法自行解决,请联系支持人员。
在引入的数据中看不到某些 ServiceNow CMDB API 或资产 有关 ServiceNow CMDB 连接器预期检索的数据的说明,请参阅 检索 的数据。 如果仍然缺少数据,请联系支持人员。
看不到从 ServiceNow CMDB 引入的任何数据 查看连接状态,确保没有错误。 验证 ServiceNow CMDB 中是否存在与我们正在检索的数据对应的有效条目。 运行示例高级搜寻查询,以检查是否可以在公开关系图表中找到任何 ServiceNow 资产。如果仍找不到 ServiceNow CMDB 数据,请联系支持人员。
需要将 ServiceNow 允许的 IP 配置为启用公开管理连接器才能访问 ServiceNow 在此处阅读如何将要添加到允许列表的 IP 集: 允许列表 IP 地址

后续步骤

配置 ServiceNow 数据连接器后: