本页介绍了如何将 ServiceNow 关联到 Gemini Enterprise。
首次设置数据源并导入数据后,数据存储区会按照您在设置期间选择的频率同步来自该来源的数据。
准备工作
在设置关联之前,请确保您已准备好以下各项:
- ServiceNow 实例:按照 ServiceNow 开发者文档中的说明创建 ServiceNow 实例。
Google Cloud 项目:设置一个 Google Cloud 项目,并使用能够管理组织级配置的管理员账号,确保组织可以设置员工池。
员工池:确保您的组织已设置为能够管理员工池。
设置 ServiceNow
ServiceNow 提供两个主要网站:
主 ServiceNow 网站:您的 ServiceNow 实例对应的网站。
- 管理用户、群组和系统管理任务。
- 网址:您的 ServiceNow 实例的网址。
- 使用管理员凭证登录。
-
- 配置知识库、设置工作流和开发自定义应用。
- 网址:
https://developer.service-now.com
。 - 使用您的 ServiceNow ID 登录。
如需创建 OAuth 端点,请执行以下操作:
- 以管理员角色登录主 ServiceNow 实例。
依次前往全部 > 系统 OAuth > 应用注册。
选择应用注册 点击 New(新建)。
点击“新建”按钮 点击为外部客户端创建 OAuth API 端点。
选择为外部客户端创建 OAuth API 端点的选项 填写必填字段:
- 名称:输入一个唯一名称。
- 重定向网址:输入重定向网址:
https://vertexaisearch.cloud.google.com/console/oauth/servicenow_oauth.html
点击提交以创建凭证。
输入重定向网址 提交后,点击名称以查看客户端 ID。
查看客户端 ID 密钥已被遮盖。点击密钥旁边的锁形图标,即可取消遮盖并查看客户端密钥。
点击锁形图标 保存客户端 ID 和客户端密钥以供日后使用。
复制客户端 ID 和客户端密钥
如需检索 ServiceNow 实例凭证,请执行以下操作:
访问 developer.service-now.com,然后点击管理实例密码。
点击“管理实例密码”按钮 保留实例网址、用户名和密码的副本,以便在需要时使用。
在此阶段,设置 ServiceNow 数据存储区所需的所有五项信息均已准备就绪。如果对使用管理员角色拉取数据不存在顾虑,请继续创建数据存储区。
设置管理员角色和权限
将管理员角色提升为 security_admin
,以管理用户和角色。
点击您的个人资料图标,然后选择提升角色。
点击“提升角色”按钮 选择
security_admin
,然后点击更新。security_admin
角色能够用于创建角色和管理用户。选择 security_admin
角色,然后点击“更新”按钮
设置用户角色和权限
如需在 Gemini Enterprise 中创建 ServiceNow 数据存储区,您需要向用户授予适当的角色和权限。在开始之前,请务必了解连接器如何处理对突发事件实体的访问权限。请参阅突发事件可见性和访问权限控制。
选择以下选项之一,向用户授予在 Google Cloud中设置数据存储区所需的角色和权限。每个选项都提供对实例的必需访问权限。
突发事件可见性和访问权限控制
为了增强安全性并防止意外的数据泄露,ServiceNow 连接器对突发事件实体使用限制性访问权限控制。这样可确保最终用户只能查看与自己直接关联的突发事件。
在这种限制性方法中,连接器不会遵循基于角色的广泛突发事件查看权限。标准 ServiceNow 角色(例如 itil
和 sn_incident_read
)可能会授予用户在 ServiceNow 界面中查看所有突发事件的权限,但在 Gemini Enterprise 中不会授予相同级别的访问权限。
拥有以下任一角色的用户具有全局突发事件查看权限,可以查看所有突发事件:
admin
incident_manager
change_manager
其他用户仅能查看自己打开、重新打开、解决或关闭过的突发事件。如果用户满足以下条件,也可以查看突发事件:
- 在相应突发事件的分配组中。
- 与突发事件关联的来电者。
- 受让方。
- 在关注列表中。
- 在工作笔记列表中。
- 在其他受让方列表中。
此行为可防止 Gemini Enterprise 用户找到他们无权访问的突发事件。与更广泛的 ServiceNow 权限相比,由于存在额外的限制,此行为有时可能会阻止用户在 Gemini Enterprise 中找到他们在 ServiceNow 中有权访问的突发事件。
创建实施 ACL 规则的自定义角色(推荐)
创建具有一组所需最低权限的自定义角色。
依次前往全部 > 用户管理 > 角色。
选择角色 点击 New(新建)。
点击“新建”按钮 提供一个名称,然后点击提交。
选择名称并提交 依次前往系统安全性 > 访问权限控制 (ACL)。
选择访问权限控制 (ACL) 点击新建以创建新的 ACL 规则。
点击“新建”按钮 重复以下两个步骤,直到您授予对所有必需表的访问权限。
以
sys_user_role
为例,了解如何授予表访问权限。选择 sys_user_role
点击提交,然后选择相应角色。
必需的表
连接器需要访问每个实体的以下表才能运行。
表格名称 | 说明 |
---|---|
突发事件 |
在搜索结果中显示突发事件。 |
sc_cat_item |
在搜索结果中显示目录项。 |
sc_cat_item_user_criteria_mtom |
根据用户条件显示可以访问目录项的用户。 |
sc_cat_item_user_criteria_no_mtom |
根据用户条件显示无法访问目录项的用户。 |
sc_cat_item_user_mtom |
显示可以访问目录项的用户。 |
sc_cat_item_user_no_mtom |
显示无法访问目录项的用户。 |
kb_knowledge |
可在搜索结果中显示的知识文章列表。 |
kb_knowledge_base |
可在搜索结果中显示的知识库列表。 |
kb_uc_can_contribute_mtom |
根据用户条件显示可以为知识库贡献内容的用户。 |
kb_uc_can_read_mtom |
根据用户条件显示可以阅读知识库内容的用户。 |
kb_uc_cannot_read_mtom |
根据用户条件显示无法阅读知识库内容的用户。 |
sys_user_role |
可分配给用户的角色列表。 |
sys_user_has_role |
映射到用户的角色列表。 |
sys_user_group |
用户群组细分列表。 |
sys_user_grmember |
群组的群组成员列表。 |
sys_user |
所有用户的列表。 |
core_company |
所有公司属性的列表。 |
cmn_location |
所有位置属性的列表。 |
cmn_department |
所有部门属性的列表。 |
user_criteria |
用户条件记录列表。 |
sp_portal |
搜索结果中的链接门户 URI。 |
m2m_sp_portal_knowledge_base |
搜索结果中知识文章的链接门户 URI。 |
m2m_sp_portal_catalog |
搜索结果中目录项的链接门户 URI。 |
授予和验证 ACL 访问权限
连接器需要对 sc_cat_item
表的目录项字段具有 ACL 访问权限。
如需授予和验证访问权限,请执行以下操作:
通过创建新的 ACL 规则并在表单的名称字段中手动输入
sc_cat_item.*
来授予明确的访问权限。输入 sc_cat_item.*
验证 ACL 是否已更新。
在搜索栏中输入
sys_security_acl_role_list.do
。输入 sys_security_acl_role_list.do
将角色设置为您要验证的角色。
选择要验证的角色 验证是否已向相应角色分配所需的 ACL。
使用具有实体管理员权限的自定义角色
对于希望避免分配过于强大权限的团队或组织,使用管理员角色可能并不合适。此方法提供了一个具有三项特定权限的角色,可授予所需的访问权限。
依次前往全部 > 系统安全性 > 用户和群组 > 角色。
添加角色 选择新建,然后输入一个名称。
点击“新建”按钮 点击提交。
点击“提交”按钮 在列表中找到创建的角色。
使用角色名称进行搜索,然后点击相应角色 依次前往包含的角色 > 修改。
点击“修改”按钮 向新创建的角色添加以下角色,然后点击保存。
catalog_admin
knowledge_admin
incident_manager
添加角色,然后点击“保存”按钮 确认更新。
确认角色 下图显示了包含三个角色的自定义角色:
自定义角色
使用管理员角色
您可以使用管理员角色拉取数据。使用实例配置的默认管理员角色,或通过执行以下操作创建具有管理员角色的新用户:
依次前往全部 > 用户管理 > 用户。
选择用户 创建新用户并为其输入一个名称。
选择用户名 启用仅限 Web 服务访问。如果您选择仅限 Web 服务访问,则会创建非交互式用户。
交互式用户与非交互式用户:交互式用户可以使用其用户名和密码登录 ServiceNow 界面或服务门户。他们可以通过指向界面页面、表单或列表的网址访问实例。他们还可以使用摘要式身份验证或安全断言标记语言 (SAML) 等单点登录方法进行连接。此外,如果严格的安全设置允许,他们还可以使用自己的凭证来授权 SOAP 连接,并且可以不受限制地访问其他 API 连接,例如 WSDL、JSON、XML 或 XSD。
而非交互式用户只能使用其凭证来授权 JSON、SOAP 和 WSDL 等 API 连接。他们无法登录 ServiceNow 界面,只能通过 API 协议访问实例。
创建用户后,从用户列表中选择该用户。
选择用户 依次点击角色 > 修改。
修改角色 添加管理员。
点击保存,向该用户添加一系列角色。
向用户添加角色列表 点击设置密码,以自动生成密码并将其保存。
设置密码
向用户授予角色
依次前往全部 > 用户管理 > 用户。
选择用户 查找用户或创建新用户。
查找用户或创建新用户 如果没有可用用户,请依次前往系统安全性 > 用户和群组 > 用户。
选择用户 点击 New(新建)。
点击“新建”按钮 在用户表中创建新的服务账号。请务必点击仅限 Web 服务访问。
点击“仅限 Web 服务访问”选项 滚动到角色。
前往“角色” 点击修改。
修改角色 向其授予您创建的角色,并将其分配给用户。根据您在上一步中创建的角色类型,选择相应的角色并将其分配给用户。点击保存。
选择并分配角色 或
分配角色并保存 查看实施 ACL 的自定义角色。
实施 ACL 的自定义角色 获取用户的用户名和密码,然后点击设置密码。
设置密码 自动生成密码并将其保存以备后用。
自动生成密码
创建 ServiceNow 连接器
控制台
如需使用 Google Cloud 控制台将 ServiceNow 中的数据同步到 Gemini Enterprise,请按照以下步骤操作:
在 Google Cloud 控制台中,前往 Gemini Enterprise 页面。
在导航菜单中,点击数据存储区。
点击
创建数据存储区。在选择数据源页面上,滚动或搜索 ServiceNow 以连接第三方来源。
输入您的 ServiceNow 身份验证信息。
- 实例 URI
- 客户端 ID (Client ID)
- 客户端密钥
- 用户账号
- 密码
ServiceNow 身份验证信息 为数据存储区填写一个唯一的名称,然后点击创建。
选择要同步的实体:
知识库文章
Service Catalog
突发事件
附件
如需将实体从索引中排除,或确保其被纳入索引中,请点击过滤。
指定用于包含或排除实体的过滤条件 点击保存。
点击继续。
为完全同步选择同步频率,为增量数据同步选择增量同步频率。如需了解详情,请参阅同步时间表。
如果您想分开安排实体数据和身份数据的完全同步,请展开完全同步下的菜单,然后选择自定义选项。
为完全实体同步和完全身份同步单独设置时间表。 为您的数据连接器选择一个区域。
点击创建。Gemini Enterprise 会创建数据存储区,并在数据存储区页面上显示这些数据存储区。
如需查看数据注入状态,请前往数据存储区页面,然后点击数据连接器名称,在其数据页面查看相关详情。当连接器开始同步数据时,连接器状态会从正在创建变为正在运行。注入完成后,状态会变为活跃,表明已设置与数据源的连接,并且正在等待下一次预定同步。
注入过程可能需要几分钟或几小时才能完成,具体取决于数据的大小。
启用实时同步
实时同步只会同步文档实体,不会同步与身份实体相关的数据。下表显示了哪些文档事件支持实时同步。
ServiceNow 实体 | 创建 | 更新 | 删除 | 权限更改 |
---|---|---|---|---|
附件 | ||||
目录 | ||||
突发事件 | ||||
知识 |
如需为连接器启用实时同步,请按以下步骤操作。
在 Google Cloud 控制台中,前往 Gemini Enterprise 页面。
在导航菜单中,点击数据存储区。
点击要启用实时同步的 ServiceNow 连接器的名称。
在连接器的数据页面上,等待连接器状态变为活跃。
在实时同步字段中,点击查看/修改。
查看和修改实时同步设置。 点击启用实时同步切换开关,将其切换到开启位置。
为客户端密钥字段提供一个值。该值用于验证 ServiceNow 网络钩子事件。我们建议使用 20 个字符的字符串。
启用实时同步并提供客户端密钥。 点击保存。
等待实时同步字段变为正在运行。
使用拥有管理员角色的账号前往您的 ServiceNow 实例。
点击全部。
在过滤条件字段中,输入
sys_properties.list
并提交。在 ServiceNow 中查找系统属性。 点击新建以创建系统属性。
在 ServiceNow 中创建新的系统属性。 填写该新系统属性的字段。
在名称部分,输入一个描述性名称,例如
webhook_secret
。在值部分,输入您在 Gemini Enterprise 连接器实时同步设置的客户端密钥字段中使用的值。
点击提交。
填写新 ServiceNow 系统属性的字段。
为知识实体创建网络钩子
如需为 ServiceNow 知识实体创建网络钩子,请按照以下步骤操作。
使用拥有管理员角色的账号前往您的 ServiceNow 实例,然后依次点击全部 > 系统定义 > 业务规则。
查看 ServiceNow 业务规则。 点击新建以创建新的业务规则。
创建新的 ServiceNow 业务规则。 填写网络钩子的字段。
在名称部分,输入一个描述性名称,例如
Knowledge webhook
。选择高级。
在表部分,选择知识 [kb_knowledge]。
填写知识实体网络钩子的字段。 点击运行时间。
在时间部分,选择之前。
选择插入、更新和删除。
指定知识实体 webhook 应何时运行。 点击高级。
将以下代码粘贴到脚本字段中,并将端点值替换为您为 Gemini Enterprise 连接器启用实时同步时提供的 webhook 通知网址:
(function executeRule(current, previous /*null when async*/) { var request = new sn_ws.RESTMessageV2(); request.setEndpoint('WEBHOOK_NOTIFICATION_URL'); request.setHttpMethod('POST'); var token = gs.getProperty('webhook_secret'); var requestBody = "{\"sys_id\":\"" + current.sys_id + "\",\"entity\":\"" + "knowledge" + "\",\"operation\":\"" + current.operation() + "\"}"; request.setRequestHeader("Accept","application/json"); request.setRequestHeader('Content-Type','application/json'); request.setRequestBody(requestBody); var signature = SncAuthentication.encode(requestBody, token, "HmacSHA256"); request.setRequestHeader("X-Hub-Signature", 'sha256=' + signature); var response = request.execute(); gs.log(response.getBody()); })(current, previous);
输入提供的脚本。 点击提交。
提交新的业务规则。
为目录实体创建网络钩子
如需为 ServiceNow 目录实体创建网络钩子,按照为知识实体创建网络钩子部分的步骤操作即可,但需注意以下区别:
创建新的业务规则时,在表部分,需选择目录项 [sc_cat_item]。
在高级标签页中,将以下代码粘贴到脚本中,并将端点值替换为您为 Gemini Enterprise 连接器启用实时同步时提供的 webhook 通知网址:
(function executeRule(current, previous /*null when async*/) { var request = new sn_ws.RESTMessageV2(); request.setEndpoint('WEBHOOK_NOTIFICATION_URL'); request.setHttpMethod('POST'); var token = gs.getProperty('webhook_secret'); var requestBody = "{\"sys_id\":\"" + current.sys_id + "\",\"entity\":\"" + "catalog" + "\",\"operation\":\"" + current.operation() + "\"}"; request.setRequestHeader("Accept","application/json"); request.setRequestHeader('Content-Type','application/json'); request.setRequestBody(requestBody); var signature = SncAuthentication.encode(requestBody, token, "HmacSHA256"); request.setRequestHeader("X-Hub-Signature", 'sha256=' + signature); var response = request.execute(); gs.log(response.getBody()); })(current, previous);
为突发事件实体创建网络钩子
如需为 ServiceNow 突发事件实体创建网络钩子,按照为知识实体创建网络钩子部分的步骤操作即可,但需注意以下区别:
创建新的业务规则时,在表部分,需选择突发事件 [incident]。
在高级标签页中,将以下代码粘贴到脚本中,并将端点值替换为您为 Gemini Enterprise 连接器启用实时同步时提供的 webhook 通知网址:
(function executeRule(current, previous /*null when async*/) { var request = new sn_ws.RESTMessageV2(); request.setEndpoint('WEBHOOK_NOTIFICATION_URL'); request.setHttpMethod('POST'); var token = gs.getProperty('webhook_secret'); var requestBody = "{\"sys_id\":\"" + current.sys_id + "\",\"entity\":\"" + "incident" + "\",\"operation\":\"" + current.operation() + "\"}"; request.setRequestHeader("Accept","application/json"); request.setRequestHeader('Content-Type','application/json'); request.setRequestBody(requestBody); var signature = SncAuthentication.encode(requestBody, token, "HmacSHA256"); request.setRequestHeader("X-Hub-Signature", 'sha256=' + signature); var response = request.execute(); gs.log(response.getBody()); })(current, previous);
为附件实体创建网络钩子
如需为 ServiceNow 附件实体创建网络钩子,按照为知识实体创建网络钩子部分的步骤操作即可,但需注意以下区别:
创建新的业务规则时,在表部分,需选择附件 [sys_attachment]。
在高级标签页中,将以下代码粘贴到脚本中,并将端点值替换为您为 Gemini Enterprise 连接器启用实时同步时提供的 webhook 通知网址:
(function executeRule(current, previous /*null when async*/) { var request = new sn_ws.RESTMessageV2(); request.setEndpoint('WEBHOOK_NOTIFICATION_URL'); request.setHttpMethod('POST'); var token = gs.getProperty('webhook_secret'); var requestBody = "{\"sys_id\":\"" + current.sys_id + "\",\"entity\":\"" + "attachment" + "\",\"operation\":\"" + current.operation() + "\"}"; request.setRequestHeader("Accept","application/json"); request.setRequestHeader('Content-Type','application/json'); request.setRequestBody(requestBody); var signature = SncAuthentication.encode(requestBody, token, "HmacSHA256"); request.setRequestHeader("X-Hub-Signature", 'sha256=' + signature); var response = request.execute(); gs.log(response.getBody()); })(current, previous);
配置员工池
借助员工池,您可以在 Google Cloud 控制台中管理并对来自外部身份提供方(如 Azure 或 Okta)的用户进行身份验证。如需配置员工池并启用 Web 应用,以实现无缝的用户访问,请执行以下操作:
按照相应的设置手册在 Google Cloud 中创建组织级员工池:
在 Gemini Enterprise > 设置部分,为您在其中创建应用的区域配置员工池。
后续步骤
如需将数据存储区挂接到应用,请按照创建应用中的步骤创建应用并选择数据存储区。
如需在设置应用和数据存储区后预览搜索结果以了解其显示方式,请参阅预览搜索结果。
如需为数据存储区启用提醒,请参阅为第三方数据存储区配置提醒。