บทแนะนำ: ควบคุมการเข้าถึงการพิมพ์ด้วย Doconut
21/8/2569

บทแนะนำ: ควบคุมการเข้าถึงการพิมพ์ด้วย Doconut

วางแผนการเข้าถึงการพิมพ์ของ Doconut ด้วยทรัพยากรผลิตภัณฑ์อย่างเป็นทางการ, สิทธิ์ที่เป็นของแอปพลิเคชัน, การดำเนินการที่ได้รับการปกป้อง, UX ที่ชัดเจน, และการทดสอบเชิงปฏิบัติ.

แคตาล็อกฟีเจอร์ของ Doconut feature catalog ระบุว่าการพิมพ์จากเบราว์เซอร์และการส่งออกเป็น PDF เป็นความสามารถของตัวดูเอกสาร การควบคุมการเข้าถึงยังคงต้องการการตัดสินใจสองอย่างแยกกัน: ว่า Doconut จะแสดงการกระทำที่เกี่ยวข้องหรือไม่ และว่าแอปพลิเคชันโฮสต์จะอนุญาตการดำเนินการนั้นสำหรับผู้ใช้และเอกสารปัจจุบันหรือไม่

เส้นทางการพิมพ์เอกสารที่สิ้นสุดที่ประตูการอนุญาตที่ควบคุม
เส้นทางการพิมพ์เอกสารที่สิ้นสุดที่ประตูการอนุญาตที่ควบคุม

สำหรับการควบคุมที่สนับสนุนโดยการสร้างที่ติดตั้งของคุณอย่างแม่นยำ ให้เริ่มต้นด้วย เอกสารของ Doconut และตัวอย่างที่จัดแพ็คพร้อมให้จาก หน้าดาวน์โหลดของ Doconut อย่างเป็นทางการ อย่าคัดลอกคีย์การกำหนดค่า หรือโค้ดต้นฉบับจากเวอร์ชันที่ไม่เกี่ยวข้องหรือบทความที่ไม่ได้รับการตรวจสอบ


1. กำหนดนโยบายการพิมพ์ก่อน

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

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

หลีกเลี่ยงการใช้ค่า Boolean ทั่วโลกเพียงค่าเดียวเมื่อกฎที่แท้จริงเป็นตามบริบท ให้จำลองการพิมพ์เป็นการดำเนินการแยกเพื่อให้สามารถอนุญาตได้อย่างอิสระจากการดูและการดาวน์โหลด

2. แยกสถานะ UI ออกจากการอนุญาต

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

อย่างไรก็ตาม การซ่อนการควบคุมไม่ได้เป็นขอบเขตการอนุญาต ผู้ใช้ยังสามารถเรียก endpoint ที่รู้จักโดยตรง, เล่นซ้ำคำขอก่อนหน้า, หรือเรียกการพิมพ์ของเบราว์เซอร์บนเนื้อหาที่มองเห็นได้ ทุกเส้นทางเซิร์ฟเวอร์ที่สร้างผลลัพธ์ที่พิมพ์ได้ต้องบังคับใช้นโยบายเดียวกัน

ใช้สถานะที่แตกต่างกันใน UI:

สถานะพฤติกรรมของผู้ดูพฤติกรรมของเซิร์ฟเวอร์
อนุญาตการพิมพ์แสดงการกระทำการพิมพ์ที่รองรับอนุญาตและสร้างผลลัพธ์ที่ร้องขอ
ปฏิเสธการพิมพ์ซ่อนหรือปิดการทำงานพร้อมคำอธิบายที่ชัดเจนส่งคืนการตอบสนองที่ห้าม
นโยบายไม่ทราบทำให้การกระทำไม่พร้อมใช้งานขณะกำลังโหลดสิทธิ์ไม่สร้างผลลัพธ์
เซสชันหมดอายุขอให้ผู้ใช้ทำการยืนยันตัวตนใหม่ปฏิเสธคำขอที่ล้าสมัย

3. ปกป้อง Endpoint การพิมพ์

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

หากแอปพลิเคชันของคุณพิมพ์ผ่านเส้นทางเฉพาะของผู้ดูแทนการสร้าง PDF ให้ใช้การอนุญาตเดียวกันก่อนเรียกเส้นทางนั้น

4. กำหนดค่ารุ่นตัวดูที่ติดตั้ง

เมื่อมีกฎของเซิร์ฟเวอร์แล้ว ให้กำหนดค่า UI ของ Doconut โดยใช้ตัวเลือกที่ระบุอย่างแม่นยำในเอกสารสำหรับแพ็กเกจและไฟล์ตัวอย่างที่มาพร้อมกับเวอร์ชันของคุณ สาธิตสดของ Doconut ให้คุณสังเกตพฤติกรรมของผู้ดูที่รองรับก่อนที่คุณจะทำการรวมเข้ากับระบบเฉพาะ ตรวจสอบ:

  1. ตำแหน่งที่ตั้งค่าตัวเลือก: การกำหนดค่าเซิร์ฟเวอร์, โมเดลมุมมอง, หรือการเริ่มต้นของไคลเอนต์
  2. ว่ามันซ่อนรายการในแถบเครื่องมือ, ปิดการทำงานของการกระทำ, หรือมีผลต่อผลลัพธ์ที่สร้างขึ้นหรือไม่
  3. ว่าค่าดังกล่าวใช้กับแต่ละอินสแตนซ์ของผู้ดูหรือทั่วทั้งระบบ
  4. ว่าการพิมพ์และการส่งออกเป็นการดำเนินการแยกกันหรือไม่
  5. ว่าการอัปเดตได้เปลี่ยนชื่อหรือค่าเริ่มต้นของตัวเลือกหรือไม่

ถือว่าตัวอย่างอย่างเป็นทางการเป็นแหล่งความจริง ชื่อคุณสมบัติที่ดูสมเหตุสมผลไม่เพียงพอที่จะเป็นหลักฐานว่าตัวดูที่ติดตั้งรับรู้มัน.

5. จัดการการพิมพ์ของเบราว์เซอร์อย่างตรงไปตรงมา

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

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

อย่าอธิบายสิ่งนี้ว่าเป็นการปกป้องเอกสาร ใช้การเรนเดอร์ฝั่งเซิร์ฟเวอร์, การอนุญาต, การส่งออกที่ควบคุม, และลายน้ำที่มองเห็นได้เมื่อการประเมินความเสี่ยงของคุณเรียกร้องให้มีการขับไล่ที่เข้มงวดขึ้น

6. แยกการดาวน์โหลด, การส่งออก, และการพิมพ์ออกจากกัน

ผู้ใช้และนักพัฒนามักมองว่าสิ่งเหล่านี้เป็นสวิตช์ “อ่านอย่างเดียว” เพียงอันเดียว แต่จริงๆ แล้วเป็นการไหลของข้อมูลที่แตกต่างกัน:

  • View แสดงเนื้อหาที่เรนเดอร์แล้ว
  • Download ส่งคืนแหล่งที่มาหรือไฟล์ที่จัดเก็บอื่น
  • Export สร้างรูปแบบที่ได้มาจากต้นฉบับ
  • Print สร้างการแสดงผลที่สามารถพิมพ์ได้หรือเรียกการพิมพ์ของเบราว์เซอร์

อนุญาตแต่ละการดำเนินการอย่างชัดเจน ผู้ใช้ที่ไม่สามารถพิมพ์อาจยังได้รับอนุญาตให้ดาวน์โหลดได้ หรือในทางกลับกัน แถบเครื่องมือของคุณควรสะท้อนการตัดสินใจของเซิร์ฟเวอร์แทนการกำหนดเอง

7. เพิ่มเหตุการณ์ตรวจสอบที่มีประโยชน์

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

บันทึกทั้งความพยายามที่สำเร็จและที่ถูกปฏิเสธ หากบริการพิมพ์สร้างไฟล์ชั่วคราว ให้บันทึกด้วยว่าการทำความสะอาดเสร็จสมบูรณ์หรือไม่ เก็บเส้นทางไฟล์, โทเคน, ชื่อเอกสารที่มีข้อมูลส่วนบุคคล, และเนื้อหาที่พิมพ์ได้ให้อยู่นอกบันทึกประจำ

8. ทดสอบเกินกว่าปุ่มที่หายไป

แถบเครื่องมือเป็นเพียงการยืนยันครั้งแรกเท่านั้น เพิ่มการทดสอบสำหรับการดำเนินการทั้งหมด:

ผู้ใช้ที่ได้รับอนุญาต

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

ผู้ใช้ที่ไม่ได้รับอนุญาต

  • การกระทำไม่มีหรือถูกปิดใช้งาน
  • คำขอโดยตรงไปยังเส้นทางพิมพ์คืนค่าตอบกลับเป็นการห้าม
  • การเปลี่ยน ID ของเอกสารไม่ข้ามกฎ
  • URL ที่คัดลอกจากเซสชันที่ได้รับอนุญาตไม่สามารถนำมาใช้ซ้ำอย่างไม่เหมาะสม
  • การปฏิเสธไม่เปิดเผยว่าผู้เช่าอื่นเป็นเจ้าของเอกสารหรือไม่

การเปลี่ยนแปลงสถานะ

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

การทำอัตโนมัติของเบราว์เซอร์สามารถตรวจสอบสถานะที่มองเห็นและรหัสตอบกลับได้ การทดสอบแบบบูรณาการควรตรวจสอบการประเมินนโยบายและการอนุญาตระดับเอกสารอย่างอิสระ

คำถามที่พบบ่อย

การซ่อนปุ่มพิมพ์จะหยุดทางลัดการพิมพ์ของเบราว์เซอร์หรือไม่?
ไม่. มันจะลบการกระทำของผู้ชมที่ตั้งใจไว้เฉพาะเมื่อผู้ชมที่ติดตั้งทำพฤติกรรมนั้น การพิมพ์ของเบราว์เซอร์และการจับภาพหน้าจอต้องพิจารณาแยกกันและไม่สามารถป้องกันได้อย่างสมบูรณ์โดยโค้ดฝั่งคลไอเอนท์

ควรใส่สิทธิ์การพิมพ์ไว้ใน URL การดูหรือไม่?
ควรเลือกการตัดสินใจการอนุญาตฝั่งเซิร์ฟเวอร์ที่เชื่อมโยงกับผู้ใช้ที่ผ่านการตรวจสอบ, เอกสาร, และการดำเนินการ หากอ้างอิงชั่วคราวมีสิทธิ์ ควรกำหนดขอบเขตให้แคบ, ปกป้องจากบันทึกและผู้อ้างอิง, และตรวจสอบการกระทำที่สำคัญอีกครั้ง

การปิดการพิมพ์เพียงอย่างเดียวพอสำหรับเอกสารที่เป็นความลับหรือไม่?
ไม่. นั่นเป็นเพียงการควบคุมด้านการใช้งานหรือการขับไล่เท่านั้น กระบวนการทำงานที่เป็นความลับยังต้องการการปกป้องการจัดเก็บ, การอนุญาตระดับวัตถุ, การส่งออกที่ควบคุม, กฎการเก็บรักษา, การเฝ้าติดตาม, และโมเดลความเสี่ยงที่เหลือที่ยอมรับได้

สรุป

การนำการควบคุมการพิมพ์ของ Doconut ที่เชื่อถือได้เริ่มจากเซิร์ฟเวอร์และสิ้นสุดที่ส่วนติดต่อผู้ใช้ กำหนดนโยบาย, ปกป้องการดำเนินการ, กำหนดค่าเฉพาะตัวเลือกที่ระบุในเอกสารสำหรับผู้ชมที่ติดตั้ง, อธิบายผลลัพธ์ให้ผู้ใช้ทราบ, และทดสอบคำขอโดยตรงรวมถึงการมองเห็นของแถบเครื่องมือ ใช้หน้าฟีเจอร์อย่างเป็นทางการ, เอกสาร, การดาวน์โหลด, และสาธิตเป็นแหล่งข้อมูลการนำไปใช้แทนการสร้างโค้ดผลิตภัณฑ์ในบทความ