ข้ามไปยังเนื้อหาหลัก

ตั้งค่า Single Sign-On (SSO) ด้วย OpenID Connect (OIDC)

ด้วยการตั้งค่าที่น้อยที่สุด ตัวเชื่อมต่อนี้ช่วยให้สามารถเชื่อมต่อกับผู้ให้บริการข้อมูลระบุตัวตน (IdP) ที่ใช้ OIDC ได้ทุกเจ้า

เคล็ดลับ:

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ SSO และวิธีตั้งค่า SSO ใน Logto โปรดดูเอกสาร SSO สำหรับองค์กร (SAML & OIDC) เพื่อเริ่มต้นใช้งาน

ขั้นตอนที่ 1: สร้างแอป OIDC บน IdP ของคุณ

เริ่มต้นการผสานรวม OIDC SSO โดยการสร้างแอปพลิเคชันฝั่งผู้ให้บริการข้อมูลระบุตัวตน (IdP) คุณจะต้องใช้การตั้งค่าต่อไปนี้จากเซิร์ฟเวอร์ Logto

  • Callback URI: Logto Callback URI หรือที่รู้จักกันในชื่อ Redirect URI หรือ Reply URL คือจุดปลายทาง (endpoint) หรือ URL เฉพาะที่ IdP ใช้สำหรับเปลี่ยนเส้นทางเบราว์เซอร์ของผู้ใช้หลังจากการยืนยันตัวตนสำเร็จ เมื่อผู้ใช้ยืนยันตัวตนกับ IdP สำเร็จแล้ว IdP จะเปลี่ยนเส้นทางเบราว์เซอร์ของผู้ใช้กลับมายัง URI ที่กำหนดนี้พร้อมกับ authorization code จากนั้น Logto จะดำเนินการยืนยันตัวตนให้สมบูรณ์โดยอิงจาก authorization code ที่ได้รับจาก URI นี้

กรอก Logto Callback URI ลงในฟอร์มตั้งค่าแอป OIDC ของ IdP ของคุณ แล้วดำเนินการสร้างแอปพลิเคชันต่อไป (IdP OIDC ส่วนใหญ่มีประเภทแอปพลิเคชันให้เลือกหลากหลายรูปแบบ หากต้องการสร้างตัวเชื่อมต่อ SSO แบบเว็บบน Logto โปรดเลือกประเภท Web Application)

ขั้นตอนที่ 2: ตั้งค่า OIDC SSO บน Logto

หลังจากสร้างแอปพลิเคชัน OIDC บนฝั่งผู้ให้บริการข้อมูลระบุตัวตน (IdP) สำเร็จแล้ว คุณจะต้องนำค่าการตั้งค่าของ IdP กลับมากรอกใน Logto โดยไปที่แท็บ Connection และกรอกค่าต่อไปนี้:

  • Client ID: ตัวระบุที่ไม่ซ้ำกันซึ่ง IdP กำหนดให้กับแอปพลิเคชัน OIDC ของคุณ ตัวระบุตัวนี้ใช้โดย Logto เพื่อระบุและยืนยันตัวตนของแอปพลิเคชันระหว่างกระบวนการ OIDC
  • Client Secret: รหัสลับที่ใช้ร่วมกันระหว่าง Logto กับ IdP รหัสลับนี้ใช้เพื่อยืนยันตัวตนของแอปพลิเคชัน OIDC และรักษาความปลอดภัยของการสื่อสารระหว่าง Logto กับ IdP
  • ผู้ออก (Issuer): URL ของผู้ออก ซึ่งเป็นตัวระบุที่ไม่ซ้ำกันสำหรับ IdP โดยระบุที่ตั้งของผู้ให้บริการข้อมูลระบุตัวตน OIDC ถือเป็นส่วนสำคัญของการตั้งค่า OIDC เพราะช่วยให้ Logto ค้นหา endpoint ที่จำเป็นได้ เพื่อให้ง่ายต่อการตั้งค่า Logto จะดึง endpoint และการตั้งค่าที่จำเป็นของ OIDC มาให้อัตโนมัติ โดยใช้ผู้ออก (issuer) ที่คุณระบุและเรียกไปยัง OIDC discover endpoint ของ IdP ดังนั้นจึงจำเป็นต้องตรวจสอบให้แน่ใจว่า endpoint ของผู้ออกถูกต้องและตั้งค่าอย่างแม่นยำ เพื่อให้ Logto สามารถดึงข้อมูลที่ต้องการได้อย่างถูกต้อง หลังจากดึงข้อมูลสำเร็จ คุณจะเห็นค่าการตั้งค่าของ IdP ที่ถูกแยกวิเคราะห์แล้วในส่วน issuers

ขั้นตอนที่ 3: ตั้งค่าขอบเขต (Scopes) (ไม่บังคับ)

ขอบเขต (Scopes) กำหนดสิทธิ์ (Permissions) ที่แอปของคุณร้องขอจากผู้ใช้ และควบคุมว่าแอปของคุณสามารถเข้าถึงข้อมูลใดจากบัญชีองค์กรของพวกเขาได้บ้าง

การตั้งค่าขอบเขต (Scopes) ต้องมีการกำหนดค่าทั้งสองฝั่ง:

  1. ผู้ให้บริการข้อมูลระบุตัวตน (IdP) ของคุณ: กำหนดว่าสิทธิ์ใดได้รับอนุญาตสำหรับการอนุญาต (Authorization) ในคอนโซล IdP ของคุณ
    • บาง IdP เปิดใช้งานขอบเขตสาธารณะทั้งหมดโดยค่าเริ่มต้น (ไม่ต้องดำเนินการใด ๆ)
    • บางรายต้องให้คุณอนุญาตสิทธิ์อย่างชัดเจน
  2. ตัวเชื่อมต่อองค์กร Logto: ระบุขอบเขตที่จะร้องขอระหว่างการยืนยันตัวตน (Authentication) ในการตั้งค่าตัวเชื่อมต่อ OIDC องค์กรของ Logto > ช่อง Scopes
    • Logto จะเพิ่มขอบเขต openid, profile และ email เสมอ เพื่อดึงข้อมูลตัวตนผู้ใช้พื้นฐาน ไม่ว่าคุณจะตั้งค่าขอบเขตเองอย่างไร
    • คุณสามารถเพิ่มขอบเขตเพิ่มเติม (คั่นด้วยช่องว่าง) เพื่อขอข้อมูลเพิ่มเติมจาก IdP ได้
เคล็ดลับ:

หากแอปของคุณต้องเข้าถึง API โดยใช้ขอบเขตเหล่านี้ อย่าลืมเปิดใช้งาน จัดเก็บโทเค็นเพื่อเข้าถึง API อย่างต่อเนื่อง (Store tokens for persistent API access) ในตัวเชื่อมต่อองค์กร Logto ของคุณ ดูรายละเอียดในหัวข้อถัดไป

ขั้นตอนที่ 4: จัดเก็บโทเค็นเพื่อเข้าถึง API ของบุคคลที่สาม (ไม่บังคับ)

หากคุณต้องการเข้าถึง API ของผู้ให้บริการข้อมูลระบุตัวตน (Identity provider) และดำเนินการต่าง ๆ ด้วยการอนุญาตของผู้ใช้ Logto จำเป็นต้องขอขอบเขต API (scopes) ที่เฉพาะเจาะจงและจัดเก็บโทเค็น

  1. เพิ่มขอบเขตที่ต้องการในช่อง scope ตามคำแนะนำข้างต้น
  2. เปิดใช้งาน จัดเก็บโทเค็นสำหรับการเข้าถึง API อย่างต่อเนื่อง (Store tokens for persistent API access) ในตัวเชื่อมต่อ OIDC สำหรับองค์กรของ Logto โดย Logto จะจัดเก็บโทเค็นการเข้าถึง (access tokens) ไว้อย่างปลอดภัยใน Secret Vault
  3. สำหรับผู้ให้บริการข้อมูลระบุตัวตน OIDC มาตรฐาน ต้องใส่ขอบเขต offline_access เพื่อให้ได้รับโทเค็นรีเฟรช (refresh token) ซึ่งจะช่วยป้องกันการขอความยินยอมจากผู้ใช้ซ้ำ ๆ

ขั้นตอนที่ 5: กำหนดโดเมนอีเมลและเปิดใช้งานตัวเชื่อมต่อ SSO

ระบุ email domains ขององค์กรของคุณในแท็บ SSO experience ของตัวเชื่อมต่อ Logto การดำเนินการนี้จะเปิดใช้งานตัวเชื่อมต่อ SSO ให้เป็นวิธีการยืนยันตัวตนสำหรับผู้ใช้เหล่านั้น

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