

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

# ServiceNow 整合
<a name="servicenow-integration"></a>

使用 ServiceNow 集成在您的 ServiceNow 实例中执行操作，包括管理事件、问题、变更请求、知识库文章和附件。此集成使用 ServiceNow REST API。有关更多信息，请参阅 ServiceNow 文档中的 [REST API](https://docs.servicenow.com/bundle/xanadu-api-reference/page/build/applications/concept/api-rest.html)。

设置此集成涉及两个步骤。首先，在您的 ServiceNow 实例中配置 OAuth应用程序。然后，您可以在 Amazon Quick 中创建集成并将其连接到您的 ServiceNow 应用程序。有关 Amazon Quick 支持的身份验证方法的信息，请参阅[身份验证方法](quick-action-auth.md)。

## 开始前的准备工作
<a name="servicenow-integration-prerequisites"></a>

在设置集成之前，请确认您已具备以下条件。
+ 一个 ServiceNow 实例。此集成已针对Xanadu版本进行了验证。
+ 具有创建 OAuth应用程序权限的 ServiceNow 用户帐户（需要`admin`角色）。
+ 对于服务身份验证（客户端凭证），您的实例必须运行华盛顿特区版本或更高版本。
+ 有关订阅要求，请参阅[在控制台中设置集成](integration-console-setup-process.md)。

## 配置 ServiceNow OAuth
<a name="servicenow-oauth-setup"></a>

在配置 Amazon Quick 之前，请在您的 ServiceNow 实例中创建一个 OAuth 应用程序终端节点。在移至 Amazon Quick 控制台 ServiceNow之前，请完成以下所有步骤。

有关更多信息，请参阅 ServiceNow 文档中的[创建客户端访问实例的终端节点](https://www.servicenow.com/docs/bundle/xanadu-platform-security/page/administer/security/task/t_CreateEndpointforExternalClients.html)。

### 注册 OAuth 应用程序
<a name="servicenow-oauth-app-registration"></a>

要注册 OAuth 应用程序，请完成以下步骤。

1. 在您的 ServiceNow 实例中，导航到 “**全部**” > “**系统 OAuth**” > “**应用程序注册表**”，然后选择 “**新建**”。

1. 选择**为外部客户端创建 OAuth API 端点**。

1. 填写表格：
   + **名称**- OAuth 应用程序的描述性名称。
   + **重定向网址** — `https://{region}.quicksight.aws.amazon.com/sn/oauthcallback`

     *\$1region\$1*替换为您 Amazon 所在的地区（例如，`us-east-1`）。

1. 选择**提交**。

1. 重新打开应用程序注册表项，然后选择 **Client Secret** 旁边的锁定图标以显示该值。

1. 复制 “**客户端 ID**” 和 “**客户机密钥**” 值。当你在 Amazon Quick 中配置集成时，你需要这些。

### 服务身份验证的其他步骤（客户端凭据）
<a name="servicenow-oauth-client-credentials"></a>

如果您计划使用服务身份验证，请在注册 OAuth 应用程序后完成这些额外步骤。 ServiceNow 华盛顿特区新闻稿中引入了客户证书授予类型。有关更多信息，请参阅 [Up You OAuth2 r .0 游戏： ServiceNow 社区中华盛顿特区的入站客户凭证](https://www.servicenow.com/community/developer-blog/up-your-oauth2-0-game-inbound-client-credentials-with-washington/ba-p/2816891)。

1. 启用客户端凭证授予类型。`sys_properties.list`使用筛选器导航器导航到并使用以下值创建新的系统属性：
   + **名称** – `glide.oauth.inbound.client.credential.grant_type.enabled`
   + **类型** – `true | false`
   + **值** – `true`

1. 确认已安装以下插件（导航至**管理员** > **应用程序管理器**）：
   + OAuth 2.0 (`com.snc.platform.security.oauth`)
   + REST API 提供商 (`com.glide.rest`)
   + 身份验证范围 (`com.glide.auth.scope`)
   + REST API 身份验证范围插件 () `com.glide.rest.auth.scope`

1. 在 “**系统**” OAuth > “ OAuth 应用程序**注册表” 中返回您的应用程序**。如果 “**OAuth 应用程序用户**” 字段不可见，请将其添加到表单中（使用 **“配置” > “****表单生成器**” 将其添加）。

1. 将**OAuth 应用程序用户**设置为具有相应权限的用户，例如具有系统管理员角色的用户。

**重要**  
使用服务身份验证时，所有操作都以配置的 OAuth 应用程序用户身份执行。任何有权访问此集成的 Amazon Quick 用户都可以使用该账户的权限执行操作。配置账户权限以符合贵组织的安全要求。

## 在 Amazon Quick 中设置集成
<a name="servicenow-action-integration-setup"></a>

完成 ServiceNow OAuth 配置后，在 Amazon Quick 中创建集成。

1. 在 Amazon Quick 控制台中，选择**集成。**

1. 选择**ServiceNow**并选择 “添加”（加号 “\$1”）按钮。

1. 输入集成详细信息：
   + **名称**- ServiceNow 集成的描述性名称。
   + **描述**（可选）-集成的目的。

1. 选择您的连接类型并填写连接设置：

   1. 对于**用户身份验证 (OAuth)**，请配置以下字段：
      + **基本网址** — `https://{your-instance}.service-now.com`
      + **客户端 ID** — 来自您的 ServiceNow OAuth 应用程序的客户端 ID。
      + **客户端密钥**-来自您的 ServiceNow OAuth 应用程序的客户端密钥。
      + **代币网址** — `https://{your-instance}.service-now.com/oauth_token.do`
      + **身份验证网址 —** `https://{your-instance}.service-now.com/oauth_auth.do`
      + **重定向网址** — `https://{region}.quicksight.aws.amazon.com/sn/oauthcallback`

   1. 对于**服务身份验证（客户端凭据）**，请配置以下字段：
      + **身份验证类型** — Service-to-service OAuth
      + **基本网址** — `https://{your-instance}.service-now.com`
      + **客户端 ID** — 来自您的 ServiceNow OAuth 应用程序的客户端 ID。
      + **客户端密钥**-来自您的 ServiceNow OAuth 应用程序的客户端密钥。
      + **代币网址** — `https://{your-instance}.service-now.com/oauth_token.do`

1. 选择**创建并继续**。

1. 选择要与之共享集成的用户。

1. 选择**下一步**。

要进行用户身份验证，请导航至**集成** > **操作** > 您的 ServiceNow 集成名称，然后选择**登录**以完成 OAuth 授权流程。

## 可用操作
<a name="servicenow-integration-actions"></a>

设置集成后，可以使用以下操作。


**ServiceNow 可用操作**  

| 类别 | Action | 说明 | 
| --- | --- | --- | 
| 意外事件 | 列出事件 | 检索现有事件。 | 
| 意外事件 | 创建事件 | 创建事件记录以记录偏离预期操作标准的情况。 | 
| 意外事件 | 查看事件 | 检索特定事件的详细信息。 | 
| 意外事件 | 更新事件 | 更新事件记录。 | 
| 意外事件 | 删除事件 | 删除事件。 | 
| Problems（问题） | 列出问题 | 检索现有问题。 | 
| Problems（问题） | 创建问题 | 创建新的问题记录。 | 
| Problems（问题） | 查看问题 | 检索特定问题记录的详细信息。 | 
| Problems（问题） | 更新问题 | 更新问题记录。 | 
| Problems（问题） | 删除问题 | 删除问题。 | 
| 更改请求 | 列出变更请求 | 检索所有变更请求。 | 
| 更改请求 | 创建变更请求 | 创建变更请求以实施用于修改已批准和支持的配置项目的受控流程（CIs）。 | 
| 更改请求 | 查看变更请求 | 检索有关特定变更请求的详细信息。 | 
| 更改请求 | 更新变更请求 | 修改变更请求。 | 
| 更改请求 | 删除变更请求 | 删除变更请求。 | 
| 知识库文章 | 创建知识库文章 | 创建知识库文章。需要知识 API (sn\$1km\$1api) 插件。 | 
| 知识库文章 | 更新知识库文章 | 修改知识库文章。 | 
| 知识库文章 | 删除知识库文章 | 删除知识库文章。 | 
| 附件 | 检索附件元数据 | 检索附件文件的元数据。 | 
| 附件 | 检索附件元数据 | 检索特定附件文件的元数据。 | 
| 附件 | 检索附件内容 | 检索二进制文件附件内容。 | 
| 附件 | 上传二进制附件 | 将二进制文件作为附件上传到指定记录。 | 
| 附件 | 上传分段表单附件 | 上传分段文件附件。 | 
| 附件 | 删除附件 | 删除附件。 | 
| Users | 列出 用户 | 列出所有用户记录。 | 
| 系统 | 列出选择 | 从 sys\$1choice 表中检索选项列表值。 | 

**注意**  
可用的具体操作取决于您的 ServiceNow 实例中配置的权限和所使用的身份验证方法。

## 限制
<a name="servicenow-integration-limitations"></a>

此集成 ServiceNow 通过 REST API 进行交互，REST API 不强制执行界面策略、用户界面操作或客户端脚本。这些规则仅适用于 ServiceNow 浏览器界面。强制执行服务器端业务规则和数据策略。 ACLs有关更多信息，请参阅 ServiceNow 文档中的 [REST API](https://docs.servicenow.com/bundle/xanadu-api-reference/page/integrate/inbound-rest/concept/c_RESTAPI.html)。

## 管理和故障排除
<a name="servicenow-integration-troubleshooting"></a>

要编辑、共享或删除您的集成，请参阅[管理现有集成](integration-workflows.md#managing-existing-integrations)。

### 身份验证问题
<a name="servicenow-troubleshooting-auth"></a>
+ **OAuth 授权失败**-验证客户端 ID 和客户端密钥是否与 ServiceNow 应用程序注册表中的值相匹配。确认中的重定向网址与您的 Amazon Quick 配置中的网址完全 ServiceNow 匹配。
+ **服务身份验证失败**-验证`glide.oauth.inbound.client.credential.grant_type.enabled`系统属性是否设置为`true`。确认**OAuth 应用程序注册表记录上已填充应用程序用户**字段。

### 常见错误消息
<a name="servicenow-troubleshooting-errors"></a>
+ **操作返回权限错误**-验证 ServiceNow 用户或 OAuth应用程序用户是否具有访问目标表所需的角色（例如，事件管理`itil`角色）。
+ **连接超时或无法访问实例**-验证基本 URL 是否使用了正确的 ServiceNow 实例名称。确认 ServiceNow 实例可访问且未处于维护模式。