ข้ามไปยังเนื้อหาหลัก

เปิดใช้งานการเข้าถึงแอปของคุณโดย 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 บุคคลที่สามเพื่อเข้าถึงบริการของคุณ ให้ดำเนินการตามขั้นตอนเหล่านี้:

  1. ลงทะเบียน AI agent ใน Logto: สร้างแอปพลิเคชันใน Logto เพื่อแทน AI agent
  2. กำหนดค่า AI agent: ให้แน่ใจว่า AI agent สามารถส่งคำขอไปยังบริการของคุณและจัดการกับการตอบกลับ 401 Unauthorized ได้
  3. ติดตั้งขั้นตอนการอนุญาต (authorization flow): AI agent ควรสามารถจัดการ OAuth 2.0 authorization flow เพื่อขอรับ access token จาก Logto
  4. ทดสอบการผสาน: ใช้ AI agent เพื่อเข้าถึงบริการของคุณและตรวจสอบว่าสามารถยืนยันตัวตนและอนุญาตคำขอได้สำเร็จ

ตั้งค่าตัวแทน AI ของบุคคลที่สามใน Logto

เพื่อให้ตัวแทน AI ของบุคคลที่สามสามารถเข้าถึง บริการของคุณ ได้ คุณต้องตั้งค่า แอปของบุคคลที่สาม ใน Logto แอปนี้จะใช้แทนตัวแทน AI และรับข้อมูลประจำตัวที่จำเป็นสำหรับการยืนยันตัวตน (การยืนยันตัวตน (Authentication)) และการอนุญาต (การอนุญาต (Authorization))

แอปของบุคคลที่สามคืออะไร?:

แอปของบุคคลที่สาม คือแอปพลิเคชันที่สร้างโดยนักพัฒนาภายนอก (ไม่ใช่เจ้าของทรัพยากร) ซึ่งต้องได้รับความยินยอมจากผู้ใช้เพื่อเข้าถึงทรัพยากรที่ได้รับการปกป้อง แตกต่างจากแอปของบุคคลแรก (แอปของคุณเอง) แอปของบุคคลที่สามจะแสดงหน้าขอความยินยอม (consent screen) เพื่อขออนุมัติสิทธิ์เฉพาะก่อนเข้าถึงข้อมูลของผู้ใช้ เพื่อให้แน่ใจว่าผู้ใช้สามารถควบคุมข้อมูลที่จะแชร์กับบริการภายนอกได้

ดูเพิ่มเติมที่ แอปพลิเคชันของบุคคลที่สาม

มี 3 วิธีในการเชื่อมต่อ AI 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 แบบเต็มรูปแบบ

  1. ลงชื่อเข้าใช้ Logto Console ของคุณ

  2. ไปที่ ApplicationsCreate applicationThird-party app -> OIDC

  3. กรอกชื่อแอปและข้อมูลที่จำเป็นอื่น ๆ จากนั้นคลิก Create application

  4. คลิกแท็บ Permissions เพื่อกำหนด สิทธิ์ (permissions) ให้กับแอป:

    • ส่วน User: สิทธิ์ข้อมูลผู้ใช้ เช่น profile และ email สำหรับการอ้างสิทธิ์ (claims) ข้อมูลตัวตนพื้นฐาน
    • ส่วน API resource: สิทธิ์ (ขอบเขต; scopes) ของ ทรัพยากร API (API resources) ที่คุณกำหนดใน Logto เช่น ทรัพยากร API ที่แทน บริการของคุณ
    • ส่วน Organization: สิทธิ์ขององค์กร หากคุณใช้ฟีเจอร์องค์กรของ Logto
  5. ในแอปของบุคคลที่สาม ให้กำหนด scopes เพื่อขอสิทธิ์ที่คุณอนุญาตไว้ เช่น openid profile email พร้อมกับ scopes ของ API resource

    หมายเหตุ: openid จำเป็นสำหรับ OIDC หากต้องการรับโทเค็นการเข้าถึง (access token) ที่ผูกกับ API resource แอปต้องใส่พารามิเตอร์ resource ใน authorization request ด้วย MCP client ที่ปฏิบัติตามสเปค MCP ล่าสุดจะทำสิ่งนี้โดยอัตโนมัติตาม metadata ของทรัพยากรที่ได้รับการปกป้อง

  6. กำหนด redirect URI ของแอปของบุคคลที่สามให้ถูกต้อง และอย่าลืมอัปเดต redirect URI ใน Logto ด้วย

Third-party app permissions

เบื้องหลังแล้ว แอปของบุคคลที่สามคือไคลเอนต์มาตรฐานของ OAuth 2.0 / OIDC ซึ่งหมายความว่าคุณ (หรือผู้พัฒนาแอปบุคคลที่สาม) สามารถใช้ไลบรารีหรือเฟรมเวิร์ก OAuth 2.0 / OIDC ใดก็ได้ในการเชื่อมต่อกับ Logto

ข้อควรคำนึงถึง:

  1. เมื่อสร้างแอปบุคคลที่สาม ให้เลือกประเภทแอปพลิเคชันที่เหมาะสมตามสถาปัตยกรรมของแอป:
    • เว็บแบบดั้งเดิม: ใช้ client secret สำหรับการยืนยันตัวตน
    • Single page app / Native: ใช้ PKCE เพื่อความปลอดภัยในการอนุญาตโดยไม่ต้องใช้ client secret
  2. คู่มือเริ่มต้นอย่างรวดเร็วส่วนใหญ่ของเราเขียนสำหรับแอป first-party แต่คุณยังสามารถใช้เป็นข้อมูลอ้างอิงสำหรับการเชื่อมต่อแอปบุคคลที่สามได้
  3. ความแตกต่างหลักคือแอปบุคคลที่สามจะแสดงหน้าขอความยินยอม (consent screen) เพื่อขออนุญาตจากผู้ใช้ในการเข้าถึงข้อมูลของพวกเขาโดยชัดแจ้ง

ดู แอปพลิเคชันบุคคลที่สาม สำหรับคู่มือการเชื่อมต่อฉบับสมบูรณ์

ตั้งค่าการอนุญาตในบริการของคุณ

เพื่อเปิดใช้งานการควบคุมการเข้าถึงในบริการของคุณ คุณต้องดำเนินการดังนี้:

  1. กำหนด API resources ใน Logto: สร้าง API resources ใน Logto เพื่อแทน endpoint ที่ AI agent ของคุณจะเข้าถึง
  2. ติดตั้งตรรกะควบคุมการเข้าถึง: ในบริการของคุณ ให้ติดตั้งตรรกะเพื่อตรวจสอบ access token ที่ได้รับจาก AI agent และตรวจสอบว่าผู้ใช้มีสิทธิ์เข้าถึง resource ที่ร้องขอหรือไม่
  3. ตอบกลับ AI agent: หาก access token ถูกต้องและผู้ใช้มีสิทธิ์ ให้ส่ง resource ที่ร้องขอกลับไป หากไม่ ให้ส่ง 401 Unauthorized กลับ

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการติดตั้งการควบคุมการเข้าถึงในบริการของคุณ โปรดดู คู่มือการอนุญาต ของเรา

ทดสอบการผสาน

  1. เริ่มบริการของคุณ
  2. เริ่ม AI agent
  3. ใน AI agent ให้เรียก API endpoint เพื่อเข้าถึงบริการของคุณ
  4. AI agent ควรจัดการกับการตอบกลับ 401 Unauthorized และเปลี่ยนเส้นทางผู้ใช้ไปยัง Logto เพื่อยืนยันตัวตน
  5. หลังจากยืนยันตัวตนสำเร็จ AI agent ควรได้รับ access token และใช้มันในการส่งคำขอไปยังบริการของคุณ
  6. AI agent ควรสามารถดึง resource จากบริการของคุณโดยใช้ access token ได้