ให้ทีมเข้าสู่ระบบด้วย SSO
สิ่งที่คุณจะสร้าง
หัวข้อที่มีชื่อว่า “สิ่งที่คุณจะสร้าง”เมื่อจบบทสอนนี้ คุณจะมี:
- การเชื่อมต่อ SAML ระหว่างเซิร์ฟเวอร์ Control Center ของคุณกับผู้ให้บริการ ระบุตัวตน (เราใช้ Okta เป็นตัวอย่าง),
- ผู้ใช้หนึ่งรายที่ถูกจัดสรรโดยอัตโนมัติเมื่อลงชื่อเข้าใช้ครั้งแรก และ
- นโยบายสมาชิกภาพเวิร์กสเปซที่คุณเลือกไว้อย่างตั้งใจ
คุณต้องมีเซิร์ฟเวอร์ที่คุณดูแล (ในฐานะเจ้าของเซิร์ฟเวอร์ — ผู้ดำเนินการ ติดตั้ง) และแอปพลิเคชัน IdP ที่คุณกำหนดค่าได้ เผื่อเวลาไว้ 20 นาที
1. เปิดการตั้งค่าการลงชื่อเข้าใช้ครั้งเดียว
หัวข้อที่มีชื่อว่า “1. เปิดการตั้งค่าการลงชื่อเข้าใช้ครั้งเดียว”ลงชื่อเข้าใช้ Control Center จากนั้นไปที่ การตั้งค่า → เซิร์ฟเวอร์ → ลงชื่อเข้าใช้ครั้งเดียว หน้าจอนี้สลับไปมาระหว่าง SAML กับ OpenID Connect พร้อมการ์ด การจัดหาผู้ใช้ (SCIM) ให้อยู่ที่ SAML
ทุกอย่างบนหน้าจอนี้มีผลทั้งเซิร์ฟเวอร์: IdP ตัวเดียวเป็นผู้ยืนยันตัวตนของคน ทุกคนในทุกเวิร์กสเปซ จึงมีเพียงเจ้าของเซิร์ฟเวอร์เท่านั้นที่แก้ไขได้
2. วาง metadata ของ IdP
หัวข้อที่มีชื่อว่า “2. วาง metadata ของ IdP”ใน Okta ให้เปิดแท็บ Sign On ของแอปคุณ แล้วคัดลอก metadata XML (หรือ ดาวน์โหลดมาแล้ววางเนื้อหาของไฟล์) กลับมาที่ Control Center วางลงใน IdP metadata XML แล้วกด ทดสอบการเชื่อมต่อ
ทอสต์จะรายงานเอนด์พอยต์การลงชื่อเข้าใช้ของ IdP — เป็นหลักฐานว่า metadata
ถูกแยกวิเคราะห์แล้ว ใบรับรองถูกอ่านแล้ว และเซิร์ฟเวอร์สร้างคำขอลงชื่อเข้าใช้
จากมันได้ (การทดสอบนี้ทำทุกอย่างยกเว้นการไปกลับผ่านเบราว์เซอร์)
หากล้มเหลว แสดงว่า XML นั้นไม่ใช่ EntityDescriptor ที่สมบูรณ์ (แท็บ SAML ใน
Okta เรียกสิ่งนี้ว่า “Metadata URL” ให้เปิด URL นั้นแล้วคัดลอกสิ่งที่มันส่ง
กลับมา) ปุ่มเดียวกันบน OpenID Connect จะตรวจเอกสาร discovery ของผู้ออก
แทน หากต้องการตรวจจับใบรับรองที่ใกล้หมดอายุด้วย และดูว่า IdP รู้จัก
Control Center หรือไม่ ให้ใช้
ตัวตรวจสอบในขั้นตอนที่ 6
3. ลงทะเบียน Control Center ที่ IdP
หัวข้อที่มีชื่อว่า “3. ลงทะเบียน Control Center ที่ IdP”กด คัดลอก SP metadata แล้วส่งให้ผู้ที่กำหนดค่าฝั่ง Okta (หรืออ่านค่าสอง ค่าที่ฝ่ายนั้นถามหา):
- ACS URL:
https://<your-server>/saml/acs - Entity ID:
https://<your-server>/saml
URL เหล่านี้มาจาก origin ที่เบราว์เซอร์ของผู้ใช้เข้าถึงได้ หากเซิร์ฟเวอร์ ทำงานอยู่หลังทันเนลหรือรีเวิร์สพร็อกซี ตรวจสอบให้ origin คงที่ (การตั้งค่า → เซิร์ฟเวอร์ → การเชื่อมต่อและสถานะ → แชร์เซิร์ฟเวอร์นี้ จะแสดง URL สาธารณะ) — หรือปักหมุด entity ID ไว้อย่างชัดเจนในช่อง SP entity ID
4. เลือกว่าการลงชื่อเข้าใช้จะให้สิทธิ์อะไร
หัวข้อที่มีชื่อว่า “4. เลือกว่าการลงชื่อเข้าใช้จะให้สิทธิ์อะไร”นโยบายสองข้อกำหนดว่าการลงชื่อเข้าใช้ครั้งแรกจะทำอะไร:
- เพิ่มผู้ใช้เข้าทุกเวิร์กสเปซเมื่อลงชื่อเข้าใช้ครั้งแรก — เปิดไว้สำหรับ การติดตั้งทีมเดียวที่ SSO เท่ากับความไว้ใจ ปิดเมื่อมีหลายทีมหรือหลายลูกค้า ใช้เซิร์ฟเวอร์ร่วมกัน: ผู้มาใหม่แต่ละรายจะต้องได้รับคำเชิญเข้าสู่เวิร์กสเปซ อย่างชัดเจน ซึ่งเป็นค่าเริ่มต้นที่ปลอดภัยกว่า
- จัดหาผู้ใช้ที่ไม่รู้จักเมื่อลงชื่อเข้าใช้ครั้งแรก — เปิดเป็นค่าเริ่มต้น; ปิดเพื่อปฏิเสธทุกคนที่ยังไม่มีบัญชีอยู่แล้ว
คุณอาจเลือกแมปแอตทริบิวต์ที่บรรจุชื่อกลุ่ม (ของ Okta ปกติคือ groups) และ
แปลงกลุ่มเป็นบทบาทด้วยแมปนั้น — ตัวอย่างเช่น
{"platform-leads": "admin"} SSO ไม่มีทางให้บทบาทเจ้าของได้
5. เปิดใช้งานและลองลงชื่อเข้าใช้
หัวข้อที่มีชื่อว่า “5. เปิดใช้งานและลองลงชื่อเข้าใช้”เปิด ใช้ SAML สำหรับลงชื่อเข้าใช้ กด บันทึกการเชื่อมต่อ จากนั้นเปิด
หน้าต่างเบราว์เซอร์แบบส่วนตัวไปที่ https://<your-server>/saml/login
ลงชื่อเข้าใช้ที่ Okta แล้วคุณจะกลับมาที่ไคลเอนต์เว็บ — ลงชื่อเข้าใช้แล้ว
โดยบัญชีของคุณถูกสร้างขึ้นและได้รับสมาชิกภาพตามนโยบายที่คุณเลือก
จุดเข้าเดียวกันจะปรากฏบนหน้าจอเชื่อมต่อของเว็บ (ลงชื่อเข้าใช้ด้วย SAML) ทันทีที่คุณพิมพ์ที่อยู่เซิร์ฟเวอร์ — ฟอร์มจะปรับตามสิ่งที่เซิร์ฟเวอร์ เสนอ (OpenID Connect จะแสดง ลงชื่อเข้าใช้ด้วย OpenID Connect) ปุ่มนี้จะเปิดการลงชื่อเข้าใช้ใน แท็บใหม่; เมื่อการไปกลับเสร็จสิ้น แท็บที่รออยู่จะรับเซสชันนั้นโดยอัตโนมัติ หน้าจอตั้งค่าเซิร์ฟเวอร์บน เดสก์ท็อปก็ทำแบบเดียวกัน: พิมพ์ URL ของเซิร์ฟเวอร์ ปุ่ม ลงชื่อเข้าใช้ด้วย SAML จะปรากฏขึ้น เปิดเบราว์เซอร์ของคุณ และแอปจะลงชื่อเข้าใช้ให้เมื่อ การไปกลับเสร็จสิ้น
6. ตรวจสอบจากหน้านี้
หัวข้อที่มีชื่อว่า “6. ตรวจสอบจากหน้านี้”ก่อนที่คุณจะเริ่มใช้ SSO ทั่วทั้งองค์กร หรือเมื่อการลงชื่อเข้าใช้ล้มเหลว ให้ตรวจสอบส่วนต่าง ๆ ที่นี่ ตัวตรวจสอบทำงานทั้งหมดในเบราว์เซอร์ของคุณ: มันอ่าน metadata ที่คุณวางในแท็บนี้และใช้กฎเดียวกับเซิร์ฟเวอร์ เมื่อคุณระบุ ที่อยู่เซิร์ฟเวอร์ มันจะถามเซิร์ฟเวอร์นั้นด้วยว่าการลงชื่อเข้าใช้ด้วย SAML เปิดอยู่หรือไม่
มันจับสิ่งที่ ทดสอบการเชื่อมต่อ ในแอปมองไม่เห็น: ใบรับรองการลงนามที่ ใกล้หมดอายุ, IdP ที่ยืนกรานให้คำขอต้องมีลายเซ็น และเมื่อใช้การลงชื่อเข้าใช้ ทดสอบ ก็จะบอกว่า IdP รู้จัก Control Center หรือไม่
Runs in your browserYour metadata is read in this tab and never uploaded. Add a server address and your browser also asks that server which sign-in methods it offers.
Test sign-in at your IdP
- Your IdP's sign-in page: it recognizes Control Center's entity ID. You can close the tab.
- An error at your IdP: it names what to fix, usually an unknown entity ID (Entra: AADSTS700016) or a user not assigned to the app.
- Your server's "Sign-in failed" page: also a pass. The IdP accepted the request and posted back to your ACS URL; your server refuses it only because this page started the sign-in, not your server.
ขั้นต่อไป
หัวข้อที่มีชื่อว่า “ขั้นต่อไป”- ให้ IdP ควบคุมวงจรชีวิตด้วย: จัดสรรและถอนการจัดสรรผู้ใช้ด้วย SCIM
- IdP ของคุณพูด OpenID Connect แทน SAML? เชื่อมต่อผู้ให้บริการ OpenID Connect
- อยากรู้ว่าการไปกลับผ่านเบราว์เซอร์ตรวจสอบอะไรจริง ๆ? การลงชื่อเข้าใช้ครั้งเดียวทำงานอย่างไร