เปิดใช้งานการเข้าถึงแอปของคุณโดย AI agent บุคคลที่สาม
สำรวจ โซลูชัน AI ของ Logto: การยืนยันตัวตน (Authentication) และการอนุญาต (Authorization) สำหรับเซิร์ฟเวอร์ MCP, เอเจนต์ AI และแอป
คู่มือนี้จะแนะนำวิธีผสาน Logto เข้ากับบริการของคุณและเปิดให้ AI agent เข้าถึงบริการนั้น
คุณจะได้เรียนรู้วิธี:
- กำหนดค่า Logto เป็นเซิร์ฟเวอร์การอนุญาต (authorization server) สำหรับบริการของคุณ
- ขอรับโทเค็นการเข้าถึง (Access token) สำหรับ AI agent เพื่อเข้าถึงบริการของคุณ
- ทดสอบขั้นตอนการทำงานกับ AI agent
ความแตกต่างระหว่าง AI agent บุคคลที่สามกับ AI agent (หรือแอป) ของคุณเอง
ลองดูตัวอย่าง สมมติว่าคุณเป็นนักพัฒนาที่ให้บริการข้อมูลสภาพอากาศ
แอปสภาพอากาศอย่างเป็นทางการ (AI agent / แอปของคุณเอง)
- คุณให้บริการแอปสภาพอากาศอย่างเป็นทางการสำหรับผู้ใช้เพื่อตรวจสอบสภาพอากาศ
- วิธีการทำงาน: แอปสภาพอากาศอย่างเป็นทางการเชื่อมต่อกับบริการของคุณโดยใช้ Logto เพื่อยืนยันตัวตนผู้ใช้ เมื่อ Alice ลงชื่อเข้าใช้ เธอจะเข้าถึงข้อมูลสภาพอากาศได้ทันทีโดยไม่ต้องมีหน้าขอความยินยอมเพิ่มเติม เพราะเป็นแอปที่คุณไว้วางใจ
AI agent บุคคลที่สาม
- คุณกำลังสร้าง ecosystem รอบบริการของคุณ นักพัฒนาคนอื่นจึงสร้าง "WeatherBot" (AI assistant ที่ให้ข้อมูลและพยากรณ์อากาศ) โดยผสานเป็น AI agent บุคคลที่สาม
- วิธีการทำงาน: WeatherBot (AI agent บุคคลที่สาม) ต้องการเข้าถึงข้อมูลสภาพอากาศของผู้ใช้ผ่านบริการของคุณ เมื่อ Alice ลงชื่อเข้าใช้ WeatherBot ด้วยบัญชีของเธอ:
- เธอจะเห็นหน้าขอความยินยอม (Consent screen) ขออนุญาตให้ WeatherBot เข้าถึงข้อมูลสภาพอากาศของเธอ
- Alice สามารถอนุญาตหรือปฏิเสธการเข้าถึงนี้ได้
- เฉพาะข้อมูลที่ Alice ยินยอมเท่านั้นที่จะถูกแชร์กับ WeatherBot และ WeatherBot จะไม่สามารถเข้าถึงข้อมูลเพิ่มเติมใด ๆ ได้หากไม่มีการยินยอมใหม่อย่างชัดเจน
การควบคุมการเข้าถึง (permission) นี้ช่วยให้ข้อมูลผู้ใช้ปลอดภัย แม้ว่าบริการของคุณจะจัดการข้อมูลทั้งหมด แต่ AI agent บุคคลที่สามอย่าง WeatherBot จะเข้าถึงได้เฉพาะสิ่งที่ผู้ใช้อนุญาตอย่างชัดเจนเท่านั้น ไม่สามารถข้ามขั้นตอนนี้ได้ เพราะถูกบังคับใช้โดยการควบคุมการเข้าถึงของคุณในบริการ
สรุป
| ประเภทไคลเอนต์ | ตัวอย่าง | ต้องขอความยินยอม? | ใครควบคุม? |
|---|---|---|---|
| แอปสภาพอากาศอย่างเป็นทางการ | แอปสภาพอากาศของคุณเอง | ไม่ | คุณ (นักพัฒนา) |
| AI agent บุคคลที่สาม | WeatherBot assistant | ใช่ | นักพัฒนาคนอื่น |
หากคุณต้องการผสานบริการของคุณกับ AI agent หรือแอปของคุณเอง โปรดดู คู่มือเริ่มต้นอย่างรวดเร็ว ของเรา
ข้อกำหนดเบื้องต้น
- Logto Cloud (หรือแบบ self-hosted) tenant
- บริการที่เปิด API endpoint ให้ AI agent เข้าถึง
ทำความเข้าใจขั้นตอนการทำงาน
- Service: บริการที่คุณต้องการเปิดให้ AI agent เข้าถึง
- AI agent: AI agent ที่จะเข้าถึงบริการของคุณ
- Logto: ทำหน้าที่เป็น OpenID Connect provider (authorization server) และจัดการข้อมูลระบุตัวตนผู้ใช้
แผนภาพลำดับ (sequence diagram) ด้านล่างแสดงภาพรวมของขั้นตอนการทำงาน:
ตั้งค่า AI agent บุคคลที่สาม
ในการตั้งค่า AI agent บุคคลที่สามเพื่อเข้าถึงบริการของคุณ ให้ดำเนินการตามขั้นตอนเหล่านี้:
- ลงทะเบียน AI agent ใน Logto: สร้างแอปพลิเคชันใน Logto เพื่อแทน AI agent
- กำหนดค่า AI agent: ให้แน่ใจว่า AI agent สามารถส่งคำขอไปยังบริการของคุณและจัดการกับการตอบกลับ 401 Unauthorized ได้
- ติดตั้งขั้นตอนการอนุญาต (authorization flow): AI agent ควรสามารถจัดการ OAuth 2.0 authorization flow เพื่อขอรับ access token จาก Logto
- ทดสอบการผสาน: ใช้ AI agent เพื่อเข้าถึงบริการของคุณและตรวจสอบว่าสามารถยืนยันตัวตนและอนุญาตคำขอได้สำเร็จ
ตั้งค่าตัวแทน AI ของบุคคลที่สามใน Logto
เพื่อให้ตัวแทน AI ของบุคคลที่สามสามารถเข้าถึง บริการของคุณ ได้ คุณต้องตั้งค่า แอปของบุคคลที่สาม ใน Logto แอปนี้จะใช้แทนตัวแทน AI และรับข้อมูลประจำตัวที่จำเป็นสำหรับการยืนยันตัวตน (การยืนยันตัวตน (Authentication)) และการอนุญาต (การอนุญาต (Authorization))
แอปของบุคคลที่สาม คือแอปพลิเคชันที่สร้างโดยนักพัฒนาภายนอก (ไม่ใช่เจ้าของทรัพยากร) ซึ่งต้องได้รับความยินยอมจากผู้ใช้เพื่อเข้าถึงทรัพยากรที่ได้รับการปกป้อง แตกต่างจากแอปของบุคคลแรก (แอปของคุณเอง) แอปของบุคคลที่สามจะแสดงหน้าขอความยินยอม (consent screen) เพื่อขออนุมัติสิทธิ์เฉพาะก่อนเข้าถึงข้อมูลของผู้ใช้ เพื่อให้แน่ใจว่าผู้ใช้สามารถควบคุมข้อมูลที่จะแชร์กับบริการภายนอกได้
ดูเพิ่มเติมที่ แอปพลิเคชันของบุคคลที่สาม
มี 3 วิธีในการเชื่อมต่อ AI agent:
- สร้างแอปใน Console ด้วยตนเอง เหมาะสำหรับการทดสอบหรือกรณีที่มี agent ไม่กี่ตัวที่รู้จักล่วงหน้า
- สร้างบริการลงทะเบียนผ่าน Management API หากคุณต้องการควบคุมว่าใครจะได้รับข้อมูลประจำตัว
- เปิดใช้งาน dynamic app หากต้องการให้ agent ใด ๆ เชื่อมต่อได้โดยไม่ต้องลงทะเบียนล่วงหน้า
อนุญาตให้นักพัฒนาสร้างแอปของบุคคลที่สามใน Logto
หากคุณกำลังสร้าง marketplace หรืออยากให้นักพัฒนาสามารถสร้างแอปของบุคคลที่สามใน Logto ได้ คุณสามารถใช้ Logto Management API เพื่อสร้างแอปของบุคคลที่สามแบบโปรแกรมมิ่ง วิธีนี้จะช่วยให้นักพัฒนาสามารถลงทะเบียนแอปพลิเคชันของตนเองและรับข้อมูลประจำตัวที่จำเป็นสำหรับการยืนยันตัวตน (การยืนยันตัวตน (Authentication))
คุณจะต้องโฮสต์บริการของคุณเองเพื่อจัดการกระบวนการลงทะเบียน client โดยบริการนี้จะติดต่อกับ Logto Management API เพื่อสร้างแอปของบุคคลที่สามแทนนักพัฒนา
หรือ คุณสามารถสร้างแอปของบุคคลที่สามใน Logto Console ด้วยตนเองเพื่อทำความคุ้นเคยกับกระบวนการนี้
อนุญาตให้ AI agent ใด ๆ เชื่อมต่อได้โดยไม่ต้องลงทะเบียนล่วงหน้า
ในระบบนิเวศ MCP แบบเปิด คุณมักจะไม่รู้จัก agent ล่วงหน้า Dynamic app จะตัดขั้นตอนการลงทะเบียนออก: agent จะใช้ URL HTTPS สาธารณะซึ่งให้บริการ client metadata document ของตนเองเป็น client_id และ Logto จะ resolve เมื่อมี authorization request เข้ามา
คุณยังคงควบคุมได้ว่า agent ใดสามารถขอสิทธิ์อะไรผ่านสิทธิ์ที่กำหนดให้ dynamic app และทุกการอนุญาตจะต้องผ่านหน้าขอความยินยอมของผู้ใช้เสมอ
สร้างแอปของบุคคลที่สามใน Logto ด้วยตนเอง
คุณสามารถสร้างแอปของบุคคลที่สามใน Logto Console ด้วยตนเองเพื่อทดสอบหรือเชื่อมต่อแบบ ad-hoc วิธีนี้เหมาะสำหรับการทดสอบการเชื่อมต่ออย่างรวดเร็วโดยไม่ต้องพัฒนากระบวนการลงทะเบียน client แบบเต็มรูปแบบ
-
ลงชื่อเข้าใช้ Logto Console ของคุณ
-
ไปที่ Applications → Create application → Third-party app -> OIDC
-
กรอกชื่อแอปและข้อมูลที่จำเป็นอื่น ๆ จากนั้นคลิก Create application
-
คลิกแท็บ Permissions เพื่อกำหนด สิทธิ์ (permissions) ให้กับแอป:
- ส่วน User: สิทธิ์ข้อมูลผู้ใช้ เช่น
profileและemailสำหรับการอ้างสิทธิ์ (claims) ข้อมูลตัวตนพื้นฐาน - ส่วน API resource: สิทธิ์ (ขอบเขต; scopes) ของ ทรัพยากร API (API resources) ที่คุณกำหนดใน Logto เช่น ทรัพยากร API ที่แทน บริการของคุณ
- ส่วน Organization: สิทธิ์ขององค์กร หากคุณใช้ฟีเจอร์องค์กรของ Logto
- ส่วน User: สิทธิ์ข้อมูลผู้ใช้ เช่น
-
ในแอปของบุคคลที่สาม ให้กำหนด scopes เพื่อขอสิทธิ์ที่คุณอนุญาตไว้ เช่น
openid profile emailพร้อมกับ scopes ของ API resourceหมายเหตุ:
openidจำเป็นสำหรับ OIDC หากต้องการรับโทเค็นการเข้าถึง (access token) ที่ผูกกับ API resource แอปต้องใส่พารามิเตอร์resourceใน authorization request ด้วย MCP client ที่ปฏิบัติตามสเปค MCP ล่าสุดจะทำสิ่งนี้โดยอัตโนมัติตาม metadata ของทรัพยากรที่ได้รับการปกป้อง -
กำหนด redirect URI ของแอปของบุคคลที่สามให้ถูกต้อง และอย่าลืมอัปเดต redirect URI ใน Logto ด้วย
เบื้องหลังแล้ว แอปของบุคคลที่สามคือไคลเอนต์มาตรฐานของ OAuth 2.0 / OIDC ซึ่งหมายความว่าคุณ (หรือผู้พัฒนาแอปบุคคลที่สาม) สามารถใช้ไลบรารีหรือเฟรมเวิร์ก OAuth 2.0 / OIDC ใดก็ได้ในการเชื่อมต่อกับ Logto
ข้อควรคำนึงถึง:
- เมื่อสร้างแอปบุคคลที่สาม ให้เลือกประเภทแอปพลิเคชันที่เหมาะสมตามสถาปัตยกรรมของแอป:
- เว็บแบบดั้งเดิม: ใช้ client secret สำหรับการยืนยันตัวตน
- Single page app / Native: ใช้ PKCE เพื่อความปลอดภัยในการอนุญาตโดยไม่ต้องใช้ client secret
- คู่มือเริ่มต้นอย่างรวดเร็วส่วนใหญ่ของเราเขียนสำหรับแอป first-party แต่คุณยังสามารถใช้เป็นข้อมูลอ้างอิงสำหรับการเชื่อมต่อแอปบุคคลที่สามได้
- ความแตกต่างหลักคือแอปบุคคลที่สามจะแสดงหน้าขอความยินยอม (consent screen) เพื่อขออนุญาตจากผู้ใช้ในการเข้าถึงข้อมูลของพวกเขาโดยชัดแจ้ง
ดู แอปพลิเคชันบุคคลที่สาม สำหรับคู่มือการเชื่อมต่อฉบับสมบูรณ์
ตั้งค่าการอนุญาตในบริการของคุณ
เพื่อเปิดใช้งานการควบคุมการเข้าถึงในบริการของคุณ คุณต้องดำเนินการดังนี้:
- กำหนด API resources ใน Logto: สร้าง API resources ใน Logto เพื่อแทน endpoint ที่ AI agent ของคุณจะเข้าถึง
- ติดตั้งตรรกะควบคุมการเข้าถึง: ในบริการของคุณ ให้ติดตั้งตรรกะเพื่อตรวจสอบ access token ที่ได้รับจาก AI agent และตรวจสอบว่าผู้ใช้มีสิทธิ์เข้าถึง resource ที่ร้องขอหรือไม่
- ตอบกลับ AI agent: หาก access token ถูกต้องและผู้ใช้มีสิทธิ์ ให้ส่ง resource ที่ร้องขอกลับไป หากไม่ ให้ส่ง 401 Unauthorized กลับ
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการติดตั้งการควบคุมการเข้าถึงในบริการของคุณ โปรดดู คู่มือการอนุญาต ของเรา
ทดสอบการผสาน
- เริ่มบริการของคุณ
- เริ่ม AI agent
- ใน AI agent ให้เรียก API endpoint เพื่อเข้าถึงบริการของคุณ
- AI agent ควรจัดการกับการตอบกลับ 401 Unauthorized และเปลี่ยนเส้นทางผู้ใช้ไปยัง Logto เพื่อยืนยันตัวตน
- หลังจากยืนยันตัวตนสำเร็จ AI agent ควรได้รับ access token และใช้มันในการส่งคำขอไปยังบริการของคุณ
- AI agent ควรสามารถดึง resource จากบริการของคุณโดยใช้ access token ได้