3
การรักษาความปลอดภัย REST API โทเค็นที่เก็บไว้กับ JWT vs OAuth
ฉันยังคงพยายามค้นหาโซลูชันความปลอดภัยที่ดีที่สุดสำหรับปกป้อง REST API เนื่องจากจำนวนแอปพลิเคชันมือถือและ API เพิ่มขึ้นทุกวัน ฉันลองใช้วิธีการพิสูจน์ตัวตนแบบต่างๆ แต่ยังมีความเข้าใจผิดอยู่บ้างดังนั้นฉันต้องการคำแนะนำจากคนที่มีประสบการณ์มากกว่า ให้ฉันบอกว่าฉันเข้าใจทุกสิ่งนี้ได้อย่างไร หากฉันเข้าใจบางสิ่งผิดพลาดโปรดแจ้งให้เราทราบ เท่าที่ REST API นั้นไร้สัญชาติเช่นเดียวกับเว็บโดยทั่วไปเราจำเป็นต้องส่งข้อมูลรับรองความถูกต้องในแต่ละคำขอ (คุกกี้โทเค็น .... ) ฉันรู้สามกลไกที่ใช้กันอย่างแพร่หลายในการตรวจสอบผู้ใช้ โทเค็นด้วย HTTPS ฉันใช้วิธีนี้หลายครั้งดีพอกับ HTTPS หากผู้ใช้ระบุรหัสผ่านที่ถูกต้องและเข้าสู่ระบบเขาจะได้รับโทเค็นตอบสนองและจะใช้สำหรับการร้องขอเพิ่มเติม โทเค็นถูกสร้างขึ้นโดยเซิร์ฟเวอร์และเก็บไว้เช่นในตารางแยกกันหรือที่เก็บข้อมูลผู้ใช้ ดังนั้นสำหรับแต่ละเซิร์ฟเวอร์คำขอจะตรวจสอบว่าผู้ใช้มีโทเค็นหรือไม่และเหมือนกับในฐานข้อมูล ทุกอย่างตรงไปตรงมาสวย โทเค็น JWT โทเค็นนี้เป็นการอธิบายตนเองประกอบด้วยข้อมูลที่จำเป็นทั้งหมดเกี่ยวกับโทเค็นผู้ใช้ไม่สามารถเปลี่ยนแปลงได้เช่นวันหมดอายุหรือการอ้างสิทธิ์อื่น ๆ เนื่องจากโทเค็นนี้สร้างขึ้น (ลงชื่อ) โดยเซิร์ฟเวอร์ที่มีคีย์เวิร์ดลับ นี่ก็ชัดเจน แต่ปัญหาใหญ่อย่างหนึ่งส่วนตัวสำหรับฉันวิธีทำให้โทเค็นเป็นโมฆะ OAuth 2. ฉันไม่เข้าใจว่าทำไมควรใช้วิธีการนี้เมื่อมีการสื่อสารโดยตรงระหว่างเซิร์ฟเวอร์กับลูกค้า เท่าที่ฉันเข้าใจเซิร์ฟเวอร์ OAuth ใช้ในการออกโทเค็นที่มีขอบเขต จำกัด เพื่ออนุญาตให้แอปพลิเคชันอื่นเข้าถึงข้อมูลผู้ใช้โดยไม่ต้องเก็บรหัสผ่านและการเข้าสู่ระบบ นี่เป็นโซลูชันที่ยอดเยี่ยมสำหรับเครือข่ายสังคมเมื่อผู้ใช้ต้องการลงทะเบียนในบางหน้าเซิร์ฟเวอร์สามารถขอสิทธิ์ในการรับข้อมูลผู้ใช้เช่นจาก twitter หรือ facebook และกรอกข้อมูลลงทะเบียนด้วยข้อมูลผู้ใช้และอื่น ๆ พิจารณาลูกค้ามือถือสำหรับร้านค้าออนไลน์ …