AIINEWS

AIINEWS

Báo cáo chuyên sâu về Trí tuệ nhân tạo và Công nghệ toàn cầu

ServiceNow trao đổi token thay mặt cho Bedrock AgentCore Gateway

Ban biên tập AIINEWS•technology
03 tháng 11, 2026•16 phút đọc
ServiceNow trao đổi token thay mặt cho Bedrock AgentCore Gateway

Tóm lược nhanh

Tổng hợp và đối chiếu bởi gemini-2.0-flash-thinking-exp

“Các tác nhân AI tương tác với API doanh nghiệp thay mặt người dùng cần duy trì danh tính người dùng”

Các điểm cốt lõi

  • 1.Các tác nhân AI tương tác với API doanh nghiệp thay mặt người dùng cần duy trì danh tính người dùng trong suốt chuỗi yêu cầu.
  • 2.Nếu không có sự lan truyền danh tính, các lệnh gọi API sẽ đến các dịch vụ hạ nguồn với tư cách là chính ứng dụng chứ không phải là người dùng đã thực hiện hành động.
  • 3.Điều này phá vỡ các quy trình kiểm tra, bỏ qua các biện pháp kiểm soát quyền truy cập ở cấp độ người dùng và vi phạm nguyên tắc đặc quyền tối thiểu.

Các tác nhân AI tương tác với API doanh nghiệp thay mặt người dùng cần duy trì danh tính người dùng trong suốt chuỗi yêu cầu. Nếu không có sự lan truyền danh tính, các lệnh gọi API sẽ đến các dịch vụ hạ nguồn với tư cách là chính ứng dụng chứ không phải là người dùng đã thực hiện hành động. Điều này phá vỡ các quy trình kiểm tra, bỏ qua các biện pháp kiểm soát quyền truy cập ở cấp độ người dùng và vi phạm nguyên tắc đặc quyền tối thiểu. Amazon Bedrock AgentCore là một nền tảng để xây dựng, kết nối và tối ưu hóa các tác nhân trên quy mô lớn, với bất kỳ khung hoặc mô hình nào. Bài đăng này trình bày cách định cấu hình AgentCore Gateway, một khả năng của Amazon Bedrock AgentCore, để trao đổi mã thông báo thay mặt (OBO) với Microsoft Entra ID. Sau đó, tác nhân AI có thể gọi API ServiceNow REST trong khi vẫn giữ được danh tính của người dùng đang gọi. Bạn định cấu hình trao đổi mã thông báo trên mục tiêu cổng và AgentCore Gateway thực hiện trao đổi theo từng yêu cầu. Mẫu này có thể được áp dụng cho các API REST khác được OAuth bảo vệ. Trong quá trình sản xuất, bạn có thể ghép nối thêm việc truyền nhận dạng với Amazon Bedrock Guardrails để lọc nội dung có hại và xác thực đầu vào và đầu ra của tác nhân. Tổng quan về giải pháp Kiến trúc bao gồm ba thành phần chính được kết nối thông qua AgentCore Gateway:

Một ứng dụng tác nhân AI, được bảo vệ bởi Microsoft Entra ID thông qua đăng ký ứng dụng OAuth. Máy chủ Giao thức bối cảnh mô hình (MCP), được triển khai bằng AgentCore Gateway, nằm giữa tác nhân và ServiceNow. API ServiceNow REST, được định cấu hình với tích hợp OAuth gửi đến được gắn với ID Microsoft Entra.

Hình sau đây minh họa kiến ​​trúc giải pháp toàn diện, bao gồm các thành phần trong AWS, Microsoft Entra ID và ServiceNow.

Hình 1: Kiến trúc giải pháp trên AWS, Microsoft Entra ID và ServiceNow

Như được hiển thị trong Hình 1, người dùng nhận được Mã thông báo Web JSON (JWT) để gọi tác nhân 1. Tác nhân xác thực với cổng bằng mã thông báo JWT trong phạm vi đăng ký ứng dụng của chính tác nhân 2. Sau đó, cổng trao đổi mã thông báo đó, sử dụng luồng OBO, để lấy mã thông báo mới trong phạm vi trình kết nối API ServiceNow, với danh tính của người dùng ban đầu được giữ nguyên 3. ServiceNow nhận được mã thông báo hợp lệ có yêu cầu preferences_username ánh xạ tới người dùng ServiceNow hiện tại và áp dụng các quyền của người dùng đó cho API gọi 4. Cách trao đổi mã thông báo OBO hoạt động trong bối cảnh này Khi tác nhân gọi cổng, nó sẽ hiển thị JWT với xác nhận quyền sở hữu đối tượng khớp với ID khách hàng của tác nhân (ví dụ: 3ff88e17-XXXX-XXXX-XXXX-XXXXXXXXXXXX). Tuy nhiên, ServiceNow yêu cầu mã thông báo có xác nhận quyền sở hữu đối tượng khớp với ID ứng dụng khách trình kết nối API của chính nó (5d4a7a11-XXXX-XXXX-XXXX-XXXXXXXXXXXX). Dòng OBO thu hẹp khoảng cách này. Cổng AgentCore gửi mã thông báo gửi đến điểm cuối mã thông báo Entra cùng với thông tin xác thực ứng dụng khách của ứng dụng đại lý, phạm vi mục tiêu và tham số request_token_use: on_behalf_of. Entra xác thực rằng người dùng cuộc gọi đã đồng ý ủy quyền, sau đó cấp mã thông báo mới cho API ServiceNow với các xác nhận quyền sở hữu của người dùng ban đầu còn nguyên vẹn. Điều kiện tiên quyết Trước khi bắt đầu, bạn cần những điều sau:

Tài khoản AWS có quyền truy cập vào AgentCore Gateway. Đối tượng thuê Microsoft Entra ID có quyền tạo đăng ký ứng dụng. Tài khoản của bạn cần có ít nhất vai trò Nhà phát triển ứng dụng để đăng ký ứng dụng. Phiên bản ServiceNow có quyền truy cập quản trị để định cấu hình tích hợp OAuth gửi đến. Bạn có thể tạo phiên bản nhà phát triển cá nhân ServiceNow (PDI) tại trang đăng ký phiên bản nhà phát triển cá nhân ServiceNow https://developer.servicenow.com/. Hai đăng ký ứng dụng Entra: một đại diện cho tác nhân AI và một đại diện cho trình kết nối API ServiceNow.

Định cấu hình ID Microsoft Entra Bắt đầu bằng cách tạo đăng ký ứng dụng để đại diện cho trình kết nối API ServiceNow. Ảnh chụp màn hình sau đây hiển thị trang đăng ký ứng dụng cho Trình kết nối API ServiceNow trong Microsoft Entra ID.

Hình 2: Đăng ký ứng dụng cho trình kết nối API ServiceNow trong Microsoft Entra ID

Sau khi tạo, tại trang Tổng quan hãy ghi lại ID Ứng dụng (máy khách). Trong menu điều hướng, hãy mở rộng Quản lý và chọn Hiển thị API rồi thêm phạm vi có tên user_impersonation bằng URI ID ứng dụng mặc định. Phạm vi này là những gì luồng OBO yêu cầu khi trao đổi mã thông báo. Ảnh chụp màn hình sau đây cho biết cách hiển thị API trong Microsoft Entra ID.

Hình 3: Hiển thị phạm vi user_impersonation trong Microsoft Entra ID

Tiếp theo, tạo đăng ký ứng dụng cho tác nhân AI. Ảnh chụp màn hình sau đây hiển thị trang đăng ký ứng dụng trong Microsoft Entra ID cho ứng dụng ServiceNow Agent.

Hình 4: Đăng ký ứng dụng cho ServiceNow Agent trong Microsoft Entra ID

Lưu ý ID ứng dụng (máy khách) cho ServiceNowAgent. Tạo một bí mật khách hàng về đăng ký này. Cổng cần những thông tin xác thực này để thực hiện trao đổi OBO. Ảnh chụp màn hình sau đây cho thấy cách bạn có thể tạo bí mật ứng dụng khách khi đăng ký ứng dụng ServiceNow Agent trong Microsoft Entra ID.

Hình 5: Tạo bí mật máy khách khi đăng ký ứng dụng ServiceNow Agent

Sau đó, định cấu hình ứng dụng tác nhân để có quyền API để gọi ứng dụng trình kết nối API ServiceNow. Ảnh chụp màn hình sau đây hiển thị các quyền API mà bạn cần đặt cấu hình khi đăng ký ứng dụng ServiceNow Agent trong Microsoft Entra ID.

Hình 6: Cấu hình quyền API trong Microsoft Entra ID

Không cần thay đổi cấu hình Entra nào ngoài những gì bạn sẽ thiết lập cho bất kỳ tích hợp OBO tiêu chuẩn nào giữa hai ứng dụng. Định cấu hình ServiceNow Trong bảng điều khiển quản trị ServiceNow, hãy điều hướng đến System OAuth > Tích hợp trong nước và tạo tích hợp gửi đến mới (Mã thông báo ID bên thứ ba do nhà cung cấp danh tính hỗ trợ OIDC cấp). Chỉ định ID khách hàng từ đăng ký ứng dụng trình kết nối API ServiceNow mà bạn đã tạo trong Entra. Ảnh chụp màn hình sau đây hiển thị cấu hình tích hợp gửi đến trong ServiceNow.

Hình 7: Cấu hình tích hợp gửi đến trong ServiceNow

Trong cùng một màn hình, tạo cấu hình nhà cung cấp OpenID Connect (OIDC) mới và nhập URL siêu dữ liệu OIDC cho đối tượng thuê Entra của bạn. Ánh xạ xác nhận quyền sở hữu của người dùng tới trường người dùng thích hợp. Ví dụ: nếu đối tượng thuê Entra của bạn đặt email của người dùng vào yêu cầu preferences_username, hãy ánh xạ email đó tới trường Email trong ServiceNow. Xóa xác minh JTI nếu đối tượng thuê Entra của bạn không đưa nó vào mã thông báo. Entra sử dụng một xác nhận quyền sở hữu nội bộ có tên uti đối với các token mà nó phát hành, tương đương với JTI. Hãy cân nhắc việc liên kết xác nhận quyền sở hữu uti này với xác nhận quyền sở hữu jti để cung cấp thêm tính năng bảo vệ chống lặp lại và đưa vào danh sách từ chối. Ảnh chụp màn hình sau đây cho biết cách định cấu hình nhà cung cấp OIDC trong ServiceNow.

Hình 8: Cấu hình nhà cung cấp OAuth OIDC trong ServiceNow

Cuối cùng, trên cùng một màn hình, hãy tạo phạm vi xác thực cho quá trình tích hợp (ví dụ: APIConnector). Ảnh chụp màn hình sau đây cho biết cách tạo phạm vi xác thực mới trong ServiceNow.

Hình 9: Tạo phạm vi xác thực mới trong ServiceNow

Giới hạn phạm vi xác thực ở API bảng hoặc bất kỳ API ServiceNow nào mà tác nhân của bạn cần truy cập, như minh họa trong ảnh chụp màn hình sau.

Hình 10: Giới hạn phạm vi xác thực đối với API bảng trong ServiceNow

Sau khi cấu hình này hoàn tất, ServiceNow chấp nhận mã thông báo ủy quyền với đối tượng là ID khách hàng của trình kết nối API của bạn và giải quyết người dùng đang gọi khỏi xác nhận quyền sở hữu preferences_username. Định cấu hình Cổng AgentCore Với Entra và ServiceNow đã được định cấu hình, giờ đây bạn có thể thiết lập Cổng AgentCore để xử lý trao đổi OBO một cách nguyên bản. Bước 1: Tạo cấu hình xác thực gửi đi Tạo cấu hình xác thực gửi đi mới (chọn Xây dựng > Nhận dạng > Thêm xác thực gửi đi > Thêm ứng dụng khách OAuth) trong AgentCore và chọn Nhà cung cấp tùy chỉnh. Nhập ID khách hàng và bí mật khách hàng từ đăng ký ứng dụng đại lý của bạn, cùng với URL khám phá Entra như trong ảnh chụp màn hình sau.

Hình 11: Thêm ứng dụng khách OAuth vào Cổng AgentCore

Mở rộng Cấu hình bổ sung và chọn cấp quyền JWT như trong ảnh chụp màn hình sau. Điều này yêu cầu cổng sử dụng loại cấp phép dựa trên JWT để trao đổi mã thông báo.

Hình 12: Cấu hình cấp quyền cho JWT

Bước 2: Tạo cổng với phiên bản MCP 2025-11-25 Tạo Cổng AgentCore mới (Xây dựng > Cổng > Tạo cổng). Khi xác định chi tiết cổng, hãy mở rộng Cấu hình bổ sung — tùy chọn và chọn phiên bản MCP 2025-11-25 như trong ảnh chụp màn hình sau. Phiên bản này là cần thiết để hỗ trợ OBO gốc. Bạn không thể bật OBO gốc cho các cổng được tạo bằng phiên bản MCP cũ hơn.

Hình 13: Chọn phiên bản MCP 2025-11-25

Định cấu hình danh tính gửi đến bằng cách sử dụng đăng ký ứng dụng của đại lý (chọn Sử dụng cấu hình nhà cung cấp danh tính hiện có), giống như cách bạn làm đối với bất kỳ cổng nào chấp nhận yêu cầu được xác thực bằng Entra. Trong Cấu hình ủy quyền JWT, hãy thêm ID ứng dụng mà chúng tôi đã ghi lại trước đó cho ServiceNowAgent như trong ảnh chụp màn hình sau.

Hình 14: Cấu hình ủy quyền gửi đến trong AgentCore Gateway

Bước 3: Thêm mục tiêu bằng trao đổi token Thêm mục tiêu vào cổng trỏ tới điểm cuối ServiceNow REST của bạn. Xác định lược đồ nội tuyến. Ví dụ: để hiển thị một công cụ có tên ListIncidents gọi API Bảng ServiceNow, bạn có thể sử dụng đặc tả OpenAPI sau (thay thế URL máy chủ bằng URL đó cho PDI của bạn).

{ "openapi": "3.0.0", "thông tin": { "title": "API sự cố ServiceNow (Tối thiểu)", "description": "Một tập hợp con của API Bảng ServiceNow để liệt kê các bản ghi sự cố.", "phiên bản": "1.0.0" }, "máy chủ": [ { "url": "https://devxxx.service-now.com/api/now/table", "biến": { "ví dụ": { "mặc định": "devxxx", "description": "Tên phiên bản ServiceNow của bạn." } } } ], "đường dẫn": { "/sự cố": { "có được": { "OperationId": "getIncident", "tóm tắt": "Liệt kê các sự cố", "description": "Truy xuất danh sách các bản ghi sự cố từ phiên bản ServiceNow.", "tham số": [ { "tên": "sysparm_limit", "trong": "truy vấn", "description": "Số bản ghi tối đa cần trả về.", "lược đồ": { "loại": "số nguyên", "mặc định": 10 } }, { "tên": "sysparm_query", "trong": "truy vấn", "description": "Chuỗi truy vấn được mã hóa để lọc kết quả (ví dụ: active=true)", "lược đồ": { "loại": "chuỗi" } }, { "tên": "sysparm_fields", "trong": "truy vấn", "description": "Danh sách các trường được phân tách bằng dấu phẩy cần trả về.", "lược đồ": { "loại": "chuỗi" } } ], "phản hồi": { "200": { "description": "Phản hồi thành công chứa một loạt sự cố.", "nội dung": { "ứng dụng/json": { "lược đồ": { "loại": "đối tượng", "thuộc tính": { "kết quả": { "loại": "mảng", "mục": { "$ref": "#/thành phần/lược đồ/Sự cố" } } } } } } }, "401": { "description": "Trái phép - Thông tin xác thực không hợp lệ." } }, "bảo mật": [ { "bearerAuth": [] } ] } } }, "thành phần": { "Schemes bảo mật": { "bearerAuth": { "loại": "http", "sơ đồ": "người mang", "bearerFormat": "JWT" } }, "lược đồ": { "Sự cố": { "loại": "đối tượng", "thuộc tính": { "sys_id": { "loại": "chuỗi", "description": "Mã định danh duy nhất cho sự cố." }, "số": { "loại": "chuỗi", "description": "ID sự cố (ví dụ: INC0000001)." }, "short_description": { "loại": "chuỗi", "description": "Tóm tắt ngắn gọn về vụ việc." }, "mức độ nghiêm trọng": { "loại": "chuỗi", "description": "Mức độ nghiêm trọng của sự cố." }, "trạng thái": { "loại": "chuỗi", "description": "Trạng thái hiện tại của sự cố (ví dụ: Mới, Đang tiến hành, Đã đóng)." }, "sys_created_on": { "loại": "chuỗi", "định dạng": "ngày giờ", "description": "Dấu thời gian khi sự cố được tạo ra." } } } } } }

Ảnh chụp màn hình sau đây cho thấy cách định cấu hình mục tiêu API REST trong Cổng AgentCore bằng lược đồ OpenAPI.

Hình 15: Định cấu hình mục tiêu API REST với lược đồ ServiceNow OpenAPI

Đối với cấu hình Xác thực gửi đi trên mục tiêu, hãy chọn OAuth làm nhà cung cấp danh tính gửi đi và chọn cấu hình xác thực gửi đi mà bạn đã tạo ở Bước 1. Bây giờ hãy mở rộng phần Cấu hình bổ sung và chọn Cấp trao đổi mã thông báo. Cấu hình như sau: Phạm vi: api://5d4a7a11-xxxx-xxxx-xxxx-xxxxxxxxxxxx/user_impersonation Đây là phạm vi bạn đã trình bày khi đăng ký ứng dụng trình kết nối API ServiceNow trong Entra. Thông số tùy chỉnh (cặp khóa-giá trị): request_token_use:on_behalf_of Thông số này rất quan trọng. Nếu không có nó, Entra sẽ không thực hiện trao đổi OBO và cuộc gọi tới ServiceNow không thành công do lỗi xác thực. Cấu hình cuối cùng được hiển thị trong ảnh chụp màn hình sau.

Hình 16: Cấu hình trao đổi token trên mục tiêu AgentCore Gateway

Bước 4: Lưu và kiểm tra Lưu cấu hình mục tiêu. Cổng AgentCore hiện tự động trao đổi mã thông báo gửi đến để lấy mã thông báo ServiceNow hợp lệ, bảo vệ danh tính người dùng mà không cần mã tùy chỉnh. Khi một tác nhân gọi tới cổng, điều sau đây sẽ diễn ra một cách rõ ràng:

Cổng nhận JWT của đại lý (đối tượng: ID khách hàng của đại lý). Cổng gửi mã thông báo đến điểm cuối mã thông báo của Entra với loại cấp OBO. Entra phát hành mã thông báo mới (đối tượng: ID ứng dụng khách của trình kết nối API ServiceNow) với các xác nhận quyền sở hữu của người dùng ban đầu. Cổng chuyển tiếp yêu cầu tới ServiceNow bằng mã thông báo đã trao đổi. ServiceNow phân giải người dùng khỏi mã thông báo và áp dụng các quyền của họ.

Đoạn mã sau đây hiển thị một tác nhân trò chuyện tối thiểu tương tác với ServiceNow thông qua máy chủ MCP.

hệ thống nhập khẩu sợi nhập khẩu từ các sợi.models nhập BedrockModel từ Strands.tools.mcp nhập MCPClient từ mcp.client.streamable_http nhập streamingablehttp_client

token = sys.argv[1] if len(sys.argv) > 1 else sys.exit("Cách sử dụng: python snow_agent.py") MCP_URL = " " mcp_client = MCPClient(lambda: streamingablehttp_client(url=MCP_URL, headers={"Authorization": f"Bearer {token}"})) tác nhân = sợi.Agent( model=BedrockModel(model_id="global.anthropic.claude-sonnet-4-6", streaming=False), system_prompt=( "Bạn có một công cụ tên là 'target-snow___getIncidents'." "Khi được hỏi về sự cố, hãy gọi ngay mà không có thông số." "Không bao giờ hỏi người dùng thông tin xác thực hoặc chi tiết phiên bản --- công cụ này đã được định cấu hình sẵn." ), công cụ=[mcp_client], )

while (user_input := input("\nYou:")).low() không vào ("thoát", "exit", "q"): print(f"\nTác nhân: {agent(user_input)}")

Khắc phục sự cố Nếu bạn nhận được lỗi xác thực từ ServiceNow, hãy xác minh rằng:

Xác nhận quyền sở hữu ưa thích trong mã thông báo được trao đổi ánh xạ tới email người dùng hợp lệ trong ServiceNow. Phạm vi xác thực trên tích hợp gửi đến ServiceNow cho phép truy cập vào các điểm cuối API mà đại lý của bạn đang gọi. Ứng dụng tác nhân có quyền API đối với ứng dụng trình kết nối API ServiceNow trong Entra.

Dọn dẹp Để tránh bị tính phí liên tục, hãy xóa các tài nguyên sau nếu bạn tạo chúng để thử nghiệm:

Cổng AgentCore và các mục tiêu của nó. Cấu hình xác thực gửi đi. Đăng ký ứng dụng Entra (nếu được tạo riêng cho hướng dẫn này). Tích hợp gửi đến ServiceNow và cấu hình nhà cung cấp OIDC.

Kết luận Hỗ trợ OBO gốc trong AgentCore Gateway loại bỏ nhu cầu về các thiết bị chặn AWS Lambda tùy chỉnh để thực hiện trao đổi mã thông báo. Bạn định cấu hình trao đổi mã thông báo trực tiếp trên mục tiêu cổng và cổng xử lý nó một cách minh bạch theo mọi yêu cầu. Cách tiếp cận này duy trì danh tính người dùng trong chuỗi tác nhân đến API, hỗ trợ các biện pháp kiểm soát quyền truy cập cấp người dùng của ServiceNow và loại bỏ mã tùy chỉnh cần được duy trì riêng. Để bắt đầu với AgentCore Gateway, hãy xem tài liệu Amazon Bedrock AgentCore. Để biết thêm về luồng OBO của Microsoft Entra, hãy tham khảo tài liệu về nền tảng nhận dạng của Microsoft.

Về các tác giả

Bản quyền nội dung và biên tập thuộc về Ban biên tập AIINEWS
Chia sẻ bài phân tích này:

Các phân tích liên quan

TP HCM đề xuất cơ chế giao nhiệm vụ và đấu thầu đào tạo nhân lực chất lượng cao
Chính sách công nghệkhoảng 11 giờ trước

TP HCM đề xuất cơ chế giao nhiệm vụ và đấu thầu đào tạo nhân lực chất lượng cao

Sở Khoa học và Công nghệ TP HCM đang lấy ý kiến cho dự thảo nghị quyết áp dụng ba phương thức giao nhiệm vụ, đặt hàng và đấu thầu nhằm đào tạo nhân lực chất lượng cao. Chính sách này nhắm đến sáu lĩnh vực ưu tiên phục vụ phát triển kinh tế xã hội và chuyển đổi số.

2 phút đọc