Bảo mật và Audit
Trước khi đọc trang này, hãy đảm bảo bạn đã cài đặt NocoBase CLI và hoàn tất khởi tạo theo Bắt đầu nhanh AI Builder.
Khi Người dùng dùng AI Agent thao tác NocoBase qua NocoBase CLI, cần đặc biệt chú ý đến xác thực, kiểm soát quyền và truy vết audit, để đảm bảo ranh giới thao tác rõ ràng và quá trình có thể theo dõi.
Xác thực
AI Agent kết nối với NocoBase, chủ yếu có hai cách xác thực:
- Xác thực API key: tạo API Key qua plugin API keys, cấu hình vào môi trường CLI, các yêu cầu sau dùng nó để truy cập API
- Xác thực OAuth: hoàn tất một lần xác thực OAuth qua trình duyệt, sau đó truy cập API với danh tính Người dùng hiện tại
Cả hai cách đều có thể dùng cùng lệnh nb, khác biệt nằm ở nguồn gốc danh tính, tình huống áp dụng và chiến lược kiểm soát rủi ro.
Xác thực API key
API key chủ yếu dùng cho các Task tự động hóa, scripting và chạy lâu dài, ví dụ:
- Cho AI Agent đồng bộ dữ liệu định kỳ
- Trong môi trường phát triển thường xuyên gọi
nb api - Dùng vai trò cố định để thực hiện một loại Task xây dựng rõ ràng, ổn định
Quy trình cơ bản như sau:
- Bật plugin API keys trong NocoBase và tạo API Key
- Gắn vai trò chuyên dụng cho API Key này, thay vì gắn trực tiếp toàn bộ quyền của
roothoặc admin - Dùng
nb env addđể lưu địa chỉ API và Token vào môi trường CLI
Ví dụ:
Sau khi cấu hình xong, AI Agent có thể thực hiện các lệnh gọi API qua môi trường này:
Cách này ổn định, phù hợp tự động hóa, và Người dùng cũng không cần đăng nhập lại mỗi lần. Chỉ cần Token chưa hết hạn, người sở hữu nó có thể truy cập hệ thống với quyền của vai trò đã gắn, do đó cần đặc biệt lưu ý:
- Token chỉ gắn vai trò chuyên dụng
- Chỉ lưu trong các môi trường CLI cần thiết
- Xoay vòng định kỳ, không dùng "không bao giờ hết hạn" làm tùy chọn mặc định
- Khi nghi ngờ rò rỉ thì xóa và tạo lại ngay lập tức
Mô tả chung hơn có thể tham khảo Hướng dẫn bảo mật NocoBase.
Xác thực OAuth
OAuth chủ yếu dùng cho các Task thực hiện thao tác với danh tính Người dùng đang đăng nhập, ví dụ:
- Cho AI giúp admin hiện tại làm một lần điều chỉnh cấu hình
- Cần gán thao tác cho Người dùng đăng nhập rõ ràng
- Không muốn lưu Token quyền cao trong thời gian dài
Quy trình cơ bản như sau:
- Trước tiên thêm môi trường CLI, chọn cách xác thực là
oauth - Chạy
nb env auth - Trình duyệt mở trang xác thực, đăng nhập và hoàn tất xác thực
- CLI lưu thông tin xác thực, các yêu cầu
nb apisau truy cập NocoBase với danh tính Người dùng hiện tại - Nếu Người dùng có nhiều vai trò, có thể chỉ định vai trò qua
--role
Ví dụ:
nb env auth sẽ khởi động luồng đăng nhập trên trình duyệt. Sau khi thành công, CLI sẽ lưu thông tin xác thực vào cấu hình môi trường hiện tại, sau đó có thể tiếp tục cho AI Agent gọi nb api.
Thời hạn của access token và refresh token OAuth tuân theo cấu hình chính sách Token của hệ thống.
- Access token OAuth có cùng thời hạn với Token hệ thống, mặc định là 1 ngày
- Refresh token OAuth có cùng thời hạn với phiên hệ thống, mặc định là 7 ngày
CLI sẽ ưu tiên dùng refresh token để tự động làm mới phiên khi access token sắp hết hạn; nếu refresh token đã hết hạn, không khả dụng, hoặc server không trả về refresh token, thì cần chạy lại nb env auth. Nếu thay đổi chính sách Token, cần khởi động lại hệ thống để thay đổi có hiệu lực với dịch vụ OAuth.
Đặc điểm của OAuth là yêu cầu thường được thực hiện trong ngữ cảnh Người dùng đang đăng nhập và vai trò của họ, bản ghi audit cũng dễ tương ứng với người thao tác thực tế hơn. Cách này phù hợp hơn với các thao tác có sự tham gia của con người, cần xác nhận danh tính.
Thực hành khuyến nghị
Khuyến nghị chọn theo các nguyên tắc sau:
- Phát triển, kiểm thử, Task tự động hóa: ưu tiên dùng API key, nhưng nhất định phải gắn vai trò chuyên dụng
- Môi trường production, có sự tham gia của con người, cần gán danh tính chặt chẽ: ưu tiên dùng OAuth
- Thao tác rủi ro cao: dù về mặt kỹ thuật có thể dùng Token, vẫn khuyến nghị chuyển sang dùng OAuth, và do Người dùng có quyền tương ứng hoàn tất xác thực rồi thực hiện
Nếu không có yêu cầu rõ ràng, có thể xử lý theo nguyên tắc mặc định sau:
- Mặc định dùng OAuth
- Chỉ khi rõ ràng cần tự động hóa, không có người trực, hoặc thực thi hàng loạt thì mới dùng API key

