View a markdown version of this page

为设置 OAuth 2.0 客户端凭据身份验证 ServiceNow - Amazon Bedrock

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

为设置 OAuth 2.0 客户端凭据身份验证 ServiceNow

使用带有 OAuth 2.0 客户端凭证 (2LO) 的 T ServiceNow able API 进行身份验证。在 Amazon Bedrock 中配置数据源之前,请在您的 ServiceNow 实例中完成以下所有步骤。

第 1 步:启用客户凭证授权类型

  1. 在中 ServiceNow,导航到sys_properties.list使用筛选器导航器。

  2. 使用以下值创建新的系统属性:

    • 名称 – glide.oauth.inbound.client.credential.grant_type.enabled

    • 类型 – true | false

    • 值 – true

第 2 步:创建专用服务账户

  1. 导航到用户管理 > 用户。

  2. 选择 “新建” 并填写表格:

    • 用户 ID — 描述性名称(例如,svc.amazon.quick.kb)。

    • 仅限 Web 服务访问权限 -已选中。这可以防止交互式登录。

    • 密码 — 设置安全性高的密码。连接器使用 OAuth,但创建帐户需要密码。

  3. 选择提交。

第 3 步:分配服务帐号角色

  1. 打开服务帐户(用户管理 > 用户 > 您的服务帐户)。

  2. 在角色选项卡下,选择编辑并添加以下角色:

    • knowledge_admin— 对所有知识库文章的完整阅读权限。绕过每 KB 的用户标准限制。

    • catalog_admin— 对所有服务目录项的完全读取权限。绕过每个目录的限制。

  3. 选择保存。

注意

保存后,您总共会看到大约 14 个角色。 ServiceNow自动从_admin父角色继承包含的角色。您只能手动分配步骤 2 中列出的两个角色(knowledge_admin和catalog_admin)。不要分配adminitil、或snc_read_only角色。

第 4 步:注册 OAuth 应用程序

  1. 导航到系统 OAuth > 应用程序注册表。

  2. 选择 “新建” > “为外部客户端创建 OAuth API 端点”。

  3. 填写表格:

    • 名称 — 描述性名称(例如,Amazon-Quick-KB-Client)。

    • 重定向 URL -留空。不是客户端凭证流程所必需的。

  4. 选择提交。

  5. 立即复制客户端 ID 和客户端密钥。客户端密钥仅显示一次。

重要

必须使用拦截器页面来创建应用程序。不要通过直接插入oauth_entity表来创建记录。

第 5 步:配置 OAuth 应用程序

  1. Re-open 应用程序注册表列表中的应用程序记录。

  2. 如果 OAuth 应用程序用户字段不可见,请使用配置 > 表单生成器进行添加。

  3. 设置以下字段:

    • OAuth 应用程序用户 -您的服务帐号(例如)。svc.amazon.quick.kb

    • 范围限制 —Broadly scoped.

    • 客户类型 —integration_as_a_service.

  4. 选择更新。

第 6 步:配置 API 访问策略

如果没有 API 访问策略,则对令牌进行身份验证,但是 Table API 返回 HTTP 401。完成以下两个子步骤。

创建入站身份验证配置文件
  1. 导航到系统 Web 服务 > API 访问策略 > 入站身份验证配置文件。

  2. 选择 “新建” 并设置:

    • 名称 — 例如,Amazon-Quick-KB-Client-Profile.

    • Type – OAuth。

    • OAuth 实体 -选择您的 OAuth 应用程序。

  3. 选择提交。

  4. Re-open 个人资料。在身份验证策略相关列表中,选择编辑并添加允许访问策略。选择保存。

创建 REST API 访问策略
  1. 导航到系统 Web 服务 > API 访问策略 > REST API 访问策略。

  2. 选择 “新建” 并设置:

    • 名称 — 例如,Table API Oauth access policy.

    • REST API —Table API.

    • REST API 路径 —now/table.

    • 适用于所有方法 -已选中。

    • 应用于所有资源 -已选中。

    • 应用于所有表 -已选中。

    • 适用于所有版本 -已选中。

  3. 选择提交。

  4. Re-open 政策。在入站身份验证配置文件相关列表中,选择编辑并添加您的入站身份验证配置文件。选择保存。

第 7 步:验证 OAuth 流程

在配置数据源之前,请验证 OAuth 流程是否端到端运行。

申请代币:

curl -s -X POST "https://INSTANCE.service-now.com/oauth_token.do" \ -d "grant_type=client_credentials" \ -d "client_id=CLIENT_ID" \ -d "client_secret=CLIENT_SECRET"

验证 Table API 访问权限:

curl -s "https://INSTANCE.service-now.com/api/now/table/kb_knowledge?sysparm_limit=1" \ -H "Authorization: Bearer ACCESS_TOKEN"

下表描述了每个验证结果和要采取的操作。

验证结果
结果 含义 操作
带数据的 HTTP 200 工作正常 继续创建密钥管理器密钥。
带有空数组的 HTTP 200 缺少knowledge_admin角色 将knowledge_admin角色分配给服务帐号。
HTTP 401 未配置 API 访问策略 验证入站身份验证配置文件和 REST API 访问策略配置。

第 8 步:创建 Secrets Manager 密钥

使用以下键值对将凭证存储在与知识库 AWS 区域 相同的 AWS Secrets Manager 密钥中:

{ "clientId": "your-client-id", "clientSecret": "your-client-secret", "instanceUrl": "https://YOUR_INSTANCE.service-now.com" }
秘密领域
字段 说明
clientId 步骤 4 中的应用程序客户端 ID。
clientSecret 应用程序客户端密钥在创建时在步骤 4 中显示。
instanceUrl 完整 ServiceNow 实例 URL(包括https://,无尾斜杠)。
重要

instanceUrl不得有末尾的斜杠。

使用以下命令创建密钥 AWS Command Line Interface:

aws secretsmanager create-secret \ --name bedrock-servicenow-creds \ --secret-string file://secret.json

记录响应中的秘密 ARN。您可以将其用作数据源secretArn。

后续步骤

存储密钥后,创建数据源。请参阅连接 ServiceNow 数据源。