• auth
  • integration
  • oauth
  • oidc
  • identity

เพิ่มประสิทธิภาพการยืนยันตัวตนด้วย OAuth และ OIDC ด้วย Logto

ชุมชนของเราได้แสดงความสนใจในการใช้ Logto เป็นผู้ให้บริการ Identity สำหรับผลิตภัณฑ์ต่าง ๆ เช่น ปลั๊กอินของ Outline หรือ ChatGPT ในทางทฤษฎี Logto สามารถทำหน้าที่เป็นผู้ให้บริการ OAuth หรือ OIDC (OpenID Connect) ได้ ตราบเท่าที่ผลิตภัณฑ์ที่คุณต้องการผสานรวมสนับสนุนโปรโตคอลเหล่านี้

Gao
Gao
Founder

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"

แท็บ "Applications" ของ Logto Console

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

โมดอล "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 URIs"

อีกแบบหนึ่งมันอาจจะเรียกว่า "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"

สวิตช์ "Always issue Refresh Token"

เสร็จสิ้นแล้ว!

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

แถบการทำงานแสดงปุ่ม "Save Changes"

ตั้งค่าผลิตภัณฑ์

ปฏิบัติตามขั้นตอนในเอกสารของผลิตภัณฑ์สำหรับการตั้งค่า OAuth หรือ OIDC

การกำหนดค่าพื้นฐาน

ส่วนใหญ่ของค่าการตั้งค่าที่จำเป็นสามารถพบในหน้ารายละเอียดแอปพลิเคชัน Logto บางชื่ออาจมีชื่อเรียน ดังนั้นโปรดอ้างอิงตามตารางด้านล่างสำหรับการอ้างอิง:

ชื่อของ Logtoชื่อเรียกชื่ออื่นการใช้
App IDApplication ID, Client ID
App SecretApplication Secret, Client Secret
Redirect URIRedirect URL, Callback URI, Callback URLการเปลี่ยนเส้นทางหลังจากลงชื่อเข้าใช้
Post Sign-out Redirect URIsPost Sign-out Redirect URL, Post Logout (Redirect) URI, Post Logout (Redirect) URLการเปลี่ยนเส้นทางหลังจากออกจากระบบ
Authorization EndpointAuthorization URI, Authorization URL, Auth Endpoint, Auth URL, Auth URIการยืนยันตัวตนครั้งแรก
Token EndpointToken URL, Token URIขอการมอบโทเค็น
Userinfo EndpointUserinfo 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 ที่จำเป็น
substringopenid
namestringprofile
usernamestringprofile
picturestringprofile
emailstringemail
email_verifiedbooleanemail
phone_numberstringphone
phone_number_verifiedbooleanphone

ข้อกำหนด: ทดสอบการรวม Logto

คลิกที่ปุ่มลงชื่อเข้าใช้ในผลิตภัณฑ์ คุณจะถูกนำไปยังประสบการณ์การลงชื่อเข้าใช้ของ Logto

ประสบการณ์การลงชื่อเข้าใช้ Logto

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

และนี่คือคำแนะนำของเราในการเพิ่มประสิทธิภาพการยืนยันตัวตน OAuth และ OIDC ด้วย Logto หากคุณพบปัญหาใด ๆ ระหว่างการรวม โปรดอย่าลังเลที่จะติดต่อเราทางอีเมลที่ [email protected] หรือ เข้าร่วมเซิร์ฟเวอร์ Discord ของเรา!

อ่านเพิ่มเติม