Keamanan & Audit
Sebelum membaca halaman ini, harap pastikan Anda telah memasang NocoBase CLI dan menyelesaikan inisialisasi sesuai Mulai Cepat Pembangunan AI.
Saat Pengguna menggunakan AI Agent untuk mengoperasikan NocoBase melalui NocoBase CLI, perlu memberikan perhatian khusus pada autentikasi, kontrol Permission, dan audit trail, untuk memastikan batas operasi yang jelas dan proses yang dapat dilacak.
Autentikasi
AI Agent terhubung ke NocoBase, terutama memiliki dua metode autentikasi:
- Autentikasi API key: Menghasilkan API Key melalui Plugin API keys, mengonfigurasinya ke lingkungan CLI, request selanjutnya langsung menggunakannya untuk mengakses API
- Autentikasi OAuth: Menyelesaikan satu kali autentikasi login OAuth melalui browser, kemudian mengakses API dengan identitas Pengguna saat ini
Kedua metode dapat digunakan dengan perintah nb, perbedaannya terletak pada sumber identitas, skenario aplikasi, dan strategi kontrol risiko yang berbeda.
Autentikasi API key
API key terutama digunakan untuk tugas otomatisasi, scripting, dan jangka panjang, contohnya:
- Membuat AI Agent menyinkronkan data secara terjadwal
- Sering memanggil
nb apidi lingkungan pengembangan - Menjalankan jenis tugas pembangunan yang jelas dan stabil dengan role tetap
Alur dasar sebagai berikut:
- Aktifkan Plugin API keys di NocoBase, dan buat API Key
- Ikat role khusus untuk API Key ini, bukan langsung mengikat Permission lengkap dari
rootatau administrator - Gunakan
nb env adduntuk menyimpan alamat API dan Token ke lingkungan CLI
Contohnya:
Setelah konfigurasi selesai, AI Agent dapat menjalankan panggilan API melalui lingkungan ini:
Cara ini stabil, cocok untuk otomatisasi, dan tidak mengharuskan Pengguna login ulang setiap kali. Selama Token tidak kedaluwarsa, pemegangnya dapat terus mengakses sistem dengan Permission role yang terikat, oleh karena itu harus diperhatikan secara khusus:
- Token hanya mengikat role khusus
- Hanya disimpan di lingkungan CLI yang diperlukan
- Rotasi berkala, jangan menggunakan "tidak pernah kedaluwarsa" sebagai opsi default
- Segera hapus dan buat ulang saat dicurigai bocor
Untuk penjelasan umum lebih lanjut dapat merujuk ke Panduan Keamanan NocoBase.
Autentikasi OAuth
OAuth terutama digunakan untuk tugas yang dijalankan dengan identitas Pengguna login saat ini, contohnya:
- Membuat AI membantu administrator saat ini melakukan penyesuaian konfigurasi sekali pakai
- Perlu mengaitkan operasi ke Pengguna login yang jelas
- Tidak ingin menyimpan Token Permission tinggi dalam jangka panjang
Alur dasar sebagai berikut:
- Tambahkan lingkungan CLI terlebih dahulu, pilih metode autentikasi
oauth - Jalankan
nb env auth - Browser membuka halaman autentikasi, login dan menyelesaikan autentikasi
- CLI menyimpan informasi autentikasi, request
nb apiselanjutnya mengakses NocoBase dengan identitas Pengguna saat ini - Jika Pengguna memiliki beberapa role, role dapat ditentukan melalui
--role
Contohnya:
nb env auth akan memulai alur login browser. Setelah berhasil, CLI akan menyimpan informasi autentikasi ke konfigurasi lingkungan saat ini, kemudian dapat melanjutkan membuat AI Agent memanggil nb api.
Pada implementasi default saat ini:
- Validitas access Token OAuth adalah 10 menit
- Validitas refresh Token OAuth adalah 30 hari
CLI akan, saat access Token mendekati kedaluwarsa, memprioritaskan menggunakan refresh Token untuk me-refresh sesi secara otomatis; jika refresh Token sudah kedaluwarsa, tidak tersedia, atau server tidak mengembalikan refresh Token, perlu menjalankan nb env auth ulang.
Karakteristik OAuth adalah request biasanya dijalankan dengan konteks Pengguna login saat ini dan role-nya, catatan audit juga lebih mudah dikorespondensikan ke pelaku operasi aktual. Cara ini lebih cocok untuk operasi yang melibatkan partisipasi manusia dan memerlukan konfirmasi identitas.
Praktik yang Direkomendasikan
Direkomendasikan memilih berdasarkan prinsip berikut:
- Tugas pengembangan, testing, otomatisasi: Prioritaskan API key, namun harus mengikat role khusus
- Lingkungan production, partisipasi manusia, perlu atribusi identitas yang kuat: Prioritaskan OAuth
- Operasi berisiko tinggi: Meskipun secara teknis dapat menggunakan Token, disarankan beralih ke OAuth, dan dijalankan setelah Pengguna dengan Permission yang sesuai menyelesaikan autentikasi
Jika tidak ada persyaratan yang jelas, dapat ditangani dengan prinsip default berikut:
- Default menggunakan OAuth
- Hanya saat secara jelas membutuhkan otomatisasi, tanpa pengawasan, atau eksekusi batch, baru menggunakan API key
Kontrol Permission
AI Agent sendiri tidak memiliki "Permission tambahan", apa yang dapat dilakukannya sepenuhnya tergantung pada identitas dan role yang digunakan saat ini.
Yang berarti:
- Saat mengakses dengan API key, batas Permission ditentukan oleh role yang diikat Token ini
- Saat mengakses dengan OAuth, batas Permission ditentukan oleh Pengguna login saat ini dan role saat ini
AI tidak akan melewati sistem ACL NocoBase. Jika sebuah role tidak memiliki Permission untuk mengonfigurasi tabel data, Field, halaman, atau Plugin tertentu, AI Agent meskipun mengetahui perintah yang sesuai, tidak akan dapat berhasil menjalankannya.
Role dan Strategi Permission
Direkomendasikan menyiapkan role tersendiri untuk AI Agent, bukan menggunakan kembali role administrator yang sudah ada.
Role ini biasanya hanya perlu membuka Permission dalam cakupan berikut:
- Tabel data mana yang diizinkan untuk dioperasikan
- Action mana yang diizinkan untuk dijalankan, misalnya melihat, membuat, memperbarui, menghapus
- Apakah diizinkan mengakses halaman atau menu tertentu
- Apakah diizinkan masuk ke pengaturan sistem, manajemen Plugin, konfigurasi Permission, dan area berisiko tinggi lainnya
Misalnya, Anda dapat membuat role ai_builder_editor, hanya mengizinkannya:
- Mengelola tabel data terkait CRM
- Mengedit halaman tertentu
- Memicu sebagian Workflow
- Tidak mengizinkan modifikasi Permission role
- Tidak mengizinkan mengaktifkan, menonaktifkan, memasang Plugin
- Tidak mengizinkan menghapus tabel data kunci
Jika perlu membuat AI membantu mengonfigurasi Permission, dapat dikombinasikan dengan Konfigurasi Permission, namun tetap disarankan agar batas Permission ditentukan secara manual terlebih dahulu.
Prinsip Permission Minimum
Prinsip Permission minimum sangat penting dalam skenario Pembangunan AI, dapat menggunakan praktik berikut:
- Pertama buat role khusus untuk AI
- Awalnya hanya membuka Permission lihat
- Berdasarkan tugas secara bertahap menambahkan Permission yang diperlukan seperti membuat, mengedit
- Pertahankan kontrol manusia untuk operasi berisiko tinggi seperti penghapusan, modifikasi Permission, manajemen Plugin
Misalnya:
- AI untuk input konten, hanya perlu Permission lihat dan buat tabel data target
- AI untuk pembangunan halaman, hanya perlu Permission halaman terkait dan konfigurasi UI
- AI untuk pemodelan data, hanya berikan Permission modifikasi struktur tabel di lingkungan testing, jangan langsung berikan ke lingkungan production
Tidak disarankan langsung mengikat role root, admin, atau yang memiliki kemampuan konfigurasi sistem global ke AI Agent. Praktik ini meskipun deployment-nya sederhana, akan secara signifikan memperluas permukaan paparan Permission.
Log
Dalam skenario Pembangunan AI, log digunakan untuk mendukung audit trail operasi dan lokalisasi masalah.
Fokus pada dua jenis log berikut:
- Log request: Mencatat informasi seperti path, metode, status code, durasi, dan sumber request dari request antarmuka
- Log audit: Mencatat subjek pelaksana, objek operasi, hasil, dan metadata terkait dari operasi resource kunci
Saat memulai request melalui nb api, CLI akan secara otomatis menyertakan request header x-request-source: cli, server dapat mengenali request ini berasal dari CLI.
Log Request
Log request digunakan untuk mencatat informasi panggilan antarmuka, termasuk path request, status response, durasi, dan tanda sumber.
File log biasanya berada di:
Pada skenario panggilan nb api, log request akan menyertakan:
req.header.x-request-source
Berdasarkan ini dapat membedakan request CLI dengan request browser biasa.
Untuk penjelasan direktori dan field log request, dapat merujuk ke Log Server NocoBase.
Log Audit
Log audit digunakan untuk mencatat subjek pelaksana, resource target, hasil eksekusi, dan informasi request terkait dari operasi kunci.
Untuk operasi yang sudah masuk ke cakupan audit, log akan mencatat:
resourceactionuserIdroleNamestatusmetadata.request.headers.x-request-source
Misalnya, saat AI memanggil collections:apply, fields:apply, atau operasi tulis lain yang sudah mengaktifkan audit melalui CLI, log audit akan mencatat x-request-source: cli, memudahkan untuk membedakan operasi UI dengan operasi yang dimulai CLI.
Untuk penjelasan detail tentang log audit, dapat merujuk ke Log Audit.
Saran Keamanan
Berikut adalah beberapa saran praktik yang lebih cocok untuk skenario Pembangunan AI:
- Jangan langsung mengikat role
root,admin, atau konfigurasi sistem global ke AI Agent - Buat role khusus untuk AI Agent, dan pisahkan batas Permission berdasarkan tugas
- API key di-rotasi secara berkala, hindari penggunaan jangka panjang Token Permission tinggi yang sama
- Validasi pemodelan data, struktur halaman, dan perubahan Workflow di lingkungan testing terlebih dahulu, baru disinkronkan ke lingkungan production
- Aktifkan dan periksa secara berkala log request dan log audit, untuk memastikan operasi kunci dapat dilacak
- Untuk operasi berisiko tinggi seperti menghapus data, memodifikasi Permission, mengaktifkan/menonaktifkan Plugin, menyesuaikan konfigurasi sistem, disarankan dijalankan setelah konfirmasi manual
- Jika AI perlu berjalan dalam jangka panjang, prioritaskan memisahkannya menjadi beberapa lingkungan dengan Permission rendah, hindari penggunaan terpusat di satu lingkungan dengan Permission tinggi
Tautan Terkait
- Mulai Cepat Pembangunan AI — Instalasi dan persiapan lingkungan
- Manajemen Lingkungan — Pemeriksaan lingkungan, penambahan lingkungan, dan diagnostik masalah
- Konfigurasi Permission — Mengonfigurasi role, kebijakan Permission, dan penilaian risiko
- NocoBase CLI — Tool baris perintah untuk memasang dan mengelola NocoBase
- Panduan Keamanan NocoBase — Saran konfigurasi keamanan yang lebih komprehensif
- Log Server NocoBase — Penjelasan direktori dan field log request
- Log Audit — Penjelasan field catatan audit dan penggunaan
- NocoBase MCP — Menghubungkan AI Agent melalui protokol MCP

