เชื่อมต่อผู้ให้บริการ OpenID Connect
ใช้คู่มือนี้เมื่อผู้ให้บริการตัวตนของคุณพูด OpenID Connect แทน SAML ผู้ออกที่ผ่านการรับรอง OIDC รายใดก็ใช้ได้ — Pocket ID, Keycloak, Auth0, Zitadel, Google Workspace และรายอื่น ๆ ล้วนทำตามขั้นตอนเดียวกัน ต่างกันแค่จุดที่ผู้ให้บริการของคุณแสดงค่าเหล่านั้น
สิ่งที่ต้องมีก่อน
หัวข้อที่มีชื่อว่า “สิ่งที่ต้องมีก่อน”- ผู้ให้บริการ OIDC ที่คุณสร้างไคลเอนต์ได้ — จด client id และ URL ผู้ออก ของมันไว้
(base ที่เอกสาร
.well-known/openid-configurationอาศัยอยู่) รวมทั้ง client secret ของมันเมื่อไคลเอนต์เป็นแบบ confidential (ไคลเอนต์ PKCE สาธารณะไม่มี secret), - เซิร์ฟเวอร์ Control Center ที่คุณดูแล (ในฐานะเจ้าของเซิร์ฟเวอร์)
ขั้นตอน
หัวข้อที่มีชื่อว่า “ขั้นตอน”- เปิด การตั้งค่า → เซิร์ฟเวอร์ → ลงชื่อเข้าใช้ครั้งเดียว แล้วสลับไปที่ OpenID Connect
- กรอก URL ผู้ออก และ Client ID รวมทั้ง Client secret (ไม่บังคับ) เมื่อผู้ให้บริการออกให้ Control Center จะค้นหาเอนด์พอยต์จาก เอกสาร discovery มาตรฐานของผู้ออกเอง — ไม่ต้องตั้งค่าเฉพาะผู้ให้บริการแต่ละราย
- ที่ฝั่งผู้ให้บริการ ให้ลงทะเบียน redirect
https://<your-server>/oidc/callbackกับไคลเอนต์นั้น - หากกลุ่มของคุณอยู่ใน claim อื่นที่ไม่ใช่
groupsให้ตั้งชื่อ เคลมกลุ่ม และแมปกลุ่มเป็นบทบาทได้หากต้องการ (SSO ไม่มีทาง ให้บทบาทเจ้าของได้) - เลือกนโยบายสมาชิก (เพิ่มเข้าทุกเวิร์กสเปซอัตโนมัติ หรือบังคับให้เชิญ เป็นรายเวิร์กสเปซ) เปิด ใช้ OpenID Connect สำหรับลงชื่อเข้าใช้ แล้ว กด บันทึกการเชื่อมต่อ
- กด ทดสอบการเชื่อมต่อ — เซิร์ฟเวอร์จะดึงเอกสาร discovery ของผู้ออกและยืนยันเอนด์พอยต์ของมัน ดังนั้นทอสต์สีเขียวหมายความว่าทุกอย่าง ยกเว้นการไปกลับผ่านเบราว์เซอร์ทำงานได้ หากต้องการตรวจการลงทะเบียน ไคลเอนต์ด้วย ให้ใช้ตัวตรวจสอบด้านล่าง
- ลองลงชื่อเข้าใช้ดู: หน้าจอเชื่อมต่อบนเว็บจะแสดง ลงชื่อเข้าใช้ด้วย OpenID
Connect หรือเปิด
https://<your-server>/oidc/loginโดยตรง
Claims (อีเมล ชื่อ กลุ่ม) ถูกอ่านจาก token endpoint ของผู้ออกผ่าน
TLS โดยเซิร์ฟเวอร์ของคุณ — เบราว์เซอร์ไม่เคยเป็นผู้ส่งค่าเหล่านี้ จึงไม่มีการ
ตรวจสอบลายเซ็น JWT ในเครื่องเข้ามาเกี่ยวข้อง ไคลเอนต์ควรได้รับอนุญาตให้ร้องขอ
scope openid profile email ซึ่งเป็นสิ่งที่ Control Center ขอพอดี
เนื่องจากช่องทาง TLS นั้นเป็นสิ่งเดียวที่ยืนยันความถูกต้องของ claims
URL ผู้ออกจึงต้องเป็น https — ผู้ออกที่เป็น plaintext จะเปิดทางให้
ผู้โจมตีบนเส้นทางปลอมแปลงตัวตนได้ทั้งหมด ระบบยอมรับ http
เฉพาะกับผู้ออกแบบ loopback (localhost, 127.0.0.1, ::1) เท่านั้น
สำหรับการพัฒนาภายในเครื่อง
ตรวจสอบการกำหนดค่าของคุณจากหน้านี้
หัวข้อที่มีชื่อว่า “ตรวจสอบการกำหนดค่าของคุณจากหน้านี้”ตัวตรวจสอบด้านล่างทำงานในเบราว์เซอร์ของคุณ มันดึงเอกสาร discovery ของผู้ออกของคุณโดยตรง เว็บไซต์นี้จึงไม่เคยเห็นมัน และนำกฎของเซิร์ฟเวอร์มา ปรับใช้: ผู้ออกที่เป็น https ซึ่งตรงกับเอกสาร เอนด์พอยต์บน origin ของผู้ออกเอง PKCE S256 และวิธีตรวจสอบสิทธิ์โทเคนที่ชนิดไคลเอนต์ของคุณต้องใช้ เมื่อมี client ID และที่อยู่เซิร์ฟเวอร์ มันจะเปิดการลงชื่อเข้าใช้ทดสอบที่บอกว่า ไคลเอนต์และ redirect URI ของมันลงทะเบียนไว้แล้วหรือไม่ มันไม่เคยขอ client secret
Runs in your browserYour browser fetches the discovery document straight from your issuer. Add a server address and it also asks that server which sign-in methods it offers. This site never receives what you type.
Test sign-in at your provider
- Your provider's sign-in or consent page: the client ID and redirect URI are registered. You can close the tab.
- An error at your provider: it names what to fix, usually a redirect URI that is not registered or an unknown client ID.
- Your server's "Sign-in failed" page: also a pass. The provider accepted the request and sent you back; your server refuses it only because this page started the sign-in, not your server.