วิธีตั้งค่าการตรวจสอบสิทธิ์ด้วยรหัสลับ JWT ของ ONLYOFFICE

การตรวจสอบสิทธิ์ JWT ของ ONLYOFFICE จะใช้งานได้ก็ต่อเมื่อ Document Server และแอปพลิเคชันที่เชื่อมต่อใช้รหัสลับเดียวกันเท่านั้นในการใช้งาน Docker เวอร์ชันปัจจุบัน การตรวจสอบ JWT จะเปิดใช้งานโดยค่าเริ่มต้น เพื่อให้การเชื่อมต่อมีเสถียรภาพ ให้ตั้งค่ารหัสลับJWT_SECRETถาวรของคุณเองแทนที่จะใช้ค่าที่สร้างขึ้นโดยอัตโนมัติจากคอนเทนเนอร์ จากนั้นกำหนดค่ารหัสลับเดียวกันใน Nextcloud โปรแกรมจัดการเอกสารแบบกำหนดเองของคุณ หรือตัวเชื่อมต่อใดก็ตามที่สื่อสารกับ ONLYOFFICE Docs

คู่มืออ้างอิงเชิงปฏิบัติฉบับนี้เน้นไปที่การตั้งค่าที่คุณน่าจะต้องการมากที่สุด ได้แก่ Docker และ Docker Compose การผสานรวมแบบกำหนดเองที่ลงนามในการตั้งค่าตัวแก้ไข การทำงานของส่วนหัว/เนื้อหา การตรวจสอบ การหมุนเวียน และข้อผิดพลาดทั่วไป โดยอ้างอิงจากเอกสาร ONLYOFFICE ฉบับปัจจุบันที่ตรวจสอบเมื่อเดือนตุลาคม 2026

คู่มืออ้างอิงฉบับย่อ

การตั้งค่าค่าทั่วไปของ Dockerวัตถุประสงค์
JWT_ENABLEDtrueเปิดใช้งานการตรวจสอบ JWT โดยค่าเริ่มต้น อิมเมจ Docker ปัจจุบันจะเปิดใช้งานอยู่
JWT_SECRETค่าสุ่มส่วนตัวที่แข็งแกร่งรหัสลับ HMAC ที่ใช้ร่วมกันเพื่อลงนามและตรวจสอบความถูกต้องของโทเค็น
JWT_HEADERAuthorizationชื่อส่วนหัวที่ใช้สำหรับคำขอ HTTP ที่มี JWT (JavaWriter Type XML)
JWT_IN_BODYfalseโดยค่าเริ่มต้นควบคุมการตรวจสอบความถูกต้องของโทเค็นในเนื้อหาคำขอสำหรับคำขอ HTTP ที่รองรับ
อัลกอริทึมการลงนามHS256อัลกอริทึมที่ใช้ในตัวอย่างลายเซ็นอย่างเป็นทางการของ ONLYOFFICE

ตั้งแต่ ONLYOFFICE Docs เวอร์ชัน 7.2 เป็นต้นไป การใช้งาน Docker จะเปิดใช้งาน JWT โดยค่าเริ่มต้น และสร้างรหัสลับแบบสุ่มหากคุณไม่ได้ระบุรหัสลับไว้ เอกสารอย่างเป็นทางการของ Docker เตือนว่ารหัสลับที่สร้างขึ้นโดยอัตโนมัติอาจเปลี่ยนแปลงได้หลังจากการรีบูตหรือการสร้างคอนเทนเนอร์ใหม่ ซึ่งอาจทำให้การทำงานร่วมกันล้มเหลว ดังนั้นควรระบุรหัสลับอย่างชัดเจนสำหรับการใช้งานจริงทุกครั้ง ดูข้อมูล เพิ่มเติมได้ ที่ การกำหนดค่า JWT สำหรับ ONLYOFFICE Docsและคู่มือการติดตั้ง Docker อย่างเป็นทางการ

1. ระบุคอนเทนเนอร์ ONLYOFFICE และวิธีการติดตั้งใช้งาน

เทอร์มินัล Ubuntu แสดงคอนเทนเนอร์ Docker onlyoffice/documentserver ที่กำลังทำงานอยู่และแท็กรูปภาพของคอนเทนเนอร์นั้น
ตรวจสอบให้แน่ใจว่าคอนเทนเนอร์ ONLYOFFICE Docs ใดกำลังทำงานอยู่ก่อนที่จะเปลี่ยนการตั้งค่า JWT โดยเฉพาะอย่างยิ่งหากมีอินสแตนซ์มากกว่าหนึ่งรายการอยู่บนโฮสต์เดียวกัน

สำหรับโฮสต์ Docker ให้เริ่มต้นด้วย:

docker ps --format 'table {{.Names}}\t{{.Image}}\t{{.Status}}'
docker images | grep onlyoffice

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

สำหรับ Docker โดยเฉพาะ ONLYOFFICE แนะนำให้ผู้ดูแลระบบใช้ตัวแปรสภาพแวดล้อมแทนการแก้ไขไฟล์ JWT ด้วยตนเอง/etc/onlyoffice/documentserver/local.jsonหากคุณแก้ไขค่า JWT โดยตรงในไฟล์นั้น กระบวนการเริ่มต้นของ Docker สามารถกู้คืนหรือสร้างค่าเหล่านั้นใหม่ได้เมื่อคอนเทนเนอร์เริ่มต้นใหม่

2. สร้างรหัสลับที่แข็งแกร่งและเก็บรักษาไว้อย่างปลอดภัย

หน้าต่างเทอร์มินัลแสดงคำสั่ง OpenSSL ที่สร้างรหัสลับแบบสุ่ม
สร้างรหัสลับ JWT บนระบบที่เชื่อถือได้ และจัดเก็บไว้ในเวิร์กโฟลว์การจัดการรหัสลับของคุณ แทนที่จะฝังไว้ในซอร์สโค้ดสาธารณะ

คำสั่งเชลล์ที่สะดวกใช้คือ:

openssl rand -hex 32

ผลลัพธ์ที่ได้คือข้อมูลสุ่ม 32 ไบต์ ซึ่งแสดงเป็นอักขระเลขฐานสิบหก 64 ตัว ONLYOFFICE ไม่จำเป็นต้องใช้รูปแบบนี้เป๊ะๆ สิ่งสำคัญคือทั้งสองฝ่ายต้องมีรหัสลับเดียวกัน และต้องเดาได้ยาก

ปฏิบัติต่อข้อมูลนี้JWT_SECRETเหมือนกับรหัสผ่านหรือข้อมูลประจำตัว API:

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

เอกสารเกี่ยวกับการลงลายมือชื่อของ ONLYOFFICE เตือนไว้อย่างชัดเจนว่าการลงลายมือชื่อโทเค็นต้องเกิดขึ้นบนเซิร์ฟเวอร์ เพราะโค้ดฝั่งเบราว์เซอร์ใดๆ ที่มีรหัสลับจะทำให้รหัสลับนั้นเปิดเผยต่อผู้ใช้ ตัวอย่างอย่างเป็นทางการใช้ HMAC-SHA256 ( HS256) ดูเอกสารเกี่ยวกับการลงลายมือชื่อ JWT ของ ONLYOFFICE

3. กำหนดค่า JWT ใน Docker Compose

โปรแกรมแก้ไข Docker Compose แสดงตัวแปรสภาพแวดล้อม JWT_ENABLED, JWT_SECRET, JWT_HEADER และ JWT_IN_BODY สำหรับ onlyoffice/documentserver
ตั้งค่ารหัสลับ JWT แบบถาวรในคำจำกัดความของคอนเทนเนอร์ เพื่อให้รหัสลับนั้นยังคงอยู่แม้จะมีการสร้างคอนเทนเนอร์ใหม่หรือการรีบูตเครื่องโฮสต์

บริการ Compose ขั้นพื้นฐานอาจประกอบด้วย:

services:
  documentserver:
    image: onlyoffice/documentserver:latest
    restart: unless-stopped
    environment:
      JWT_ENABLED: "true"
      JWT_SECRET: "${ONLYOFFICE_JWT_SECRET}"
      JWT_HEADER: "Authorization"
      JWT_IN_BODY: "false"
    ports:
      - "8080:80"

ควรเก็บความลับที่แท้จริงไว้ภายนอกไฟล์ Compose เมื่อทำได้ ตัวอย่างเช่น ใส่ไว้ใน.envไฟล์ที่มีการจำกัดสิทธิ์การเข้าถึง:

ONLYOFFICE_JWT_SECRET=replace_with_your_random_secret

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

เอกสาร ในคลังเก็บข้อมูล อย่างเป็นทางการของ ONLYOFFICE Docker-DocumentServer ครอบคลุมJWT_ENABLED , JWT_SECRET, JWT_HEADER, และJWT_IN_BODYโค้ดเริ่มต้นของ Docker ในปัจจุบันจะเปิดใช้งานการตรวจสอบ JWT โดยค่าเริ่มต้น ใช้Authorizationเป็นส่วนหัวเริ่มต้น และสร้างรหัสลับแบบสุ่มเมื่อไม่ได้ระบุรหัสลับอย่างชัดเจน

4. สร้างคอนเทนเนอร์ขึ้นใหม่เพื่อให้สภาพแวดล้อมใหม่ถูกนำไปใช้

เทอร์มินัล Ubuntu แสดงคำสั่ง docker compose up -d กำลังสร้างและเริ่มต้นคอนเทนเนอร์ ONLYOFFICE Document Server อีกครั้ง
การเปลี่ยนแปลงค่าสภาพแวดล้อมของ Compose จำเป็นต้องสร้างคอนเทนเนอร์ Document Server ขึ้นใหม่ด้วยการกำหนดค่าใหม่

สำหรับการแต่งเพลง:

docker compose up -d --force-recreate
docker compose ps

สำหรับคอนเทนเนอร์ที่สร้างขึ้นมาแต่เดิมด้วยdocker runJWT นั้น คู่มือ JWT อย่างเป็นทางการแนะนำให้ผู้ดูแลระบบหยุดและลบคอนเทนเนอร์เก่า จากนั้นสร้างคอนเทนเนอร์ใหม่โดยใช้ตัวแปรสภาพแวดล้อม JWT ห้ามลบวอลุ่มถาวรหรือข้อมูลที่เชื่อมต่อผ่าน bind-mount ในระหว่างขั้นตอนนี้

คุณสามารถตรวจสอบสภาพแวดล้อมของคอนเทนเนอร์ที่กำลังทำงานอยู่ได้โดยไม่ต้องแสดงรหัสลับนั้นออกมา:

docker inspect onlyoffice-documentserver \
  --format '{{range .Config.Env}}{{println .}}{{end}}' \
  | grep '^JWT_' \
  | sed 's/^JWT_SECRET=.*/JWT_SECRET=[REDACTED]/'

หากชื่อคอนเทนเนอร์แตกต่างกัน ให้เปลี่ยนชื่อonlyoffice-documentserverให้เหมาะสม

5. กำหนดค่ารหัสลับเดียวกันในการเชื่อมต่อระบบ

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

ตัวอย่าง Nextcloud

ในการตั้งค่า ONLYOFFICE สำหรับ Nextcloud ให้ป้อนรหัสลับเดียวกันกับที่ใช้โดย Document Server ชื่อส่วนหัวต้องตรงกันด้วย เอกสารการผสานรวม Nextcloud ของ ONLYOFFICE ในปัจจุบันระบุjwt_secretและjwt_headerเป็นการตั้งค่าตัวเชื่อมต่อ โดยมีAuthorizationเป็นส่วนหัวเริ่มต้นปกติ ดูเอกสารตัวเชื่อมต่อ Nextcloud อย่างเป็นทางการ

หากตัวเชื่อมต่อของคุณมีช่องที่ระบุว่า “รหัสลับ” “รหัสลับ JWT” หรือคล้ายกัน อย่าสร้างรหัสลับแยกต่างหากอีกอันในช่องนั้น ให้คัดลอกค่ารหัสลับเดียวกันมาใช้แทน

6. สำหรับการผสานรวมแบบกำหนดเอง ให้ลงนามในไฟล์การกำหนดค่าตัวแก้ไขทั้งหมดบนเซิร์ฟเวอร์

โปรแกรมแก้ไขโค้ดแสดงตัวอย่าง Node.js ฝั่งเซิร์ฟเวอร์ที่ลงนามการกำหนดค่าเอกสาร ONLYOFFICE ด้วย HS256 JWT
การผสานรวมแบบกำหนดเองควรสร้าง JWT บนฝั่งเซิร์ฟเวอร์โดยใช้รหัสลับเดียวกันกับที่กำหนดค่าไว้ใน ONLYOFFICE Docs ห้ามเปิดเผยรหัสลับนั้นในโค้ดของเบราว์เซอร์เด็ดขาด

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

ตัวอย่าง Node.js:

import jwt from "jsonwebtoken";

const config = {
  documentType: "word",
  document: {
    fileType: "docx",
    key: "document-2026-001",
    title: "Project Plan.docx",
    url: "https://files.example.com/project-plan.docx"
  },
  editorConfig: {
    callbackUrl: "https://app.example.com/onlyoffice/callback"
  }
};

config.token = jwt.sign(config, process.env.ONLYOFFICE_JWT_SECRET, {
  algorithm: "HS256"
});

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

ไฟล์การกำหนดค่าที่ส่งผ่านจะDocsAPI.DocEditorมีโทเค็นอยู่ด้วย:

new DocsAPI.DocEditor("placeholder", config);

เอกสารอ้างอิง API อย่างเป็นทางการได้กำหนดไว้config.tokenว่านี่คือลายเซ็นเข้ารหัสที่ ONLYOFFICE Docs ใช้ในการตรวจสอบความถูกต้องของการตั้งค่าตัวแก้ไข

7. ทำความเข้าใจความแตกต่างระหว่างโทเค็นส่วนหัวและส่วนเนื้อหา

JWT ใน ONLYOFFICE ครอบคลุมมากกว่าแค่การตั้งค่าตัวแก้ไขในเบราว์เซอร์ นอกจากนี้ยังใช้สำหรับการร้องขอระหว่างบริการต่างๆ เช่น คำสั่ง การแปลงข้อมูล และการเรียกกลับ (callback) ด้วย

การจราจรตำแหน่งที่ใช้โทเค็นประเด็นสำคัญ
การเริ่มต้นใช้งานตัวแก้ไขเบราว์เซอร์config.tokenเนื้อหาภายในโทเค็นควรตรงกับการตั้งค่าตัวแก้ไขที่ลงนามแล้ว
คำขอรับบริการขาเข้าเนื้อหาหรือส่วนหัวสำหรับคำขอ POST โทเค็นในส่วนเนื้อหาจะช่วยหลีกเลี่ยงข้อจำกัดด้านขนาดของส่วนหัว HTTP
คำขอ GETส่วนหัวโทเค็นเนื้อหาไม่สามารถใช้กับคำสั่ง GET ได้
การโทรกลับขาออกเนื้อหา/ส่วนหัว ตามการตั้งค่าการเชื่อมต่อของคุณจะต้องตรวจสอบความถูกต้องของโทเค็นโดยใช้รหัสลับร่วมกัน

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

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

8. ทดสอบด้วยคำขอแก้ไขจริง

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

ลำดับการตรวจสอบความถูกต้องที่มีประโยชน์คือ:

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

หน้าต้อนรับของ Document Server ที่แสดงผลได้สำเร็จไม่ได้หมายความว่า JWT ได้รับการกำหนดค่าอย่างถูกต้องระหว่างสองแอปพลิเคชัน ข้อผิดพลาดของ JWT มักปรากฏขึ้นเฉพาะเมื่อการเชื่อมต่อส่งการกำหนดค่าตัวแก้ไข คำสั่ง คำขอแปลง หรือฟังก์ชันเรียกกลับเท่านั้น

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

9. ตรวจสอบสถานะ JWT และบันทึกเมื่อการตรวจสอบสิทธิ์ล้มเหลว

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

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

docker exec onlyoffice-documentserver \
  sudo documentserver-jwt-status.sh

คุณสามารถตรวจสอบบันทึกต่างๆ ได้เช่นกัน:

docker logs --tail 200 onlyoffice-documentserver
docker exec onlyoffice-documentserver \
  find /var/log/onlyoffice/documentserver -type f -maxdepth 3 -print

หากการเชื่อมต่อล้มเหลวทันทีหลังจากเปลี่ยนรหัสลับ ให้เปรียบเทียบรายการเหล่านี้ตามลำดับ:

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

รูปแบบความล้มเหลวทั่วไป

“โทเค็นไม่ถูกต้อง” หรือ “ลายเซ็นไม่ถูกต้อง”

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

มันทำงานได้จนกว่า Docker จะรีสตาร์ท

โดยปกติแล้วหมายความว่าการใช้งานนั้นอาศัยรหัสลับ JWT ที่สร้างขึ้นโดยอัตโนมัติ ONLYOFFICE เตือนอย่างชัดเจนว่ารหัสลับแบบสุ่มอาจถูกสร้างขึ้นใหม่หลังจากรีบูตหรือสร้างคอนเทนเนอร์ใหม่ ตั้งค่าJWT_SECRETด้วยตนเองและใส่ค่าเดียวกันลงในการผสานรวม

Nextcloud แสดงข้อผิดพลาดเกี่ยวกับการเชื่อมต่อหรือโทเค็น

ตรวจสอบรหัสลับและส่วนหัวทั้งสองฝั่งก่อน เอกสารประกอบของ ONLYOFFICE เกี่ยวกับ Nextcloud กำหนดให้ตัวเชื่อมต่อjwt_headerต้องตรงกับส่วนหัวที่กำหนดค่าไว้ใน Document Server ค่าเริ่มต้นปกติในปัจจุบันคือAuthorization.

คำขอที่มีลายเซ็นขนาดใหญ่จะส่งคืนข้อผิดพลาด HTTP

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

หมุนรหัสลับ JWT อย่างปลอดภัย

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

สำหรับการติดตั้งใช้งานแบบอินสแตนซ์เดียวที่ไม่ซับซ้อน:

  1. สร้างรหัสลับใหม่และจัดเก็บอย่างปลอดภัย
  2. หากอาจมีผู้แก้ไขบทความที่ใช้งานอยู่ได้รับผลกระทบ ควรจัดช่วงเวลาการบำรุงรักษาที่สั้น ๆ ไว้ล่วงหน้า
  3. อัปเดตข้อมูลลับของการผสานรวมและข้อมูลลับของเซิร์ฟเวอร์เอกสารJWT_SECRETพร้อมกันในครั้งเดียว
  4. สร้างคอนเทนเนอร์ Document Server ขึ้นมาใหม่
  5. เปิด แก้ไข และบันทึกเอกสารทดสอบ
  6. ตรวจสอบให้แน่ใจว่าฟังก์ชันเรียกกลับทำงานได้ก่อนที่จะเปิดใช้งานบริการตามปกติ

สำหรับอินสแตนซ์ Document Server หลายตัวที่อยู่เบื้องหลัง Load Balancer อินสแตนซ์ทั้งหมดที่ให้บริการการผสานรวมเดียวกันจำเป็นต้องมีการกำหนดค่า JWT ที่เข้ากันได้ในระหว่างการเปลี่ยนแปลง วางแผนการปรับใช้แทนที่จะสลับโหนดทีละโหนดแบบเฉพาะกิจ

รายการตรวจสอบการผลิต

  • รหัสลับถาวร:กำหนดค่าJWT_SECRETอย่างชัดเจน อย่าพึ่งพาค่าที่สร้างขึ้นแบบสุ่ม
  • เคล็ดลับเดียวกันทุกที่: Document Server และการเชื่อมต่อต้องมีค่าเดียวกัน
  • การลงนามฝั่งแบ็กเอนด์:ห้ามเปิดเผยรหัสลับในโค้ดฝั่งฟรอนต์เอนด์/เบราว์เซอร์เด็ดขาด
  • HS256:ใช้แนวทาง HMAC-SHA256 ตามที่แสดงในตัวอย่างโค้ดอย่างเป็นทางการของ ONLYOFFICE
  • ข้อตกลงเกี่ยวกับส่วนหัว:หากตัวเชื่อมต่อส่ง JWT ผ่านส่วนหัวที่มีชื่อ ชื่อนั้นต้องตรงกับชื่อของเซิร์ฟเวอร์เอกสาร
  • การสร้างคอนเทนเนอร์ใหม่:การเปลี่ยนแปลงสภาพแวดล้อมของ Docker จำเป็นต้องสร้างคอนเทนเนอร์ใหม่
  • การทดสอบการทำงานร่วมกันจริง:เปิด แก้ไข บันทึก และตรวจสอบพฤติกรรมของฟังก์ชันเรียกกลับ (callback)
  • การจัดเก็บความลับ:เก็บความลับนั้นไว้ให้ห่างจากแหล่งเก็บข้อมูลสาธารณะและบันทึกต่างๆ
  • การหมุนอย่างเป็นระบบ:อัปเดตทั้งสองด้านพร้อมกันและตรวจสอบก่อนสิ้นสุดการบำรุงรักษา

สรุปแล้ว

สำหรับการติดตั้ง ONLYOFFICE บน Docker การกำหนดค่าที่ทนทานนั้นง่ายมาก: สร้างรหัสลับที่แข็งแกร่ง ตั้งค่าJWT_ENABLED=trueและJWT_SECRETกำหนดค่าผ่านตัวแปรสภาพแวดล้อมของคอนเทนเนอร์ สร้างคอนเทนเนอร์ขึ้นใหม่ และกำหนดค่ารหัสลับเดียวกันในตัวเชื่อมต่อหรือแบ็กเอนด์ของคุณ การผสานรวมแบบกำหนดเองควรลงนามการกำหนดค่าตัวแก้ไขและคำขอใช้บริการบนเซิร์ฟเวอร์ด้วย HS256 ไม่ควรลงนามในโค้ดของเบราว์เซอร์

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

ฝากความเห็น

วิธีเชื่อมต่อ ONLYOFFICE Desktop Editors กับ ownCloud Server

วิธีเชื่อมต่อ ONLYOFFICE Desktop Editors กับ ownCloud Server

เชื่อมต่อ ONLYOFFICE Desktop Editors กับเซิร์ฟเวอร์ ownCloud ของคุณ ลงชื่อเข้าใช้ เปิดไฟล์บนคลาวด์ จัดการการเชื่อมต่อ และแก้ไขปัญหาการตั้งค่าทั่วไป

วิธีแก้ไขปัญหาการใช้งาน CPU สูงใน Collabora Online จาก loolwsd / coolwsd

วิธีแก้ไขปัญหาการใช้งาน CPU สูงใน Collabora Online จาก loolwsd / coolwsd

แก้ไขปัญหาการใช้งาน CPU สูงใน Collabora Online โดยการระบุโปรเซสชุดเครื่องมือที่ทำงานหนัก ตรวจสอบเมตริกและบันทึก ปรับแต่งการทำงานพร้อมกันและการล้างข้อมูล และตรวจสอบการแก้ไขอย่างปลอดภัย

วิธีปรับแต่งแบรนด์ ONLYOFFICE Docs ด้วยโลโก้และสีของคุณเอง

วิธีปรับแต่งแบรนด์ ONLYOFFICE Docs ด้วยโลโก้และสีของคุณเอง

เรียนรู้วิธีปรับแต่งแบรนด์ ONLYOFFICE Docs ด้วยโลโก้ส่วนหัวและสีของอินเทอร์เฟซ รวมถึงข้อจำกัดของใบอนุญาต การตั้งค่าธีม JSON เส้นทาง Docker และการทดสอบ

แก้ไขปัญหาการมองเห็นข้อความในโหมดมืดใน LibreOffice Calc

แก้ไขปัญหาการมองเห็นข้อความในโหมดมืดใน LibreOffice Calc

แก้ไขปัญหาข้อความที่อ่านยากใน LibreOffice Calc โดยตรวจสอบธีมของแอป แบบอักษรและสีเติมของเซลล์ สไตล์ และการจัดรูปแบบตามเงื่อนไข จากนั้นตรวจสอบผลลัพธ์การพิมพ์

แก้ไขข้อผิดพลาด “เอกสารถูกล็อกโดยผู้ใช้ที่ไม่รู้จัก” ใน LibreOffice

แก้ไขข้อผิดพลาด “เอกสารถูกล็อกโดยผู้ใช้ที่ไม่รู้จัก” ใน LibreOffice

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

แก้ไขข้อความภาษาอาหรับและฮิบรูที่เขียนจากขวาไปซ้ายใน LibreOffice Writer

แก้ไขข้อความภาษาอาหรับและฮิบรูที่เขียนจากขวาไปซ้ายใน LibreOffice Writer

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

เปรียบเทียบฟังก์ชัน VLOOKUP กับ XLOOKUP ใน LibreOffice Calc: คู่มือสำหรับผู้เริ่มต้นใช้งาน

เปรียบเทียบฟังก์ชัน VLOOKUP กับ XLOOKUP ใน LibreOffice Calc: คู่มือสำหรับผู้เริ่มต้นใช้งาน

เรียนรู้การใช้งาน VLOOKUP และ XLOOKUP ใน LibreOffice Calc รวมถึงการค้นหาแบบตรงกันทุกประการ การค้นหาทางซ้าย ผลลัพธ์ที่ไม่พบ การค้นหาแบบย้อนกลับ ทางเลือกอื่นนอกเหนือจาก INDEX/MATCH และข้อผิดพลาดที่พบบ่อย

วิธีแก้ไขปัญหา “การตรวจสอบหลักฐาน WOPI ล้มเหลว” ใน Collabora Online

วิธีแก้ไขปัญหา “การตรวจสอบหลักฐาน WOPI ล้มเหลว” ใน Collabora Online

แก้ไขปัญหาการตรวจสอบความถูกต้องของหลักฐาน WOPI ใน Collabora Online โดยตรวจสอบคีย์การค้นหา การหมุนเวียนคีย์ URL พร็อกซี การประทับเวลา และรายการอนุญาตโฮสต์

วิธีเปิดใช้งานการติดตามการเปลี่ยนแปลงโดยค่าเริ่มต้นใน ONLYOFFICE Docs

วิธีเปิดใช้งานการติดตามการเปลี่ยนแปลงโดยค่าเริ่มต้นใน ONLYOFFICE Docs

เปิดใช้งานการติดตามการเปลี่ยนแปลงสำหรับทุกคนในเอกสาร ONLYOFFICE รักษาสถานะการใช้งานไว้หลังจากเปิดเอกสารใหม่ และทำความเข้าใจข้อจำกัดของการตั้งค่าเริ่มต้นแบบทั่วโลก

วิธีตั้งค่าการหมดเวลาเมื่อไม่ได้ใช้งานสำหรับเซสชันการแก้ไขใน Collabora

วิธีตั้งค่าการหมดเวลาเมื่อไม่ได้ใช้งานสำหรับเซสชันการแก้ไขใน Collabora

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