ตั้งค่า Single Sign-On (SSO) ด้วย Google Workspace
ด้วยการตั้งค่าที่น้อยที่สุด ตัวเชื่อมต่อนี้ช่วยให้สามารถผสานรวมกับ Microsoft Entra ID สำหรับ SSO สำหรับองค์กร (enterprise SSO) ได้
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ SSO และวิธีตั้งค่า SSO ใน Logto โปรดดูเอกสาร SSO สำหรับองค์กร (SAML & OIDC) เพื่อเริ่มต้นใช้งาน
ขั้นตอนที่ 1: สร้างโปรเจกต์ใหม่บน Google Cloud Platform
ก่อนที่คุณจะสามารถใช้ Google Workspace เป็นผู้ให้บริการการยืนยันตัวตน (authentication provider) ได้ คุณต้องตั้งค่าโปรเจกต์ใน Google API Console เพื่อขอรับข้อมูลประจำตัว OAuth 2.0 หากคุณมีโปรเจกต์อยู่แล้ว สามารถข้ามขั้นตอนนี้ได้ หากยังไม่มี ให้สร้างโปรเจกต์ใหม่ภายใต้องค์กร Google ของคุณ
ขั้นตอนที่ 2: ตั้งค่าหน้าขอความยินยอม (consent screen) สำหรับแอปพลิเคชันของคุณ
เพื่อสร้างข้อมูลรับรอง OIDC ใหม่ คุณต้องกำหนดค่าหน้าขอความยินยอม (Consent Screen) สำหรับแอปพลิเคชันของคุณ
- ไปที่หน้า OAuth consent screen และเลือกประเภทผู้ใช้
Internalการตั้งค่านี้จะทำให้แอป OAuth สามารถใช้งานได้เฉพาะผู้ใช้ภายในองค์กรของคุณเท่านั้น
- กรอกการตั้งค่า
Consent Screenตามคำแนะนำบนหน้า คุณต้องระบุข้อมูลขั้นต่ำดังต่อไปนี้:
- ชื่อแอปพลิเคชัน (Application name): ชื่อของแอปพลิเคชันของคุณ ซึ่งจะแสดงบนหน้าขอความยินยอม
- อีเมลสำหรับติดต่อ (Support email): อีเมลสำหรับติดต่อของแอปพลิเคชัน ซึ่งจะแสดงบนหน้าขอความยินยอม
- กำหนด
ขอบเขต (Scopes)สำหรับแอปพลิเคชันของคุณ เพื่อดึงข้อมูลตัวตนและอีเมลของผู้ใช้อย่างถูกต้องจาก IdP ตัวเชื่อมต่อ SSO ของ Logto จำเป็นต้องขอขอบเขตต่อไปนี้จาก IdP:
- openid: ขอบเขตนี้จำเป็นสำหรับการยืนยันตัวตน OIDC ใช้สำหรับดึงโทเค็น ID (ID token) และเข้าถึง endpoint userInfo ของ IdP
- profile: ขอบเขตนี้จำเป็นสำหรับการเข้าถึงข้อมูลโปรไฟล์พื้นฐานของผู้ใช้
- email: ขอบเขตนี้จำเป็นสำหรับการเข้าถึงที่อยู่อีเมลของผู้ใช้
คลิกปุ่ม Save เพื่อบันทึกการตั้งค่าหน้าขอความยินยอม
ขั้นตอนที่ 3: สร้าง OAuth credential ใหม่
ไปที่หน้า Credentials แล้วคลิกปุ่ม Create Credentials จากนั้นเลือกตัวเลือก OAuth client ID จากเมนูดรอปดาวน์เพื่อสร้าง OAuth credential ใหม่สำหรับแอปพลิเคชันของคุณ
ดำเนินการตั้งค่า OAuth credential ต่อโดยกรอกข้อมูลดังต่อไปนี้:
- เลือก
Web applicationเป็นประเภทของแอปพลิเคชัน - กรอก
Nameของแอปพลิเคชันลูกข่ายของคุณ เช่นLogto SSO Connectorเพื่อช่วยให้คุณระบุ credential นี้ได้ในอนาคต - กรอก
Authorized redirect URIsด้วย Logto callback URI นี่คือ URI ที่ Google จะเปลี่ยนเส้นทางเบราว์เซอร์ของผู้ใช้หลังจากการยืนยันตัวตนสำเร็จ หลังจากผู้ใช้ยืนยันตัวตนกับ IdP สำเร็จ IdP จะเปลี่ยนเส้นทางเบราว์เซอร์ของผู้ใช้กลับมาที่ URI นี้พร้อมกับ authorization code Logto จะดำเนินการยืนยันตัวตนให้สมบูรณ์โดยอิงจาก authorization code ที่ได้รับจาก URI นี้ - กรอก
Authorized JavaScript originsด้วย origin ของ Logto callback URI เพื่อให้แน่ใจว่าเฉพาะแอป Logto ของคุณเท่านั้นที่สามารถส่งคำขอไปยัง Google OAuth server ได้ - คลิกปุ่ม
Createเพื่อสร้าง OAuth credential
ขั้นตอนที่ 4: ตั้งค่าตัวเชื่อมต่อ Logto ด้วย client credentials
หลังจากสร้างข้อมูลประจำตัว OAuth สำเร็จแล้ว คุณจะได้รับหน้าต่างแจ้งเตือนที่แสดง client ID และ client secret
คัดลอก Client ID และ Client secret แล้วกรอกลงในช่องที่เกี่ยวข้องบนแท็บ Connection ของตัวเชื่อมต่อ SSO ของ Logto
ขณะนี้คุณได้ตั้งค่าตัวเชื่อมต่อ Google Workspace SSO บน Logto สำเร็จแล้ว
ขั้นตอนที่ 5: ขอบเขตเพิ่มเติม (ไม่บังคับ)
ขอบเขต (Scopes) กำหนดสิทธิ์ที่แอปของคุณร้องขอจากผู้ใช้ และควบคุมว่าแอปของคุณสามารถเข้าถึงข้อมูลใดจากบัญชี Google Workspace ของพวกเขาได้ การร้องขอสิทธิ์ของ Google จำเป็นต้องมีการตั้งค่าทั้งสองฝั่ง:
ใน Google Cloud Console:
- ไปที่ APIs & Services > OAuth consent screen > Scopes
- คลิก Add or Remove Scopes และเลือกเฉพาะขอบเขตที่แอปของคุณต้องการ:
- การยืนยันตัวตน (Authentication) (จำเป็น):
https://www.googleapis.com/auth/userinfo.emailhttps://www.googleapis.com/auth/userinfo.profileopenid
- การเข้าถึง API (ไม่บังคับ): เพิ่มขอบเขตเพิ่มเติมที่แอปของคุณต้องการ (เช่น Drive, Calendar, YouTube) ค้นหาบริการที่มีได้ใน Google API Library หากแอปของคุณต้องการเข้าถึง Google API เกินกว่าสิทธิ์พื้นฐาน ให้เปิดใช้งาน API เฉพาะที่แอปของคุณจะใช้ก่อน (เช่น Google Drive API, Gmail API, Calendar API) ใน Google API Library
- การยืนยันตัวตน (Authentication) (จำเป็น):
- คลิก Update เพื่อยืนยันการเลือก
- คลิก Save and Continue เพื่อบันทึกการเปลี่ยนแปลง
ในตัวเชื่อมต่อ Google Workspace ของ Logto:
- Logto จะเพิ่มขอบเขต
openid,profileและemailโดยอัตโนมัติเพื่อดึงข้อมูลเอกลักษณ์ผู้ใช้พื้นฐาน คุณสามารถเว้นว่างช่องScopesได้หากต้องการเพียงข้อมูลผู้ใช้พื้นฐาน - เพิ่มขอบเขตเพิ่มเติม (คั่นด้วยช่องว่าง) ในช่อง
Scopesเพื่อร้องขอข้อมูลเพิ่มเติมจาก Google โดยใช้ URL ขอบเขตแบบเต็ม ตัวอย่างเช่น:https://www.googleapis.com/auth/calendar.readonly
หากแอปของคุณร้องขอขอบเขตเหล่านี้เพื่อเข้าถึง Google API และดำเนินการต่าง ๆ โปรดเปิดใช้งาน Store tokens for persistent API access ในตัวเชื่อมต่อ Google ของ Logto ดูรายละเอียดในหัวข้อถัดไป
ขั้นตอนที่ 6: จัดเก็บโทเค็นเพื่อเข้าถึง Google APIs (ไม่บังคับ)
หากคุณต้องการเข้าถึง Google APIs และดำเนินการต่าง ๆ ด้วยการอนุญาตของผู้ใช้ Logto จำเป็นต้องขอขอบเขต API (scopes) ที่เฉพาะเจาะจงและจัดเก็บโทเค็น
- เพิ่มขอบเขตที่ต้องการในหน้าการตั้งค่าความยินยอม OAuth ของ Google Cloud Console และในตัวเชื่อมต่อ Google ของ Logto
- เปิดใช้งาน จัดเก็บโทเค็นเพื่อเข้าถึง API อย่างต่อเนื่อง ในตัวเชื่อมต่อ Google ของ Logto Logto จะจัดเก็บโทเค็นการเข้าถึง Google และโทเค็นรีเฟรช Google ไว้อย่างปลอดภัยใน Secret Vault
- เพื่อให้แน่ใจว่าจะได้รับโทเค็นรีเฟรช ให้ตั้งค่าตัวเชื่อมต่อ Google ของ Logto ให้เปิดใช้งาน Offline Access
คุณไม่จำเป็นต้องเพิ่ม offline_access ในช่อง Scope ของ Logto — การเพิ่มอาจทำให้เกิดข้อผิดพลาด Google จะใช้ access_type=offline โดยอัตโนมัติเมื่อเปิดใช้งาน offline access
ขั้นตอนที่ 7: กำหนดโดเมนอีเมลและเปิดใช้งานตัวเชื่อมต่อ SSO
ระบุ email domains ขององค์กรของคุณในแท็บ SSO experience ของตัวเชื่อมต่อ Logto การดำเนินการนี้จะเปิดใช้งานตัวเชื่อมต่อ SSO เป็นวิธีการยืนยันตัวตนสำหรับผู้ใช้เหล่านั้น
ผู้ใช้ที่มีอีเมลในโดเมนที่ระบุจะถูกเปลี่ยนเส้นทางให้ใช้ตัวเชื่อมต่อ SSO ของคุณเป็นวิธีการยืนยันตัวตนเพียงวิธีเดียว
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวเชื่อมต่อ Google Workspace SSO โปรดดูที่ Google OpenID Connector