ใช้ Logto Management API: คำแนะนำทีละขั้นตอน
เรียนรู้วิธีการใช้ Logto Management API สำหรับแอปพลิเคชันของคุณในสถานการณ์ต่างๆ
ในขณะที่ Logto มี Console บนเว็บสำหรับคุณในการจัดการอัตลักษณ์ การใช้ Management API เป็นทางเลือกที่มีพลังเมื่อคุณต้องการจัดการเวิร์กโฟลว์ของคุณโดยอัตโนมัติหรือเข้าถึง Logto ด้วยโปรแกรม คู่มือนี้จะแนะนำคุณผ่านขั้นตอนการใช้ Logto Management API ในสถานการณ์ต่างๆ
ภาพรวม
คุณอาจสังเกตเห็นว่า Logto มีทรัพยากร API ในตัว "Logto Management API" ใน Console ของ Logto ซึ่งจะเป็นบทบาทสำคัญในคู่มือนี้
เมื่อเทียบกับทรัพยากร API อื่น ๆ ปัจจุบัน Logto Management API ไม่อนุญาตให้ผู้ใช้ปลายทางเข้าถึงโดยตรงเพราะออกแบบมาสำหรับการสื่อสารระหว่างเครื่อง ซึ่งมีพลังมากจนสามารถใช้จัดการบัญชีและทรัพยากร Logto ของคุณได้
นี่คือบางสถานการณ์ทั่วไปที่คุณอาจต้องการใช้ Logto Management API:
CI/CD
Service communication
Single page app
Web server ที่แสดงผล HTML
สถาปัตยกรรม
ไม่ว่าจะเป็นสถานการณ์ใด คุณสามารถใช้สองรูปแบบในการเข้าถึง Logto Management API
รูปแบบที่ 1: การเข้าถึงโดยตรง
ในรูปแบบนี้ ลูกค้าหรือบริการของคุณจะเข้าถึง Logto Management API โดยตรง ใน Logto ลูกค้าหรือบริการนี้เรียกว่าแอป "machine-to-machine"
ตัวอย่างการใช้ backend service:
รูปแบบที่ 2: การเข้าถึงทางอ้อม
ในรูปแบบนี้ ลูกค้าหรือบริการของคุณจะเข้าถึง Logto Management API ผ่าน backend service รูปแบบที่ 2 จะเพิ่มแอปอีกหนึ่งตัวเข้ามา แอปใหม่นี้สามารถเป็นเว็บแอป, เนทีฟแอป หรือแอปหน้าเดียวที่เข้าถึง backend service
ตัวอย่างของการใช้แอปหน้าเดียว:
รูปแบบนี้มีประโยชน์เมื่อคุณต้องการมีลอจิกที่กำหนดเองในการควบคุมการเข้าถึง Logto Management API ตัวอย่างเช่น คุณอาจต้องการส่งคืนคำสั่งซื้อทั้งหมดให้ผู้บริโภคและแนบข้อมูลของผู้ขายไปกับแต่ละคำสั่งซื้อ ในกรณีนี้ คุณสามารถใช้แอปหน้าเดียวในการร้องขอ backend service เพื่อรับคำสั่งซื้อ และใน backend service คุณสามารถใช้ Logto Management API เพื่อรับข้อมูลของผู้ขาย
เข้าถึง Logto Management API
สร้างแอป machine-to-machine
ก่อนอื่น คุณต้องสร้างแอป machine-to-machine ใน Logto Console ไปที่แท็บ "แอปพลิเคชัน" และคลิกปุ่ม "สร้างแอปพลิเคชัน" จากนั้นคลิก "เริ่มสร้าง" ในบัตร "Machine-to-machine"
ตั้งค่า machine-to-machine role
เพื่อที่จะเข้าถึง Logto Management API คุณต้องสร้าง machine-to-machine role ที่มีสิทธิ์ที่เหมาะสม ใน Logto Console ไปที่แท็บ "Roles" และคลิกปุ่ม "สร้างบทบาท" คลิก "แสดงตัวเลือกเพิ่มเติม" และเลือก "Machine-to-machine app role" ในส่วน "ประเภทบทบาท"
ตอนนี้คุณสามารถเห็น "Logto Management API" ปรากฏในส่วน "กำหนดสิทธิ์" ติ๊กทรัพยากร API สำหรับสิทธิ์ทั้งหมด และคลิกปุ่ม "สร้างบทบาท"
เมื่อสร้างบทบาทแล้ว คุณสามารถกำหนดให้แอป machine-to-machine ที่คุณสร้างในขั้นตอนก่อนหน้า
รับ access token
คุณสามารถทำตามขั้นตอนใน บทความนี้ เพื่อรับ access token ด้วย client credentials grant สำหรับแอป machine-to-machine ของคุณ ทดสอบ access token โดยการส่งคำขอไปยัง endpoint ใน Logto Management API
ตอนนี้คุณพร้อมสำหรับรูปแบบที่ 1 โปรดทราบว่า access token มีอายุใช้สั้น ดังนั้นคุณอาจต้องการรีเฟรชมันเป็นระยะหากคุณต้องการแคชไว้
เพิ่มอีกชั้น
แม้ว่าการเข้าถึง Logto Management API จะไม่อนุญาตสำหรับผู้ใช้ปลายทาง แต่คุณสามารถเพิ่มอีกชั้นเพื่อนำพลังของ Logto Management API มาช่วยเสริมบริการของคุณ
ตัวอย่างเช่น คุณก ำลังสร้างชุมชนออนไลน์ด้วยแอปหน้าเดียวและบริการ backend คุณอาจต้องการมีคุณสมบัติที่อนุญาตให้ผู้ใช้ที่ลงชื่อเข้าใช้เห็นผู้ใช้สูงสุด 10 คนที่มีผู้ติดตามมากที่สุด จะมีการสร้าง endpoint GET /api/top-users
:
เพื่อให้แน่ใจว่า endpoint เข้าถึงได้เฉพาะผู้ใช้ที่ลงชื่อเข้าใช้เท่านั้น คุณสามารถสร้าง "แอปหน้าเดียว" ใน Logto Console และ บูรณาการ Logto SDK ในแอปนั้น แล้วคุณสามารถใช้ SDK เพื่อรับ access token และส่งคำขอไปที่ endpoint:
ใน backend service คุณสามารถเริ่มต้นดูผู้ใช้สูงสุด 10 คนจากฐานข้อมูล แล้วใช้ Logto Management API เพื่อรับข้อมูลผู้ใช้:
สุดท้าย คุณสามารถส่งคืน response ไปยังแอปหน้าเดียว:
แผนผังลำดับที่สมบูรณ์:
ในกระบวนการนี้ มีการเกี่ยวข้องกับประเภทของ access token สองประเภท: หนึ่งสำหรับบริการ backend เพื่อเข้าถึง Logto Management API และอีกหนึ่งสำหรับแอปหน้าเดียวเพื่อเข้าถึง backend service
access token ก่อนหน้าเป็นสิ่งที่คุณได้จากส่วนก่อนหน้า access token อื่นเป็นสิ่งที่คุณสามารถได้จาก Logto SDK
Access token ของฉันในแอปหน้าเดียวไม่ใช่ JSON Web Token (JWT)
ถ้าคุณไม่ระบุทรัพยากรเมื่อเรียกใช้เมธอด getAccessToken
ใน Logto SDKs access token จะเป็นสายอักขระที่ไม่ชัดเจนซึ่งตั้งใจจะใช้สำหรับ userinfo endpoint ในการรับ JWT:
- กำหนดทรัพยากร API ใน Logto Console เช่น
https://api.example.com
. - เพิ่มทรัพยากร API ไปยังการตั้งค่าของทรัพยากรใน Logto SDK เช่น
resources: ['https://api.example.com']
. - เรียกใช้เมธอด
getAccessToken
พร้อมกับทรัพยากร API เช่นgetAccessToken('https://api.example.com')
.
ในการตรวจสอบ JWT ในบริการ backend ของคุณ โปรดดูที่ Validate the API request's authorization token.
JWT ในแอปหน้าเดียวหมายถึงอะไร?
JWT หมายถึง ข้อมูลที่ผู้ใช้ได้ลงชื่อเข้าใช้และพยายามเข้าถึงทรัพยากร API ไม่ได้หมายถึงว่าผู้ใช้นั้นมีสิทธิ์ในการเข้าถึงทรัพยากร API หรือไม่ ขึ้นอยู่กับว่าคุณจะอนุญาตให้ผู้ใช้เข้าถึงทรัพยากร API หรือไม่
ถ้าคุณต้องการการควบคุมการเข้าถึงที่ละเอียดมากขึ้น คุณสามารถใช้การควบคุมสิทธิ์เข้าถึงแบบ role-based (RBAC) กับผู้ใช้ได้ ดู 🔐 Role-based access control (RBAC) สำหรับรายละเอียด
หมายเหตุปิดท้าย
Logto Management API มีความยืดหยุ่นและพลังสำหรับหลายสถานการณ์ ด้วยโปรโตคอลมาตรฐาน คุณสามารถรวม Logto Management API เข้ากับแอปพลิเคชันของคุณและสร้างระบบที่ปลอดภัยและสามารถขยายได้ หากคุณมีคำถามใดกรุณาติดต่อเรา