ทำความเข้าใจการแลกเปลี่ยนโทเค็นใน OAuth/OIDC
การแลกเปลี่ยนโทเค็นเป็นส่วนขยายของ OAuth ที่ช่วยให้ลูกค้าที่เชื่อถือได้สามารถรับโทเค็นใหม่ได้โดยไม่ต้องมีการโต้ตอบกับผู้ใช้ ซึ่งมีประโยชน์สำหรับการแกล้งตัวเป็นผู้อื่น การทำงานอัตโนมัติ การรวมระหว่างระบบ และการย้ายโทเค็นในหลากหลายสถานการณ์
แนะนำใน RFC 8693 การแลกเปลี่ยนโทเค็นเป็นส่วนขยายของ OAuth ที่อนุญาตให้ลูกค้าที่เชื่อถือได้แลกเปลี่ยนโทเค็นที่มีอยู่เพื่อรับโทเค็นใหม่ที่มีแอตทริบิวต์หรือขอบเขตที่แตกต่างกัน ซึ่งกลไกนี้มีประโยชน์โดยเฉพาะอย่างยิ่งสำหรับบริการ แอปพลิเคชัน หรือผู้ใช้ปลายทางในการรับโทเค็นการเข้าถึง OAuth ปกติผ่านโทเค็นที่ได้รับอนุญาตล่วงหน้า โดยไม่จำเป็นต้องผ่านกระบวนการ OAuth เต็มรูปแบบ
การเปรียบเทียบกับการไหลของรหัสอนุญาต
ก่อนอื่นมาดูที่กระบวนการไหลของรหัสอนุญาตของ OAuth ซึ่งเป็นกระบวนการที่ใช้บ่อยที่สุดในการรับโทเค็นการเข้าถึง
และนี่คือกระบวนการแลกเปลี่ยนโทเค็น:
การเปลี่ยนเส้นทาง
ความแตกต่างหลักคือในกระบวนการไหลของรหัสอนุญาต แอปพลิเคชันลูกค้าจะเปลี่ยนเส้นทางผู้ใช้ไปยังเซิร์ฟเวอร์อนุญาตเพื่อรับโทเค็นการเข้าถึง ในการแลกเปลี่ยนโทเค็น แอปพลิเคชันลูกค้าสามารถแลกเปลี่ยนโทเค็นกับเซิร์ฟเวอร์อนุญาตโดยไม่ต้องมีการเปลี่ยนเส้นทางของผู้ใช้
นั่นเป็นเพราะว่าในกระบวนการไหลของรหัสอนุญาต แอปพลิเคชันลูกค้าไม่ได้ "เชื่อถือได้" และต้องรู้ข้อมูลรับรองของผู้ใช้เพื่อรับโทเค็นการเข้าถึง ในการแลกเปลี่ยนโทเค็น แอปพลิเคชันลูกค้าได้รับการเชื่อถือว่าได้รับโทเค็นจากผู้ใช้แล้ว และเซิร์ฟเวอร์อนุญาตจะตรวจสอบความถูกต้องของโทเค็นและออกโทเค็นใหม่