เอกสารนี้แปลโดย AI หากมีข้อมูลที่ไม่ถูกต้อง โปรดดูเวอร์ชันภาษาอังกฤษ
NocoBase ให้ความสำคัญกับความปลอดภัยของข้อมูลและแอปพลิเคชันตั้งแต่ขั้นตอนการออกแบบฟังก์ชันไปจนถึงการพัฒนาระบบครับ แพลตฟอร์มนี้มีฟังก์ชันความปลอดภัยในตัวหลายอย่าง เช่น การยืนยันตัวตนผู้ใช้ (user authentication), การควบคุมการเข้าถึง (access control), และการเข้ารหัสข้อมูล (data encryption) พร้อมทั้งยังสามารถกำหนดค่านโยบายความปลอดภัยได้อย่างยืดหยุ่นตามความต้องการ ไม่ว่าจะเป็นการปกป้องข้อมูลผู้ใช้, การจัดการสิทธิ์การเข้าถึง, หรือการแยกสภาพแวดล้อมสำหรับการพัฒนาและใช้งานจริง (development and production environments) NocoBase ก็มีเครื่องมือและแนวทางที่ใช้งานได้จริงให้ครับ คู่มือนี้มีจุดประสงค์เพื่อให้คำแนะนำในการใช้งาน NocoBase อย่างปลอดภัย ช่วยให้ผู้ใช้สามารถปกป้องข้อมูล, แอปพลิเคชัน, และสภาพแวดล้อมของตนเอง เพื่อให้มั่นใจว่าสามารถใช้งานฟังก์ชันต่างๆ ของระบบได้อย่างมีประสิทธิภาพและปลอดภัยครับ
การยืนยันตัวตนผู้ใช้มีไว้เพื่อระบุตัวตนของผู้ใช้ ป้องกันไม่ให้ผู้ใช้ที่ไม่ได้รับอนุญาตเข้าสู่ระบบ และเพื่อให้แน่ใจว่าตัวตนของผู้ใช้จะไม่ถูกนำไปใช้ในทางที่ผิดครับ
โดยปกติแล้ว NocoBase จะใช้ JWT (JSON Web Token) ในการตรวจสอบสิทธิ์สำหรับ API ของฝั่งเซิร์ฟเวอร์ ผู้ใช้สามารถตั้งค่าคีย์ของ Token ผ่านตัวแปรสภาพแวดล้อมของระบบที่ชื่อว่า APP_KEY ได้ครับ โปรดจัดการคีย์ของ Token ของแอปพลิเคชันอย่างเหมาะสมเพื่อป้องกันการรั่วไหลสู่ภายนอก ข้อควรระวังคือ หากมีการแก้ไข APP_KEY Token เก่าทั้งหมดจะใช้งานไม่ได้ทันทีครับ
NocoBase รองรับการตั้งค่านโยบายความปลอดภัยสำหรับ Token ของผู้ใช้ดังต่อไปนี้ครับ
| รายการตั้งค่า | คำอธิบาย |
|---|---|
| อายุของเซสชัน (Session Validity) | ระยะเวลาที่ยาวนานที่สุดที่ผู้ใช้สามารถล็อกอินได้ในแต่ละครั้ง ในช่วงเวลาที่เซสชันยังไม่หมดอายุ Token จะถูกอัปเดตโดยอัตโนมัติ หลังจากหมดเวลาแล้ว ผู้ใช้จะต้องล็อกอินใหม่อีกครั้ง |
| อายุของ Token (Token Validity) | อายุการใช้งานของ API Token ที่ออกให้แต่ละครั้ง หลังจาก Token หมดอายุ หากยังอยู่ในช่วงเวลาที่เซสชันยังไม่หมดอายุและยังไม่เกินขีดจำกัดเวลาในการรีเฟรช เซิร์ฟเวอร์จะออก Token ใหม่ให้โดยอัตโนมัติเพื่อรักษาเซสชันของผู้ใช้ไว้ มิฉะนั้นผู้ใช้จะต้องล็อกอินใหม่ (Token แต่ละอันสามารถรีเฟรชได้เพียงครั้งเดียว) |
| ระยะเวลาที่สามารถรีเฟรช Token ที่หมดอายุได้ (Expired Token Refresh Limit) | ระยะเวลาสูงสุดที่อนุญาตให้รีเฟรช Token ได้หลังจากที่หมดอายุไปแล้ว |
โดยทั่วไป เราขอแนะนำให้ผู้ดูแลระบบ (administrator) ทำดังนี้ครับ
โดยปกติแล้ว Token ของผู้ใช้จะถูกเก็บไว้ใน LocalStorage ของเบราว์เซอร์ หลังจากปิดหน้าเบราว์เซอร์แล้วเปิดใหม่อีกครั้ง หาก Token ยังไม่หมดอายุ ผู้ใช้ก็ไม่จำเป็นต้องล็อกอินใหม่ครับ
หากคุณต้องการให้ผู้ใช้ต้องล็อกอินใหม่ทุกครั้งที่เข้าสู่หน้าเว็บ คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อม API_CLIENT_STORAGE_TYPE=sessionStorage เพื่อบันทึก Token ของผู้ใช้ไปยัง SessionStorage ของเบราว์เซอร์ ซึ่งจะทำให้ผู้ใช้ต้องล็อกอินใหม่ทุกครั้งที่เปิดหน้าเว็บครับ
สำหรับ Professional Edition ขึ้นไป
NocoBase รองรับการตั้งค่ากฎรหัสผ่านและนโยบายการล็อกบัญชีเมื่อพยายามล็อกอินด้วยรหัสผ่านผิดพลาดสำหรับผู้ใช้ทุกคน เพื่อเพิ่มความปลอดภัยให้กับแอปพลิเคชัน NocoBase ที่เปิดใช้งานการล็อกอินด้วยรหัสผ่าน คุณสามารถดูรายละเอียดการตั้งค่าแต่ละรายการได้ที่ นโยบายรหัสผ่าน ครับ
| รายการตั้งค่า | คำอธิบาย |
|---|---|
| ความยาวรหัสผ่าน (Password Length) | ความยาวขั้นต่ำที่ต้องการสำหรับรหัสผ่าน โดยมีความยาวสูงสุด 64 ตัวอักษร |
| ความซับซ้อนของรหัสผ่าน (Password Complexity) | ตั้งค่าความซับซ้อนที่ต้องการสำหรับรหัสผ่าน เช่น ต้องมีตัวอักษรประเภทใดบ้าง |
| ไม่อนุญาตให้รหัสผ่านมีชื่อผู้ใช้ (Can't Include Username in Password) | ตั้งค่าว่ารหัสผ่านสามารถมีชื่อผู้ใช้ของผู้ใช้ปัจจุบันอยู่ด้วยได้หรือไม่ |
| จดจำประวัติรหัสผ่าน (Remember Password History) | จดจำจำนวนรหัสผ่านล่าสุดที่ผู้ใช้เคยใช้ ผู้ใช้จะไม่สามารถใช้รหัสผ่านซ้ำได้เมื่อทำการเปลี่ยนรหัสผ่าน |
| รายการตั้งค่า | คำอธิบาย - |
|---|---|
| อายุของรหัสผ่าน (Password Validity Period) | อายุการใช้งานของรหัสผ่านผู้ใช้ ผู้ใช้จะต้องเปลี่ยนรหัสผ่านก่อนที่จะหมดอายุเพื่อคำนวณอายุการใช้งานใหม่ หากไม่เปลี่ยนรหัสผ่านก่อนหมดอายุ จะไม่สามารถใช้รหัสผ่านเก่าล็อกอินได้ และต้องให้ผู้ดูแลระบบช่วยรีเซ็ต หากมีการตั้งค่าวิธีการล็อกอินอื่นไว้ ผู้ใช้สามารถใช้วิธีอื่นในการล็อกอินได้ |
| ช่องทางการแจ้งเตือนเมื่อรหัสผ่านใกล้หมดอายุ (Password Expiration Reminder Notification Channel) | ภายใน 10 วันก่อนที่รหัสผ่านของผู้ใช้จะหมดอายุ ระบบจะส่งการแจ้งเตือนทุกครั้งที่ผู้ใช้ล็อกอิน - |
| รายการตั้งค่า | คำอธิบาย - |
|---|---|
| จำนวนครั้งสูงสุดที่พยายามล็อกอินด้วยรหัสผ่านผิด (Maximum Invalid Password Login Attempts) | ตั้งค่าจำนวนครั้งสูงสุดที่ผู้ใช้สามารถพยายามล็อกอินได้ภายในช่วงเวลาที่กำหนด - |
| ช่วงเวลาสูงสุดสำหรับการนับจำนวนครั้งที่ล็อกอินผิด (วินาที) (Maximum Invalid Password Login Time Interval (seconds)) | ตั้งค่าช่วงเวลาสำหรับการนับจำนวนครั้งสูงสุดที่ผู้ใช้ล็อกอินผิดพลาด หน่วยเป็นวินาที - |
| ระยะเวลาล็อกบัญชี (วินาที) (Lock Time (seconds)) | ตั้งค่าระยะเวลาที่จะล็อกบัญชีผู้ใช้หลังจากที่ผู้ใช้พยายามล็อกอินด้วยรหัสผ่านผิดเกินขีดจำกัด (0 หมายถึงไม่จำกัด) ในช่วงเวลาที่ผู้ใช้ถูกล็อก จะไม่สามารถเข้าถึงระบบด้วยวิธีการยืนยันตัวตนใดๆ ได้เลย รวมถึง API keys ด้วย |
โดยทั่วไป เราขอแนะนำดังนี้ครับ

สำหรับ Professional Edition ขึ้นไป, รวมอยู่ในปลั๊กอินนโยบายรหัสผ่าน
จัดการผู้ใช้ที่ถูกล็อกเนื่องจากพยายามล็อกอินด้วยรหัสผ่านผิดเกินขีดจำกัด คุณสามารถปลดล็อกผู้ใช้ได้ด้วยตนเอง หรือเพิ่มผู้ใช้ที่ผิดปกติเข้าไปในรายการที่ถูกล็อกได้ หลังจากผู้ใช้ถูกล็อก จะไม่สามารถเข้าถึงระบบด้วยวิธีการยืนยันตัวตนใดๆ ได้เลย รวมถึง API keys ด้วย

NocoBase รองรับการเรียกใช้ API ของระบบผ่าน API keys ผู้ใช้สามารถเพิ่ม API keys ได้ในการตั้งค่าปลั๊กอิน API Keys ครับ

ปลั๊กอินเชิงพาณิชย์ (Commercial Plugin)
NocoBase มีปลั๊กอินการยืนยันตัวตนแบบ SSO ให้เลือกมากมาย รองรับโปรโตคอลหลักหลายอย่าง เช่น OIDC, SAML 2.0, LDAP, และ CAS ในขณะเดียวกัน NocoBase ยังมีอินเทอร์เฟซส่วนขยายสำหรับวิธีการยืนยันตัวตนที่สมบูรณ์ ซึ่งสามารถรองรับการพัฒนาและเชื่อมต่อกับประเภทการยืนยันตัวตนอื่นๆ ได้อย่างรวดเร็ว คุณสามารถเชื่อมต่อ IdP ที่มีอยู่กับ NocoBase ได้อย่างง่ายดาย เพื่อจัดการข้อมูลประจำตัวของผู้ใช้แบบรวมศูนย์บน IdP เพื่อเพิ่มความปลอดภัย

Enterprise Edition
การยืนยันตัวตนแบบสองปัจจัยต้องการให้ผู้ใช้ให้ข้อมูลที่ถูกต้องชิ้นที่สองเพื่อพิสูจน์ตัวตนเมื่อล็อกอินด้วยรหัสผ่าน เช่น การส่งรหัสยืนยันแบบไดนามิกที่ใช้ครั้งเดียวไปยังอุปกรณ์ที่เชื่อถือได้ของผู้ใช้ เพื่อยืนยันตัวตนของผู้ใช้และให้แน่ใจว่าตัวตนของผู้ใช้จะไม่ถูกนำไปใช้ในทางที่ผิด ซึ่งช่วยลดความเสี่ยงที่เกิดจากการรั่วไหลของรหัสผ่าน
Enterprise Edition
NocoBase รองรับการตั้งค่าบัญชีดำ (blacklist) หรือบัญชีขาว (whitelist) สำหรับ IP ที่เข้าถึงของผู้ใช้
ด้วยการตั้งค่าบทบาท (roles) ที่แตกต่างกันในระบบ และการกำหนดสิทธิ์ที่สอดคล้องกันให้กับบทบาทเหล่านั้น คุณจะสามารถควบคุมสิทธิ์การเข้าถึงทรัพยากรของผู้ใช้ได้อย่างละเอียด ผู้ดูแลระบบจำเป็นต้องกำหนดค่าอย่างสมเหตุสมผลตามความต้องการของสถานการณ์จริง เพื่อลดความเสี่ยงของการรั่วไหลของทรัพยากรระบบ
เมื่อติดตั้ง NocoBase เป็นครั้งแรก แอปพลิเคชันจะสร้างผู้ใช้ root ขึ้นมาหนึ่งคน ขอแนะนำให้ผู้ใช้แก้ไขข้อมูลของผู้ใช้ root โดยการตั้งค่าตัวแปรสภาพแวดล้อมของระบบเพื่อหลีกเลี่ยงการถูกนำไปใช้ในทางที่ผิดครับ
INIT_ROOT_USERNAME - ชื่อผู้ใช้ rootINIT_ROOT_EMAIL - อีเมลผู้ใช้ rootINIT_ROOT_PASSWORD - รหัสผ่านผู้ใช้ root โปรดตั้งรหัสผ่านที่คาดเดาได้ยากในระหว่างการใช้งานระบบในภายหลัง ขอแนะนำให้ผู้ใช้ตั้งค่าและใช้บัญชีผู้ดูแลระบบอื่นๆ และหลีกเลี่ยงการใช้ผู้ใช้ root ในการดำเนินการกับแอปพลิเคชันโดยตรงครับ
NocoBase ควบคุมสิทธิ์การเข้าถึงทรัพยากรของผู้ใช้โดยการตั้งค่าบทบาทในระบบ, การให้สิทธิ์แก่บทบาทต่างๆ, และการผูกผู้ใช้เข้ากับบทบาทที่สอดคล้องกัน ผู้ใช้แต่ละคนสามารถมีได้หลายบทบาท และผู้ใช้สามารถสลับบทบาทเพื่อดำเนินการกับทรัพยากรจากมุมมองที่แตกต่างกันได้ หากติดตั้งปลั๊กอินแผนก (department plugin) คุณยังสามารถผูกบทบาทกับแผนกได้ ซึ่งจะทำให้ผู้ใช้มีบทบาทที่ผูกอยู่กับแผนกของตน

สิทธิ์การกำหนดค่าระบบประกอบด้วยการตั้งค่าต่อไปนี้:
สิทธิ์เมนูใช้เพื่อควบคุมสิทธิ์ของผู้ใช้ในการเข้าถึงหน้าเมนูต่างๆ ทั้งบนเดสก์ท็อปและมือถือ

NocoBase ให้การควบคุมสิทธิ์การเข้าถึงข้อมูลในระบบของผู้ใช้ได้อย่างละเอียด เพื่อให้แน่ใจว่าผู้ใช้แต่ละคนสามารถเข้าถึงได้เฉพาะข้อมูลที่เกี่ยวข้องกับหน้าที่ความรับผิดชอบของตน ป้องกันการเข้าถึงเกินสิทธิ์และการรั่วไหลของข้อมูล


ตั้งค่าขอบเขตของข้อมูลที่ผู้ใช้สามารถดำเนินการได้ โปรดทราบว่าขอบเขตข้อมูลที่นี่แตกต่างจากขอบเขตข้อมูลที่กำหนดค่าในบล็อก (block) ขอบเขตข้อมูลที่กำหนดค่าในบล็อกมักใช้สำหรับการกรองข้อมูลฝั่ง front-end เท่านั้น หากคุณต้องการควบคุมสิทธิ์การเข้าถึงทรัพยากรข้อมูลของผู้ใช้อย่างเข้มงวด คุณต้องกำหนดค่าที่นี่ ซึ่งจะถูกควบคุมโดยฝั่งเซิร์ฟเวอร์

ในระหว่างกระบวนการจัดเก็บและสำรองข้อมูล NocoBase มีกลไกที่มีประสิทธิภาพเพื่อรับรองความปลอดภัยของข้อมูล
รหัสผ่านของผู้ใช้ NocoBase จะถูกเข้ารหัสและจัดเก็บโดยใช้อัลกอริทึม scrypt ซึ่งสามารถป้องกันการโจมตีด้วยฮาร์ดแวร์ขนาดใหญ่ได้อย่างมีประสิทธิภาพ
เมื่อใช้บริการของบุคคลที่สามใน NocoBase เราขอแนะนำให้คุณกำหนดค่าข้อมูลคีย์ของบุคคลที่สามลงในตัวแปรสภาพแวดล้อมและจัดเก็บในรูปแบบที่เข้ารหัส ซึ่งสะดวกสำหรับการกำหนดค่าและใช้งานในที่ต่างๆ และยังช่วยเพิ่มความปลอดภัยอีกด้วย คุณสามารถดูเอกสารประกอบสำหรับวิธีการใช้งานโดยละเอียดได้ครับ
ตามค่าเริ่มต้น คีย์จะถูกเข้ารหัสโดยใช้อัลกอริทึม AES-256-CBC NocoBase จะสร้างคีย์เข้ารหัส 32 บิตโดยอัตโนมัติและบันทึกไว้ที่ storage/.data/environment/aes_key.dat ผู้ใช้ควรเก็บไฟล์คีย์อย่างเหมาะสมเพื่อป้องกันไม่ให้ถูกขโมย หากคุณต้องการย้ายข้อมูล ไฟล์คีย์จะต้องถูกย้ายไปด้วย

หากคุณต้องการจัดเก็บไฟล์ที่ละเอียดอ่อน ขอแนะนำให้ใช้บริการจัดเก็บข้อมูลบนคลาวด์ที่เข้ากันได้กับโปรโตคอล S3 และใช้ปลั๊กอินเชิงพาณิชย์ File storage: S3 (Pro) เพื่อเปิดใช้งานการอ่านและเขียนไฟล์แบบส่วนตัว หากคุณต้องการใช้งานในสภาพแวดล้อมเครือข่ายภายใน ขอแนะนำให้ใช้แอปพลิเคชันจัดเก็บข้อมูลที่รองรับการติดตั้งแบบส่วนตัวและเข้ากันได้กับโปรโตคอล S3 เช่น MinIO

เพื่อความปลอดภัยของข้อมูลแอปพลิเคชันและหลีกเลี่ยงการสูญเสียข้อมูล เราขอแนะนำให้คุณสำรองข้อมูลฐานข้อมูลเป็นประจำ
ผู้ใช้เวอร์ชันโอเพนซอร์สสามารถอ้างอิงถึง https://www.nocobase.com/en/blog/nocobase-backup-restore เพื่อสำรองข้อมูลด้วยเครื่องมือฐานข้อมูล นอกจากนี้เรายังแนะนำให้คุณเก็บไฟล์สำรองข้อมูลอย่างเหมาะสมเพื่อป้องกันการรั่วไหลของข้อมูล
ผู้ใช้เวอร์ชัน Professional ขึ้นไปสามารถใช้ตัวจัดการการสำรองข้อมูล (backup manager) สำหรับการสำรองข้อมูลได้ ซึ่งมีคุณสมบัติดังต่อไปนี้:

การติดตั้ง NocoBase อย่างถูกต้องและรับรองความปลอดภัยของสภาพแวดล้อมการทำงานเป็นหนึ่งในกุญแจสำคัญในการรับรองความปลอดภัยของแอปพลิเคชัน NocoBase
เพื่อป้องกันการโจมตีแบบ man-in-the-middle เราขอแนะนำให้คุณเพิ่มใบรับรอง SSL/TLS ให้กับไซต์แอปพลิเคชัน NocoBase ของคุณ เพื่อรับรองความปลอดภัยของข้อมูลระหว่างการส่งผ่านเครือข่าย
Enterprise Edition
ในสภาพแวดล้อมที่ต้องการความปลอดภัยของข้อมูลที่เข้มงวดยิ่งขึ้น NocoBase รองรับการเปิดใช้งานการเข้ารหัสการส่งข้อมูล API เพื่อเข้ารหัสเนื้อหาคำขอและการตอบกลับของ API หลีกเลี่ยงการส่งข้อมูลแบบ clear text และเพิ่มความยากในการถอดรหัสข้อมูล
โดยปกติแล้ว NocoBase ไม่จำเป็นต้องสื่อสารกับบริการของบุคคลที่สาม และทีม NocoBase จะไม่รวบรวมข้อมูลใดๆ ของผู้ใช้ จะต้องเชื่อมต่อกับเซิร์ฟเวอร์ NocoBase เฉพาะเมื่อดำเนินการสองอย่างต่อไปนี้เท่านั้น:
หากคุณยินดีที่จะสละความสะดวกสบายบางส่วน การดำเนินการทั้งสองอย่างนี้ก็รองรับการทำงานแบบออฟไลน์และไม่จำเป็นต้องเชื่อมต่อโดยตรงกับเซิร์ฟเวอร์ NocoBase
NocoBase รองรับการติดตั้งภายในอินทราเน็ตอย่างสมบูรณ์ อ้างอิงได้จาก
สำหรับ Professional Edition ขึ้นไป
ในการใช้งานจริง เราขอแนะนำให้ผู้ใช้ระดับองค์กรแยกสภาพแวดล้อมการทดสอบและการใช้งานจริงออกจากกัน เพื่อรับรองความปลอดภัยของข้อมูลแอปพลิเคชันและสภาพแวดล้อมการทำงานในสภาพแวดล้อมการใช้งานจริง ด้วยปลั๊กอินการจัดการการย้ายข้อมูล (migration management plugin) คุณสามารถย้ายข้อมูลแอปพลิเคชันระหว่างสภาพแวดล้อมต่างๆ ได้

Enterprise Edition
ฟังก์ชันบันทึกการตรวจสอบของ NocoBase จะบันทึกกิจกรรมของผู้ใช้ในระบบ โดยการบันทึกการดำเนินการที่สำคัญและพฤติกรรมการเข้าถึงของผู้ใช้ ผู้ดูแลระบบสามารถ:


NocoBase มีบันทึก (log) หลายประเภทเพื่อช่วยให้ผู้ใช้เข้าใจสถานะการทำงานและบันทึกพฤติกรรมของระบบ เพื่อให้สามารถระบุและค้นหาปัญหาระบบได้ทันท่วงที รับรองความปลอดภัยและความสามารถในการควบคุมของระบบจากมิติต่างๆ ประเภทของบันทึกหลักๆ ได้แก่: