Quasa
Dùng ứng dụng QUASA
Tham gia nền tảng tiên phong về nghề tự do tiền mã hóa Web3 ngay hôm nay!
Mở
Hướng dẫn Thực tiễn

Mở Salesforce cho tác nhân AI: Sai quyền người dùng có thể thành quyền của bot

|Tác giả: Ban biên tập QUASA|7 phút đọc| 3
Mở Salesforce cho tác nhân AI: Sai quyền người dùng có thể thành quyền của bot

Salesforce Hosted MCP chạy mỗi lời gọi công cụ với quyền của người đã xác thực, nên quyền đọc, sửa hoặc xóa cấp sai cho người dùng có thể trở thành khả năng của tác nhân AI. Cách bảo vệ đúng là áp dụng đặc quyền tối thiểu cho tài khoản Salesforce trước, rồi mới thu hẹp External Client App, OAuth scope, máy chủ và tập công cụ.

Một cấu hình production an toàn cần nối liền năm chốt kiểm soát: chỉ cho người được phê duyệt kết nối; dùng mcp_api thay cho quyền API rộng; tách vai trò đọc, cập nhật và quản trị; yêu cầu xác nhận thao tác phá hủy; cuối cùng kiểm tra quyền thực tế qua nhật ký. Không chốt nào có thể bù hoàn toàn cho một tài khoản Salesforce được cấp quá rộng.

1. Khóa quyền từ danh tính người dùng

Mô hình bảo mật Hosted MCP của Salesforce gồm xác thực, ủy quyền và kiểm soát quyền, kèm nhật ký phục vụ kiểm toán; công cụ chạy theo quyền CRUD trên đối tượng, bảo mật cấp trường và quy tắc chia sẻ của chính người kết nối. Đây là cơ sở cho hệ quả trong tiêu đề: bot không nhận một bộ quyền tách biệt an toàn hơn người dùng.

Không dùng tài khoản quản trị để kết nối client AI chỉ vì thuận tiện. Hãy tạo permission set theo đúng công việc MCP và gán cho người dùng nghiệp vụ định danh; nếu phiên mang quyền đọc trường nhạy cảm, sửa cấu hình hoặc xóa bản ghi, tác nhân cũng có thể gọi công cụ trong phạm vi đó.

Trước production, chạy thử bằng người dùng đại diện cho từng vai trò, không chỉ bằng quản trị viên. Kiểm tra cả chiều được phép và bị cấm: một thao tác hợp lệ phải thành công, còn truy cập ngoài CRUD, FLS hoặc sharing đã duyệt phải bị từ chối.

2. Thu hẹp External Client App và vòng đời token

External Client App được giới hạn bằng mcp_api, người dùng phê duyệt trước, thời hạn token và phạm vi mạng đã xác minh.

Tạo External Client App riêng cho từng MCP client để có thể cô lập, kiểm toán và thu hồi từng kết nối. Tài liệu cấu hình External Client App yêu cầu dùng ứng dụng này thay cho Connected App, liệt kê hai scope mcp_apirefresh_token, đồng thời hướng dẫn giới hạn người dùng bằng permission set, giới hạn IP, thời hạn refresh token không quá 30 ngày và token rotation.

  1. Chuyển chính sách OAuth sang người dùng được phê duyệt trước và chỉ gán permission set kết nối cho đúng nhóm.
  2. Đăng ký chính xác callback URL của client; xóa URL thử nghiệm và URL của client không còn sử dụng.
  3. Chỉ bật giới hạn IP khi nhà cung cấp xác nhận dải địa chỉ ổn định và vừa với khả năng allowlist.
  4. Bật rotation, chọn thời hạn refresh token theo rủi ro và chuẩn bị thu hồi token trong OAuth Usage khi nhân sự rời tổ chức, thiết bị thất lạc hoặc client bị nghi xâm nhập.

Scope mcp_api mở đường tới Hosted MCP nhưng không thay thế quyền dữ liệu của người dùng. Ngược lại, không nên cấp scope api chỉ để MCP hoạt động, vì scope đó mở quyền truy cập rộng hơn tới các API của nền tảng.

3. Dùng ma trận ba vai trò thay cho một quyền chung

Ba vai trò đọc, cập nhật và quản trị cho kết quả khác nhau theo đúng permission set trong sandbox Salesforce.

Ma trận sau là điểm khởi đầu để thiết kế permission set và tập công cụ; tổ chức vẫn phải điều chỉnh theo dữ liệu, quy trình và nghĩa vụ tuân thủ của mình.

  • Vai trò đọc: chỉ mở công cụ truy vấn, tìm kiếm và tra cứu schema; cấp Read cho đúng đối tượng và trường; không thêm Create, Edit, Delete, View All hoặc Modify All nếu chưa có lý do được duyệt.
  • Vai trò cập nhật: thêm Create hoặc Edit trên các đối tượng nghiệp vụ xác định, chỉ mở những trường cần thay đổi và loại công cụ xóa hoặc quản trị khỏi tập công cụ.
  • Vai trò quản trị: không dùng cho hoạt động AI thường ngày; chỉ cấp có thời hạn, bằng tài khoản định danh, thử trong sandbox trước và yêu cầu phê duyệt đối với thay đổi metadata, phân quyền, triển khai hoặc xóa dữ liệu.

Một ca kiểm thử âm có thể là: người dùng chỉ đọc Account được truy vấn trường đã cấp nhưng không được đọc trường nhạy cảm, cập nhật Account hoặc xóa Contact. Nếu thao tác đáng lẽ bị chặn vẫn chạy, sửa permission set, FLS hoặc sharing trước; thay đổi prompt không xử lý được quyền vượt mức.

4. Giới hạn công cụ và giữ bước xác nhận

Chỉ kích hoạt những Hosted MCP server cần thiết cho từng nhóm người dùng. Với custom server, bề mặt công cụ nên bám vào một quy trình nghiệp vụ xác định, thay vì gom API, Flow và Apex action không liên quan vào cùng một nơi mà tác nhân có thể gọi.

Hướng dẫn về MCP tool annotations xác định bốn gợi ý boolean gồm readOnlyHint, destructiveHint, idempotentHintopenWorldHint; tài liệu cũng nhấn mạnh đây là gợi ý cho client, không phải cơ chế cưỡng chế. Công cụ chỉ đọc nên có readOnlyHint là true và destructiveHint là false; công cụ xóa hoặc thay đổi không thể đảo ngược phải có destructiveHint là true.

Vì client có thể không tôn trọng annotation, hãy cấu hình bước xác nhận trước khi xóa, cập nhật hàng loạt, thay đổi cấu hình hoặc gọi hệ thống bên ngoài. Đồng thời, vẫn chặn thao tác bằng quyền Salesforce nếu vai trò không cần; xác nhận của con người không biến một quyền cấp sai thành quyền an toàn.

5. Tìm quyền vượt mức trong Event Monitoring

Nhật ký Salesforce lọc lưu lượng SALESFORCE_HOSTED_MCP và làm rõ người dùng, IP, trạng thái cùng phép thử quyền vượt mức bị từ chối.

Trong Setup, mở Event Log File Browser, chọn Event Type là API Total Usage và lọc CSV theo API_CLIENT_CATEGORY = SALESFORCE_HOSTED_MCP. Đối chiếu USER_NAME, CLIENT_IP, STATUS_CODE và thực thể bị tác động để xác định ai gọi công cụ, từ đâu, kết quả ra sao và dữ liệu nào liên quan.

Mẫu rà soát vận hành là nhóm bản ghi theo USER_NAME, CLIENT_IP và STATUS_CODE, sau đó ưu tiên các lỗi lặp lại, IP ngoài phạm vi dự kiến, người dùng không còn được phê duyệt hoặc truy cập thực thể ngoài ma trận vai trò. Ngưỡng cảnh báo và lịch rà soát phải dựa trên độ nhạy của môi trường; không có một ngưỡng chung phù hợp cho mọi tổ chức.

Với mỗi vai trò, thực hiện ít nhất một thao tác cố ý vượt quyền trong sandbox rồi tìm lại lần gọi đó trong nhật ký. Nếu thao tác thành công ngoài dự kiến, quyền đang quá rộng; nếu thao tác bị chặn nhưng không thể truy vết, quy trình kiểm toán vẫn chưa hoàn chỉnh.

6. Checklist trước khi bật production

  • Mỗi MCP client có External Client App riêng, callback URL đúng và không được cấp scope API rộng ngoài nhu cầu.
  • Chỉ người có permission set phê duyệt trước được xác thực; giới hạn IP được dùng khi dải địa chỉ thực sự ổn định.
  • Refresh token có thời hạn, rotation và quy trình thu hồi khẩn cấp.
  • Ba vai trò có permission set, FLS, sharing và tập công cụ riêng; quyền quản trị không được dùng thường trực.
  • Công cụ phá hủy có annotation đúng, client yêu cầu xác nhận và quyền Salesforce vẫn là lớp chặn cuối.
  • Kiểm thử dương và âm đã chạy trong sandbox bằng người dùng đại diện.
  • Nhật ký SALESFORCE_HOSTED_MCP cho phép đối chiếu người dùng, IP, trạng thái và thực thể bị tác động.

Chỉ bật production khi danh tính được phép kết nối, quyền Salesforce đúng với vai trò, thao tác rủi ro có bước xác nhận và các lần gọi có thể kiểm toán. Prompt có thể giảm lỗi vận hành, nhưng không thay thế kiểm soát truy cập, vòng đời token hoặc bằng chứng nhật ký.

Đọc thêm:

Chia sẻ:

Đăng ký bản tin

Nhận tin Web3, AI và tiền mã hóa mới nhất ngay trong hộp thư.

0