ทำไมคุณควรเลิกใช้ประเภทการอนุญาต Resource Owner Password Credentials (ROPC)
ประเภทการอนุญาต Resource Owner Password Credentials (ROPC) เป็นกระบวนการ OAuth 2.0 เก่าที่มีความเสี่ยงด้านความปลอดภัยและควรถูกยกเลิก ในโพสต์นี้เราจะแสดงให้เห็นว่าทำไมคุณควรหลีกเลี่ยงการใช้ ROPC ในแอปพลิเคชันของคุณ
บทนำ
ประเภทการอนุญาต Resource Owner Password Credentials (ROPC) หรือที่เรียกว่า password grant type เป็นกระบวนการ OAuth 2.0 ที่อนุญาตให้แอปพลิเคชันแลกเปลี่ยนชื่อผู้ใช้และรหัสผ่านของผู้ใช้เพื่อให้ได้โทเค็นการเข้าถึง ครั้งแรกที่ถูกแนะนำในข้อกำหนด OAuth 2.0 เพื่อสนับสนุนแอปพลิเคชันเก่าเช่นการตรวจสอบ HTTP พื้นฐานหรือแอปพลิเคชันที่ไม่สามารถใช้กระบวนการที่ปลอดภัยกว่าในรูปแบบโทเค็น OAuth ได้
อย่างไรก็ตาม ประเภทการอนุญาต ROPC มีความเสี่ยงด้านความปลอดภัยหลายประการและได้รับการระบุว่าเป็น ห้ามใช้เด็ดขาด ใน แนวปฏิบัติที่ดีที่สุดด้านความปลอดภัยของ OAuth 2.0
เมื่อเร็ว ๆ นี้เราได้รับคำถามหลายข้อจากลูกค้าของเราที่ขอคำแนะนำหรือการสนับสนุนในการใช้งานประเภทการอนุญาต ROPC ในโพสต์นี้ เราจะอธิบายว่าทำไมคุณควรหลีกเลี่ยงการใช้ประเภทการอนุญาต ROPC โดยเฉพาะสำหรับแอปพลิเคชันใหม่ของคุณ
ประเภทการอนุญาต ROPC กับกระบวนการโค้ดการอนุญาต
การทำงานของประเภทการอนุญาต ROPC
ประเภทการอนุญาต ROPC เป็นกระบวนการง่าย ๆ ที่แลกเปลี่ยนชื่อผู้ใช้และรหัสผ่านของผู้ใช้เพื่อให้ได้โทเค็นการเข้าถึง แอปพลิเคชั นไคลเอนต์รวบรวมข้อมูลประจำตัวของผู้ใช้โดยตรงและส่งตรงไปยังเซิร์ฟเวอร์ผู้อนุญาต เซิร์ฟเวอร์ผู้อนุญาตจะตรวจสอบข้อมูลประจำตัวและออกโทเค็นการเข้าถึงให้กับไคลเอนต์
การทำงานของกระบวนการโค้ดการอนุญาต
ในทางตรงกันข้าม กระบวนการโค้ดการอนุญาตเป็นกระบวนการ OAuth 2.0 ที่แนะนำสำหรับแอปพลิเคชันเว็บ มันประกอบด้วยหลายขั้นตอนและการเปลี่ยนเส้นทางระหว่างแอปพลิเคชันไคลเอนต์ เซิร์ฟเวอร์ผู้อนุญาต และเบราว์เซอร์ของผู้ใช้ กระบวนการโค้ดการอนุญาตมีความปลอดภัยมากกว่าเพราะไม่เปิดเผยข้อมูลประจำตัวของผู้ใช้ต่อแอปพลิเคชันไคลเอนต์
ความแตกต่างหลักระหว่างประเภทการอนุญาต ROPC และกระบวนการโค้ดการอนุญาตคือ ROPC เปิดเผยข้อมูลประจำตัวของผู้ใช้ต่อแอปพลิเคชันไคลเอนต์ ในขณะที่กระบวนการโค้ดการอนุญาตไม่ได้ ข้อมูลประจำตัวของผู้ใช้ควรถูกเก็บรักษาเป็นความลับภายในเซิร์ฟเวอร์ผู้อนุญาต ทุกครั้งที่แอปพลิเคชันไคลเอนต์ร้องขอทรัพยากรในนามของผู้ใช้ มันควรเปลี่ยนเส้นทางผู้ใช้ไปยังเซิร์ฟเวอร์ผู้อนุญาตเพื่อรับรองความถูกต้องและอนุญาตแอปพลิเคชันไคลเอนต์ มันเก็บรักษาข้อมูลการอนุญาตไว้ในแอปพลิเคชันไคลเอนต์ในปริมาณน้อย