เพิ่มประสิทธิภาพการยืนยันตัวตนด้วย OAuth และ OIDC ด้วย Logto
ชุมชนของเราได้แสดงความสนใจในการใช้ Logto เป็นผู้ให้บริการ Identity สำหรับผลิตภัณฑ์ต่าง ๆ เช่น ปลั๊กอินของ Outline หรือ ChatGPT ในทางทฤษฎี Logto สามารถทำหน้าที่เป็นผู้ให้บริการ OAuth หรือ OIDC (OpenID Connect) ได้ ตราบเท่าที่ผลิตภัณฑ์ที่คุณต้องการผสานรวมสนับสนุนโปรโตคอลเหล่านี้
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 |
string | ||
email_verified | boolean | |
phone_number | string | phone |
phone_number_verified | boolean | phone |
ข้อกำหนด: ทดสอบการรวม Logto
คลิกที่ปุ่มลงชื่อเข้าใช้ในผลิตภัณฑ์ คุณจะถูกนำไปยังประสบการณ์การลงชื่อเข้าใช้ของ Logto
หากทุกอย่างถูกตั้งค่าอย่างถูกต้อง เมื่อคุณเสร็จสิ้นการลงชื่อเข้าใช้หรือการลงทะเบียนใน Logto คุณจะถูกเปลี่ยนเส้นทางกลับไปยังผลิตภัณฑ์โดยไม่มีข้อผิดพลาดใด ๆ
และนี่คือคำแนะนำของเราในการเพิ่มประสิทธิภาพการยืนยันตัวตน OAuth และ OIDC ด้วย Logto หากคุณพบปัญหาใด ๆ ระหว่างการรวม โปรดอย่าลังเลที่จะติดต่อเราทางอีเมลที่ [email protected] หรือ เข้าร่วมเซิร์ฟเวอร์ Discord ของเรา!