View a markdown version of this page

設定 ServiceNow 的 OAuth 2.0 用戶端登入資料驗證 - Amazon Bedrock

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定 ServiceNow 的 OAuth 2.0 用戶端登入資料驗證

使用 ServiceNow Table API 搭配 OAuth 2.0 用戶端登入資料 (2LO) 進行身分驗證。在 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_admincatalog_admin)。請勿指派 adminitilsnc_read_only角色。

步驟 4:註冊 OAuth 應用程式

  1. 導覽至系統 OAuth > 應用程式登錄檔。

  2. 選擇新增 > 為外部用戶端建立 OAuth API 端點

  3. 填寫表單:

    • 名稱 – 描述性名稱 (例如 Amazon-Quick-KB-Client)。

    • 重新導向 URL – 保留空白。用戶端登入資料流程不需要。

  4. 選擇提交

  5. 立即複製用戶端 ID用戶端秘密。Client Secret 只會顯示一次。

重要

您必須使用攔截器頁面來建立應用程式。請勿直接插入oauth_entity資料表來建立記錄。

步驟 5:設定 OAuth 應用程式

  1. 從應用程式登錄清單中重新開啟應用程式記錄。

  2. 如果看不到 OAuth 應用程式使用者欄位,請使用設定 > 表單建置器新增它。

  3. 設定下列欄位:

    • OAuth 應用程式使用者 – 您的服務帳戶 (例如 svc.amazon.quick.kb)。

    • 範圍限制Broadly scoped

    • 用戶端類型integration_as_a_service

  4. 選擇更新

步驟 6:設定 API 存取政策

如果沒有 API 存取政策,權杖會進行身分驗證,但資料表 API 會傳回 HTTP 401。完成以下兩個子步驟。

建立傳入身分驗證設定檔
  1. 導覽至系統 Web 服務 > API 存取政策 > 傳入身分驗證設定檔

  2. 選擇新增並設定:

    • 名稱 – 例如,Amazon-Quick-KB-Client-Profile

    • 類型OAuth.

    • OAuth 實體 – 選取您的 OAuth 應用程式。

  3. 選擇提交

  4. 重新開啟設定檔。在身分驗證政策相關清單中,選擇編輯並新增允許存取政策。選擇儲存

建立 REST API 存取政策
  1. 導覽至系統 Web 服務 > API 存取政策 > REST API 存取政策

  2. 選擇新增並設定:

    • 名稱 – 例如,Table API Oauth access policy

    • REST APITable API

    • REST API 路徑now/table

    • 套用至所有方法 – 已檢查。

    • 套用至所有資源 – 已檢查。

    • 套用至所有資料表 – 已檢查。

    • 套用至所有版本 – 已檢查。

  3. 選擇提交

  4. 重新開啟政策。在傳入身分驗證設定檔相關清單中,選擇編輯並新增傳入身分驗證設定檔。選擇儲存

步驟 7:驗證 OAuth 流程

設定資料來源之前,請確認 OAuth 流程可end-to-end運作。

請求權杖:

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"

驗證資料表 API 存取:

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

下表說明每個驗證結果和要採取的動作。

驗證結果
結果 意義 Action
HTTP 200 與資料 正常運作 繼續建立 Secrets Manager 秘密。
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 資料來源