เชื่อมต่อ ownCloud Infinite Scale กับ Keycloak ด้วย OIDC

บ่อยครั้งที่ผู้ใช้เข้าสู่หน้าเข้าสู่ระบบ Keycloak ยืนยันตัวตน แล้วก็กลับไปยังหน้าจอเข้าสู่ระบบ ownCloud Infinite Scale หรือเห็นข้อผิดพลาด “ผู้ใช้ไม่รู้จัก” สาเหตุทั่วไปคือ ผู้ให้บริการโดเมนไม่ตรงกัน ไคลเอนต์เว็บที่คัดลอกมาจากตัวอย่างเวอร์ชันอื่น หรือการอ้างสิทธิ์ข้อมูลประจำตัวไม่ตรงกับบัญชี oCIS ให้กำหนดค่า Keycloak เป็นผู้ให้บริการ OpenID Connect (OIDC) ภายนอกของ oCIS ตั้งค่าทั้งสามค่าให้ตรงกัน และตรวจสอบว่าเบราว์เซอร์และไคลเอนต์สามารถเข้าถึงผู้ให้บริการผ่าน HTTPS ได้

คู่มือนี้ใช้โฮสต์สมมติ: cloud.example.comสำหรับ oCIS และsso.example.comสำหรับ Keycloak การกำหนดค่าอ้างอิงถึงเอกสาร ownCloud Infinite Scale 8.2 โปรดเปรียบเทียบชื่อกับเอกสารสำหรับเวอร์ชันที่คุณติดตั้งก่อนนำไปใช้ นี่สำหรับ Infinite Scale (oCIS) ไม่ใช่ ownCloud Server 10

1. ตรวจสอบโดเมนและเอนด์พอยต์การค้นหา

ผู้ให้บริการยืนยันตัวตน (IdP) ทำหน้าที่ตรวจสอบสิทธิ์ผู้ใช้สำหรับบริการอื่น OpenID Connect คือโปรโตคอลการลงชื่อเข้าใช้ที่ทำให้ oCIS สามารถเชื่อถือข้อมูลการเข้าสู่ระบบและข้อมูลประจำตัวของ Keycloak ได้ Realm คือชุดผู้ใช้ ไคลเอนต์ และการตั้งค่าที่แยกต่างหากของ Keycloak เลือก Realm ที่จะให้บริการ oCIS จากนั้นระบุ URL ของผู้ออกบัตร: สำหรับ Realm ตัวอย่างocisคือhttps://sso.example.com/realms/ocis.

ก่อนแก้ไข oCIS โปรดเปิดhttps://sso.example.com/realms/ocis/.well-known/openid-configurationในเบราว์เซอร์ เอกสารการค้นหา OpenID Connect นี้อธิบายถึงเอนด์พอยต์ของผู้ให้บริการ ตรวจสอบให้แน่ใจว่าissuerค่าตรงกับ URL ของโดเมนทุกประการ รวมถึงรูปแบบ โฮสต์ ตัวพิมพ์ใหญ่-เล็ก และเส้นทาง ผู้ออกใบรับรองต้องไม่ใช่หน้าการดูแลระบบหรือ URL การค้นหาที่ยาวกว่า ใบรับรอง TLS ของผู้ให้บริการต้องได้รับการยอมรับจากเบราว์เซอร์ของผู้ใช้และจากเซิร์ฟเวอร์/คอนเทนเนอร์ oCIS

JSON การค้นหา OpenID Connect แสดงผู้ออกบัตรเป็น https://sso.example.com/realms/ocis ในการตอบสนองของ Keycloak realm
เอกสารการค้นพบควรรายงานผู้ให้บริการโดเมนที่กำหนดค่าไว้ใน oCIS อย่างละเอียด

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

2. จับคู่ไคลเอ็นต์ Keycloak กับเว็บแอป oCIS

ใช้ตัวอย่างการปรับใช้ Keycloak ของ ownCloud ที่ได้รับการดูแลรักษา เป็นจุดเริ่มต้น และจับคู่ไฟล์ realm กับเวอร์ชัน oCIS ของคุณ อย่าใช้เวอร์ชันที่แตกต่างกัน: ตัวอย่าง compose ปัจจุบันใช้ web client ID webในขณะที่บันทึกการตั้งค่าเก่าระบุว่าocis-webKeycloak และ oCIS ต้องใช้ client ID เดียวกัน

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

ตัวอย่างการตั้งค่าไคลเอ็นต์ Keycloak แสดงรหัสไคลเอ็นต์เว็บและช่องสำหรับ URI การเปลี่ยนเส้นทางที่ถูกต้องและต้นทางเว็บ
ใช้ URI สำหรับการเปลี่ยนเส้นทางและ Client ID จากเทมเพลตโดเมนที่ตรงกับเวอร์ชัน oCIS ของคุณ ค่าที่แสดงเป็นเพียงตัวอย่างเท่านั้น

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

3. ตั้งค่า oCIS ให้ชี้ไปยังผู้ออกบัตรและลูกค้ารายเดียวกัน

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

OCIS_URL=https://cloud.example.com
OCIS_OIDC_ISSUER=https://sso.example.com/realms/ocis
WEB_OIDC_CLIENT_ID=web
PROXY_OIDC_REWRITE_WELLKNOWN=true
OCIS_EXCLUDE_RUN_SERVICES=idp

OCIS_URLคือที่อยู่ oCIS สาธารณะ ผู้ออกบัตรและรหัสไคลเอ็นต์ต้องตรงกับ Keycloak ทุกประการ การเขียนใหม่จะเปิดใช้งานเส้นทางการค้นหาที่ใช้โดยไคลเอ็นต์บนเดสก์ท็อป Android และ iOS การยกเว้นจะidpหยุดผู้ให้บริการในตัวในการใช้งาน IdP ภายนอก หากการตั้งค่าของคุณตั้งใจใช้บริการนั้น ให้ละเว้นตัวเลือกนี้

ตัวแก้ไขการกำหนดค่าแสดงรายการ OCIS_URL, OCIS_OIDC_ISSUER, PROXY_OIDC_REWRITE_WELLKNOWN และ OCIS_EXCLUDE_RUN_SERVICES
การตั้งค่า oCIS เหล่านี้กำหนดให้การตรวจสอบสิทธิ์ไปที่ Keycloak และกำหนดเส้นทางการค้นหา OIDC ไปยังผู้ให้บริการภายนอก

ใช้การเปลี่ยนแปลงด้วยกระบวนการรีสตาร์ทตามปกติของการใช้งานของคุณ สำหรับ Docker Compose ให้รันคำสั่งdocker compose up -dจากไดเร็กทอรี compose เพื่อสร้างบริการที่เปลี่ยนแปลงขึ้นใหม่ จากนั้นตรวจสอบบันทึก oCIS ใช้ใบรับรอง TLS ที่เชื่อถือได้ในสภาพแวดล้อมการใช้งานจริง ตัวอย่างของ ownCloud ระบุINSECURE=trueตัวเลือกใบรับรองแบบลงนามเองในเครื่อง ให้ลบออกหรือตั้งค่าเป็น false บนเซิร์ฟเวอร์ที่เชื่อมต่อกับอินเทอร์เน็ต ownCloud ยังระบุว่าไม่ควรใช้PROXY_OIDC_INSECUREในสภาพแวดล้อมการใช้งานจริง ด้วย

4. ตัดสินใจว่า oCIS ควรระบุตัวตนผู้ใช้อย่างไร

Claim คือฟิลด์ข้อมูลประจำตัว OIDC เช่นsub, preferred_username, หรือemailoCIS ใช้ Claim นี้ในการค้นหาบัญชี สำหรับผู้ใช้ที่มีอยู่แล้ว ให้แมป Claim กับแอตทริบิวต์ที่ผู้ใช้ใช้งานอยู่แล้ว เช่น ชื่อผู้ใช้ อีเมล หรือรหัสผู้ใช้ หากไม่ตรงกัน อาจทำให้เกิดข้อความ “ไม่พบผู้ใช้” หลังจาก Keycloak ยอมรับการเข้าสู่ระบบแล้ว

ในการสร้างบัญชีเมื่อเข้าสู่ระบบครั้งแรก ให้ตั้งค่าPROXY_AUTOPROVISION_ACCOUNTS=trueเฉพาะเมื่อต้องการและหลังจากเปิดใช้งานการเขียนในแบ็กเอนด์ผู้ใช้ oCIS Graph แล้ว ตัวระบุต้องไม่ซ้ำกัน เสถียร และไม่เคยถูกกำหนดใหม่ ownCloud ระบุsubว่าเหมาะสม ใช้ที่อยู่อีเมลหรือชื่อผู้ใช้ที่ต้องการเฉพาะในกรณีที่ไม่สามารถเปลี่ยนแปลงได้ รักษาความสอดคล้องของข้อมูลการสร้างและการค้นหา:

PROXY_AUTOPROVISION_ACCOUNTS=true
PROXY_AUTOPROVISION_CLAIM_USERNAME=sub
PROXY_USER_OIDC_CLAIM=sub
PROXY_USER_CS3_CLAIM=username

ตรวจสอบให้แน่ใจว่า Keycloak ส่งคืน claim ที่เลือกไว้ใน token หรือการตอบสนอง userinfo หากปิดใช้งานการจัดเตรียมอัตโนมัติ ผู้ใช้ใหม่จะไม่ถูกสร้างขึ้นเมื่อลงชื่อเข้าใช้ และหากใช้แบ็กเอนด์ Graph แบบอ่านอย่างเดียว การจัดเตรียมอาจล้มเหลว เพิ่มการแมปกลุ่มหรือบทบาทหลังจากที่การลงชื่อเข้าใช้สำเร็จแล้วเท่านั้น โปรดศึกษาเอกสารพร็อกซีและการจัดเตรียมอัตโนมัติของ ownCloud เวอร์ชัน 8.2ก่อนที่จะเปิดใช้งานการเข้าถึงแบบเขียนหรือเปลี่ยนแปลงการแมปข้อมูลประจำตัว

ตรวจสอบขั้นตอนการเข้าสู่ระบบทั้งหมดให้เรียบร้อย

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

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

สำหรับการค้นหาบนเดสก์ท็อปหรือมือถือ ให้เปิด ; การเขียนใหม่ควรเปิดเผยข้อมูลผู้ให้บริการของ Keycloak การวนลูปการเข้า สู่https://cloud.example.com/.well-known/openid-configurationระบบบ่งชี้ถึงโฮสต์การเปลี่ยนเส้นทางหรือความไม่ตรงกันของรูปแบบ ผู้ใช้ที่ถูกปฏิเสธหลังจากเข้าสู่ระบบสำเร็จบ่งชี้ถึงการอ้างสิทธิ์ที่ขาดหายไปหรือความไม่ตรงกันระหว่างPROXY_USER_OIDC_CLAIMและPROXY_USER_CS3_CLAIM

ฝากความเห็น

ล้างคำเตือนของ ownCloud Apache .htaccess อย่างปลอดภัย

ล้างคำเตือนของ ownCloud Apache .htaccess อย่างปลอดภัย

ตั้งค่า AllowOverride All เฉพาะสำหรับเว็บรูทของ ownCloud ตรวจสอบความถูกต้องของ Apache vhost ที่ใช้งานอยู่ และโหลดใหม่อย่างปลอดภัยเพื่อกู้คืนกฎ .htaccess

ตั้งค่า ownCloud Enterprise Auditing และตรวจสอบบันทึกข้อมูล

เปิดใช้งานแอป Enterprise Auditing ของ ownCloud กำหนดเส้นทางเหตุการณ์ admin_audit ไปยังไฟล์บันทึกที่ได้รับการป้องกัน และยืนยันว่าการกระทำของผู้ใช้จริงได้รับการบันทึกแล้ว

เชื่อมต่อ ownCloud Infinite Scale กับ Keycloak ด้วย OIDC

เชื่อมต่อ ownCloud Infinite Scale กับ Keycloak ด้วย OIDC

ปรับการเชื่อมต่อข้อมูลผู้ให้บริการโดเมน เว็บไคลเอ็นต์ และข้อมูลผู้ใช้ของ Keycloak ให้ตรงกัน เพื่อให้ ownCloud Infinite Scale สามารถลงชื่อเข้าใช้ผู้ใช้ได้อย่างน่าเชื่อถือทั้งบนเว็บและไคลเอ็นต์บนมือถือ

ย้ายไฟล์ ownCloud ไปยังเจ้าของใหม่โดยไม่สูญเสียสิทธิ์การแชร์

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

เพิ่มความเร็วในการสืบค้นข้อมูล ownCloud 10 ด้วยการจัดการดัชนีอย่างปลอดภัย

เรียนรู้ว่าเมื่อใดที่ดัชนีฐานข้อมูล ownCloud 10 ต้องการการดูแล วิธีการอัปเดตสคีมาที่รองรับอย่างปลอดภัย และเมื่อใดที่การปรับแต่งคิวรีหรือการเปลี่ยนแปลงฐานข้อมูลเป็นวิธีแก้ไขที่ดีกว่า

เชื่อมต่อแชร์ SMB/CIFS ใน ownCloud โดยไม่ต้องใช้การเชื่อมต่อ Linux

เชื่อมต่อแชร์เครือข่าย Windows หรือ Samba กับ ownCloud ผ่านที่เก็บข้อมูลภายนอก ตรวจสอบข้อมูลประจำตัว และแก้ไขปัญหาโฟลเดอร์ที่ไม่สามารถเข้าถึงได้อย่างปลอดภัย

ลบเวอร์ชันไฟล์ ownCloud อย่างปลอดภัยด้วยคำสั่ง occ

ลบเวอร์ชันไฟล์ ownCloud อย่างปลอดภัยด้วยคำสั่ง occ

ลบไฟล์เวอร์ชัน ownCloud Server Classic ที่จัดเก็บไว้ทั้งหมดสำหรับบัญชีเดียวหรือผู้ใช้ทั้งหมด และแยกความแตกต่างระหว่างการลบแบบสมบูรณ์กับการหมดอายุตามระยะเวลาการเก็บรักษา

การเชื่อมต่อ ownCloud บนมือถือถูกปฏิเสธใช่หรือไม่? ตรวจสอบ URL และการเข้าถึง

การเชื่อมต่อ ownCloud บนมือถือถูกปฏิเสธใช่หรือไม่? ตรวจสอบ URL และการเข้าถึง

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

เรียกใช้งานงานเบื้องหลังของ ownCloud ได้อย่างน่าเชื่อถือด้วยตัวจับเวลา Systemd

แทนที่การเรียกใช้งานงานตามความต้องการด้วยตัวจับเวลา systemd ที่เรียกใช้คำสั่ง occ system:cron ที่ ownCloud รองรับทุกๆ 15 นาที

กู้คืนการซิงค์ WebDAV ของ ownCloud โดยการค้นหาเส้นทางที่เสียหาย

ตรวจสอบการร้องขอ WebDAV ผ่าน Apache, Nginx หรือพร็อกซีแบบย้อนกลับ จากนั้นยืนยันว่าการซิงค์ ownCloud ทำงานได้โดยใช้การทดสอบ PROPFIND ที่มีการตรวจสอบสิทธิ์