ใช้รหัสลับ JWT ที่แข็งแกร่งเพียงรหัสเดียวอย่างสม่ำเสมอ: กำหนดค่าใน ONLYOFFICE Docs คัดลอกค่าเดียวกันไปยังการตั้งค่า ONLYOFFICE ของแพลตฟอร์มที่เชื่อมต่อ และเปิดใช้งานการตรวจสอบ JWT ไว้ Docs เวอร์ชัน 7.2 และใหม่กว่าจะเปิดใช้งาน JWT โดยค่าเริ่มต้นและสร้างรหัสลับโดยอัตโนมัติ การเปลี่ยนรหัสลับหมายความว่าการผสานรวมทั้งหมดจะต้องได้รับการอัปเดตให้ตรงกัน วิธีการฝั่งเซิร์ฟเวอร์ที่แน่นอนจะขึ้นอยู่กับว่า Docs ทำงานเป็นแพ็กเกจ Linux หรือคอนเทนเนอร์ Docker
อะไรต้องตรงกัน?
JWT (JSON Web Token) ช่วยให้ ONLYOFFICE Docs ตรวจสอบคำขอที่ลงชื่อแล้วได้ แพลตฟอร์มเอกสารและ Docs ต้องใช้ค่าลับและการตั้งค่าส่วนหัวที่เข้ากันได้เหมือนกัน เซิร์ฟเวอร์ใช้การตั้งค่าโทเค็นแยกต่างหากสำหรับการกำหนดค่าเบราว์เซอร์และคำขอรับและส่งบริการ ค่าลับที่ใช้ร่วมกันจะช่วยปกป้องการแลกเปลี่ยนเหล่านั้น ห้ามใส่ค่าลับไว้ในหน้าเว็บสาธารณะ ชุด JavaScript ฝั่งไคลเอ็นต์ ตั๋วสนับสนุน หรือที่เก็บซอร์สโค้ดที่อ่านได้โดยสาธารณะ
ก่อนทำการแก้ไข ให้ระบุประเภทการปรับใช้ของคุณและบันทึก URL ของเอกสารที่ตัวเชื่อมต่อของคุณใช้ สร้างรหัสลับที่ยาวและคาดเดาไม่ได้โดยใช้โปรแกรมจัดการรหัสผ่านหรือตัวสร้างรหัสลับที่ปลอดภัยทางด้านการเข้ารหัสลับ ถือว่ารหัสลับนี้เป็นข้อมูลประจำตัว และจัดเก็บไว้ในที่เก็บการกำหนดค่าที่มีการจำกัดการเข้าถึง
ควรเปิดใช้งานการตั้งค่าโทเค็นในไฟล์ local.json สำหรับการตรวจสอบความถูกต้องของเบราว์เซอร์ กล่องขาเข้า และกล่องขาออก
กำหนดค่าการติดตั้ง Linux
สำหรับการติดตั้ง Linux แบบใช้แพ็กเกจ ให้แก้ไขไฟล์/etc/onlyoffice/documentserver/local.json.json.json รักษาการตั้งค่าที่มีอยู่เดิม: ผสานคีย์ต่อไปนี้เข้ากับไฟล์ JSON เดิมแทนที่จะแทนที่ไฟล์ทั้งหมด ตัวอย่างแสดงโครงสร้างการตรวจสอบโทเค็นและตำแหน่งลับสามตำแหน่งที่ตรงกันตามที่อธิบายไว้ในคู่มือการกำหนดค่าอย่างเป็นทางการ:
{
"services": {
"CoAuthoring": {
"token": {
"enable": {
"request": {
"inbox": true,
"outbox": true
},
"browser": true
}
},
"secret": {
"inbox": { "string": "REPLACE_WITH_YOUR_SECRET" },
"outbox": { "string": "REPLACE_WITH_YOUR_SECRET" },
"session": { "string": "REPLACE_WITH_YOUR_SECRET" }
}
}
}
}
แทนที่ตัวยึดตำแหน่งทุกตัวด้วยค่าลับที่เหมือนกันทุกประการ ห้ามวางตัวยึดตำแหน่งตัวอย่างลงไปโดยตรง สวิตช์browser, inbox, และoutboxนั้นแยกจากกัน การเปิดใช้งานเพียงตัวเดียวไม่ได้หมายความว่าการตรวจสอบคำขอทั้งหมดจะถูกเปิดใช้งาน เอกสารเวอร์ชัน 7.2 และใหม่กว่านั้นเปิดใช้งาน JWT โดยค่าเริ่มต้น แต่การตรวจสอบการตั้งค่าเหล่านี้อย่างชัดเจนจะช่วยในการตรวจสอบการกำหนดค่าที่มีอยู่หรือปรับพฤติกรรมให้สอดคล้องกันในโหนดต่างๆ สำหรับเวอร์ชันก่อน 7.2 คู่มืออย่างเป็นทางการระบุให้เปิดใช้งานสวิตช์ทั้งสามตัว
ควรทำให้สตริงลับของกล่องจดหมายเข้า กล่องจดหมายออก และเซสชันเหมือนกัน เพื่อให้เซิร์ฟเวอร์ใช้คีย์เดียวกันในการตรวจสอบ JWT
ตรวจสอบความถูกต้องของไวยากรณ์ JSON ก่อนรีสตาร์ท จากนั้นรีสตาร์ทบริการ Document Server เพื่อให้การเปลี่ยนแปลงมีผล:
sudo systemctl restart ds-converter ds-docservice ds-metrics
เรียกใช้คำสั่งด้วยบัญชีที่ได้รับอนุญาตให้จัดการบริการระบบ บน Windows ไฟล์การกำหนดค่าคือ%ProgramFiles%\ONLYOFFICE\DocumentServer\config\local.json; ให้ใช้คำแนะนำในการรีสตาร์ทของ Windows ในคู่มืออย่างเป็นทางการแทนคำสั่ง Linux
กำหนดค่า Docker โดยไม่ต้องแก้ไขไฟล์การกำหนดค่าที่สร้างขึ้น
สำหรับอิมเมจ Docker ของ Document Server อย่างเป็นทางการ ให้ตั้งค่า JWT ผ่านตัวแปรสภาพแวดล้อมของคอนเทนเนอร์ คู่มืออย่างเป็นทางการเตือนว่า การเปลี่ยนแปลงค่าที่สร้างขึ้นด้วยตนเองlocal.jsonอาจถูกยกเลิกเมื่อคอนเทนเนอร์เริ่มต้นใหม่ ตั้งค่าJWT_ENABLED=trueในJWT_SECRETคำสั่งสร้างคอนเทนเนอร์หรือบริการ Compose จากนั้นสร้างคอนเทนเนอร์ใหม่เพื่อให้สภาพแวดล้อมมีผล เก็บรักษาความลับไว้ในไฟล์สภาพแวดล้อมที่ได้รับการป้องกันหรือตัวจัดการความลับ และจำกัดสิทธิ์ของไฟล์นั้น หลีกเลี่ยงการบันทึกไว้ในระบบควบคุมเวอร์ชัน
services:
onlyoffice:
image: onlyoffice/documentserver:YOUR_PINNED_TAG
environment:
JWT_ENABLED: "true"
JWT_SECRET: ${ONLYOFFICE_JWT_SECRET}
กำหนดค่าONLYOFFICE_JWT_SECRETในสภาพแวดล้อมการปรับใช้หรือ.envไฟล์ที่ได้รับการป้องกัน ตรึงแท็กรูปภาพที่ผ่านการทดสอบแล้วแทนที่จะพึ่งพาค่าที่ไม่ระบุlatestและตรวจสอบเอกสารประกอบสำหรับแท็กที่ใช้งานอย่างถูกต้อง หลังจากเปลี่ยนค่าสภาพแวดล้อมแล้ว ให้สร้างคอนเทนเนอร์ขึ้นใหม่โดยใช้กระบวนการปรับใช้ตามปกติของคุณ การรีสตาร์ทอย่างง่ายอาจทำให้สภาพแวดล้อมเก่าคงอยู่
สำหรับ Docker ให้ส่งค่าการตั้งค่า JWT เมื่อสร้างคอนเทนเนอร์ และเก็บข้อมูลลับไว้ภายนอกไฟล์ Compose
อัปเดตตัวเชื่อมต่อและปกป้องข้อมูลลับ
เปิดการตั้งค่าการผสานรวมในแพลตฟอร์มที่เชื่อมต่อกับ ONLYOFFICE Docs เช่น Nextcloud หรือตัวเชื่อมต่ออื่นๆ ที่รองรับ ป้อนรหัสลับ JWT เดียวกันในช่องรหัสลับ แล้วบันทึก ตรวจสอบ URL ของเซิร์ฟเวอร์เอกสารที่กำหนดค่าไว้ และหากตัวเชื่อมต่อเปิดเผย ให้ตรวจสอบส่วนหัวการอนุญาต ส่วนหัวเริ่มต้นใน ONLYOFFICE Docs คือAuthorization; เปลี่ยนเฉพาะเมื่อทั้งสองฝั่งได้รับการกำหนดค่าให้ใช้ทางเลือกเดียวกันเท่านั้น
ความไม่ตรงกันของรหัสลับมักปรากฏเป็นข้อผิดพลาดเกี่ยวกับโทเค็นไม่ถูกต้องหรือข้อผิดพลาดด้านการอนุญาตเมื่อเปิดหรือบันทึกเอกสาร ความไม่ตรงกันอาจเกิดขึ้นได้เมื่อมีการอัปเดตโหนด Docs เพียงโหนดเดียวที่อยู่เบื้องหลังตัวกระจายโหลด หากคุณใช้งานหลายโหนด ให้ซิงโครไนซ์การตั้งค่ารหัสลับและโทเค็นเดียวกันในทุกโหนดก่อนที่จะส่งข้อมูลไปยังโหนดเหล่านั้น ดำเนินการเปลี่ยนแปลงในช่วงเวลาที่ควบคุมได้: อัปเดต Docs และตัวเชื่อมต่อพร้อมกัน และคาดว่าเซสชันตัวแก้ไขที่มีอยู่หรือคำขอที่ลงนามด้วยค่าเก่าจะล้มเหลวในช่วงการเปลี่ยนผ่าน
ใครก็ตามที่สามารถอ่านรหัสลับได้ก็สามารถสร้างโทเค็นที่เซิร์ฟเวอร์อาจยอมรับได้ จำกัดการเข้าถึงไฟล์การกำหนดค่าและตัวแปรการปรับใช้ ใช้การเข้ารหัสสำหรับการเชื่อมต่อระหว่างตัวเชื่อมต่อและเอกสาร และหมุนเวียนรหัสลับหากอาจมีการรั่วไหล การหมุนเวียนจำเป็นต้องอัปเดตโหนดเอกสารและตัวเชื่อมต่อทั้งหมดให้เป็นค่าใหม่ อย่าทิ้งข้อมูลประจำตัวเก่าไว้ในไฟล์ที่ตรวจสอบแล้วหรือบันทึกต่างๆ
เปิดใช้งานการตรวจสอบ JWT ในตัวเชื่อมต่อและป้อนรหัสลับเดียวกันกับที่กำหนดค่าไว้ในเซิร์ฟเวอร์เอกสาร
ตรวจสอบการตั้งค่า
ตรวจสอบให้แน่ใจว่าบริการหรือคอนเทนเนอร์ Docs ทำงานอยู่หลังจากเปลี่ยนแปลงการกำหนดค่าแล้ว
สำหรับการใช้งาน Docker ให้รันคำสั่งsudo docker exec <container_name> sudo documentserver-jwt-status.shเพื่อตรวจสอบสถานะ JWT โดยใช้ชื่อคอนเทนเนอร์ที่ถูกต้อง ตัวช่วยนี้มีเอกสารอธิบายไว้สำหรับ Docker เท่านั้น อย่าคิดว่ามันจะมีอยู่ในทุกการติดตั้งแพ็กเกจ
เปิดเอกสารผ่านแพลตฟอร์มที่เชื่อมต่ออยู่ ทำการแก้ไขเล็กน้อยที่ไม่เป็นอันตราย และบันทึก ตรวจสอบให้แน่ใจว่าโปรแกรมแก้ไขเปิดขึ้นและแพลตฟอร์มได้รับการเปลี่ยนแปลงที่บันทึกไว้แล้ว
หากการตรวจสอบสิทธิ์ล้มเหลว ให้เปรียบเทียบอักขระลับของเซิร์ฟเวอร์และตัวเชื่อมต่อทีละตัว ตรวจสอบว่าสวิตช์โทเค็นที่เกี่ยวข้องทั้งหมดเปิดใช้งานอยู่ และตรวจสอบการกำหนดค่าส่วนหัวของคำขอ
คู่มือการกำหนดค่าอย่างเป็นทางการเป็นแหล่งข้อมูลหลักสำหรับค่าการตั้งค่าและพฤติกรรมของเวอร์ชันที่รองรับ โปรดศึกษาเอกสารการกำหนดค่า JWT ของ ONLYOFFICE และพารามิเตอร์การติดตั้ง Docker อย่างเป็นทางการ สำหรับเวอร์ชันที่คุณใช้งานอย่างถูกต้อง