Logto เป็นโซลูชั่นด้านการยืนยันตัวตนที่ใช้งานง่ายและมีฟีเจอร์ที่จำเป็นทั้งหมด รองรับวิธีการลงชื่อเข้าใช้หลากหลาย เช่น ชื่อผู้ใช้ อีเมล หมายเลขโทรศัพท์ และการลงชื่อเข้าใช้ผ่านสังคมออนไลน์ยอดนิยม เช่น Google และ GitHub ไม่ว่าคุณจะเป็นบุคคลหรือธุรกิจขนาดใด Logto มีโซลูชันการจัดการและเข้าถึงตัวตนลูกค้า Customer Identity and Access Management (CIAM) ที่เหมาะกับความต้องการเฉพาะของโครงการของคุณ
บทนำ#
ชุมชนของเราได้แสดงความสนใจในการใช้ Logto เป็นผู้ให้บริการ Identity สำหรับผลิตภัณฑ์ต่าง ๆ เช่น ปลั๊กอินของ Outline หรือ ChatGPT ในทางทฤษฎี Logto สามารถทำหน้าที่เป็นผู้ให้บริการ OAuth 2.0 (OAuth) หรือ OpenID Connect (OIDC) ได้ ตราบเท่าที่ผลิตภัณฑ์ที่คุณต้องการผสานรวมสนับสนุนโปรโตคอลเหล่านี้
ในบทความนี้ เรามีบทแนะนำทั่วไปสำหรับการรวมเข้าของ OAuth หรือ OIDC โดยใช้ Logto เป็นผู้ให้บริการ Identity นอกจากนี้ เรายังมีบทแนะนำเฉพาะสำหรับการรวมเข้าพิเศษ รวมถึง:
ถึงแม้จะมีรายละเอียดบางอย่างที่อาจแตกต่างกันไปตามผลิตภัณฑ์ แต่การตั้งค่าพื้นฐานยังคงเป็นสากล หากคุณมีคำถามหรือจำเป็นต้องขอความช่วยเหลือเพิ่มเติม เราขอแนะนำให้คุณเข้าร่วมเซิร์ฟเวอร์ Discord ของเราเพื่อสนทนาต่อ
เริ่มกันเลย!
ข้อกำหนดเบื้องต้น#
ก่อนที่เราจะเริ่ม ตรวจสอบให้แน่ใจว่าคุณมีสิ่งต่อไปนี้:
- อินสแตนซ์ Logto ที่ทำงานอยู่อีกทั้งหรือการเข้าถึงบัญชี Logto Cloud
- ผลิตภัณฑ์ที่รองรับผู้ให้บริการ Identity แบบ OAuth หรือ OIDC บุคคลที่สาม (เรียกว่า "the product")
ตั้งค่า Logto#
หากคุณกำลังโฮสต์ Logto ด้วยตัวเอง ให้ดูเอกสาร Logto "เริ่มต้น" เพื่อกำหนดค่าอินสแตนซ์ Logto ของคุณ
เปิด Logto Console โดยการเข้าถึง URL https://cloud.logto.io/ หากคุณใช้ Logto Cloud หรือใช้งานที่คุณตั้งค่าก่อนหน้าสำหรับการโฮสต์ด้วยตัวเอง
สร้างแอปพลิเคชัน#
ไปที่แท็บ "Applications" แล้วคลิก "Create application"

ในโมดอลที่ปรากฏขึ้น ให้เลือก "Traditional Web" และระบุชื่อแอปพลิเคชัน เช่น "My App" คลิก "Create application"

คุณจะถูกนำไปที่หน้าบทแนะนำใน Logto คลิก "Skip" ที่มุมขวาบนเพื่อไปที่หน้ารายละเอียดแอปพลิเคชัน

กำหนดค่า Redirect URI#
ในส่วน "Redirect URIs" ป้อนค่าที่มีในเอกสารประกอบของผลิตภัณฑ์ โดยทั่วไปแล้วจะเป็นค่าพิกัดที่สร้างแบบไดนามิกตาม ID หรือการตั้งค่าส่วนต่อเชื่อมของคุณในผลิตภัณฑ์ ตัวอย่างเช่น ใน ปลั๊กอิน ChatGPT Redirect URI คือ:
https://chat.openai.com/aip/[your-plugin-id]/oauth/callback
หากรหัสปลั๊กอินของคุณคือ foo123 ค่าควรจะเป็น:
https://chat.openai.com/aip/foo123/oauth/callback

อีกแบบหนึ่งมันอาจจะเรียกว่า "Redirect URL," "Callback URI," หรือ "Callback URL”
ตัวเลือก: ทำให้มั่นใจว่า Logto ออก Refresh Token#
บางผลิตภัณฑ์อาจต้องการ Refresh Token เมื่อต้องการส่งคำขอแลกเปลี่ยนโทเค็นไปยัง Logto สำหรับ OAuth คุณเพียงแค่ต้องทำให้แน่ใจว่า offline_access มีอยู่ใน scope ตามโปรโตคอล OIDC โดยค่าเริ่มต้น ผลิตภัณฑ์ต้องเพิ่มพารามิเตอร์การค้นหา prompt=consent ในคำขออนุญาตเริ่มต้นสำหรับการไหลของ Authorization Code มิฉะนั้นจะไม่มีการออก Refresh Token
หากผลิตภัณฑ์ใช้ OAuth หรือไม่ได้เพิ่มพารามิเตอร์ prompt=consent หรือ scope offline_access แต่ต้องการ Refresh Token (เช่น ปลั๊กอิน ChatGPT) เลื่อนลงไปที่ส่วน "Advanced settings" แล้วเปิด "Always issue Refresh Token"

เสร็จสิ้นแล้ว!#
คลิกที่ปุ่ม "Save Changes" ที่ด้านล่าง เก็บหน้านี้เปิดไว้เนื่องจากจะมีประโยชน์สำหรับการตั้งค่าต่อไป

ตั้งค่าผลิตภัณฑ์#
ปฏิบัติตามขั้นตอนในเอกสารของผลิตภัณฑ์สำหรับการตั้งค่า OAuth หรือ OIDC
การกำหนดค่าพื้นฐาน#
ส่วนใหญ่ของค่าการตั้งค่าที่จำเป็นสามารถพบในหน้ารายละเอียดแอปพลิเคชัน Logto บางชื่ออาจมีชื่อเรียน ดังนั้นโปรดอ้างอิงตามตารางด้านล่างสำหรับการอ้างอิง:
| ชื่อของ Logto | ชื่อเรียกชื่ออื่น | การใช้ |
|---|
| App ID | Application ID, Client ID | |
| App Secret | Application Secret, Client Secret | |
| Redirect URI | Redirect URL, Callback URI, Callback URL | การเปลี่ยนเส้นทางหลังจากลงชื่อเข้าใช้ |
| Post Sign-out Redirect URIs | Post Sign-out Redirect URL, Post Logout (Redirect) URI, Post Logout (Redirect) URL | การเปลี่ยนเส้นทางหลังจากออกจากระบบ |
| Authorization Endpoint | Authorization URI, Authorization URL, Auth Endpoint, Auth URL, Auth URI | การยืนยันตัวตนครั้งแรก |
| Token Endpoint | Token URL, Token URI | ขอการมอบโทเค็น |
| Userinfo Endpoint | Userinfo URL, Userinfo URI, User Info Endpoint, User Info URL, User Info URI | ดึงข้อมูลผู้ใช้ปัจจุบัน |
สำหรับผลิตภัณฑ์สมัยใหม่ "discovery endpoint" อาจเพียงพอ ในกรณีเช่นนี้ แทนที่ auth ด้วย .well-known/openid-configuration ใน Endpoint การยืนยันตัวตน ยกตัวอย่างเช่น หาก Endpoint การยืนยันตัวตนคือ https://default.logto.app/oidc/auth discovery endpoint จะเป็น https://default.logto.app/oidc/.well-known/openid-configuration
ตัวเลือก: การตั้งค่า Scope#
หากผลิตภัณฑ์สนับสนุน OIDC หรือจำเป็นต้องให้ออก ID Token ให้เพิ่ม openid profile ในการตั้งค่า scope อ้างอิงไปยังตาราง claim-scope ด้านล่าง:
| การเรียกร้อง | ประเภท | Scope ที่จำเป็น |
|---|
| sub | string | openid |
| name | string | profile |
| username | string | profile |
| picture | string | profile |
| email | string | email |
| email_verified | boolean | email |
| phone_number | string | phone |
| phone_number_verified | boolean | phone |
ข้อกำหนด: ทดสอบการรวม Logto#
คลิกที่ปุ่มลงชื่อเข้าใช้ในผลิตภัณฑ์ คุณจะถูกนำไปยังประสบการณ์การลงชื่อเข้าใช้ของ Logto
หากทุกอย่างถูกตั้งค่าอย่างถูกต้อง เมื่อคุณเสร็จสิ้นการลงชื่อเข้าใช้หรือการลงทะเบียนใน Logto คุณจะถูกเปลี่ยนเส้นทางกลับไปยังผลิตภัณฑ์โดยไม่มีข้อผิดพลาดใด ๆ
และนี่คือคำแนะนำของเราในการเพิ่มประสิทธิภาพการยืนยันตัวตน OAuth และ OIDC ด้วย Logto หากคุณพบปัญหาใด ๆ ระหว่างการรวม โปรดอย่าลังเลที่จะติดต่อเราทางอีเมลที่ [email protected] หรือ เข้าร่วมเซิร์ฟเวอร์ Discord ของเรา!
อ่านเพิ่มเติม#