ฉันกำลังออกแบบ REST API โดยใช้การอนุญาต / การพิสูจน์ตัวตนผ่านทางคีย์ API
ฉันพยายามคิดออกว่าเป็นที่ที่ดีที่สุดสำหรับสิ่งนั้นและพบว่าหลายคนแนะนำให้ใช้ส่วนหัว HTTP ที่กำหนดเองเช่นProjectName-Api-Key
เช่น:
ProjectName-Api-Key: abcde
แต่ก็เป็นไปได้และถูกต้องตามหลักอุดมการณ์ที่จะใช้Authorization
ส่วนหัวกับชุดรูปแบบที่กำหนดเองเช่น:
Authorization: ApiKey abcde
ในทางกลับกันฉันพบการพิจารณาว่ารูปแบบการให้สิทธิ์ที่กำหนดเองอาจไม่คาดคิดและไม่ได้รับการสนับสนุนจากลูกค้าบางรายและนำไปสู่รหัสที่กำหนดเองอยู่ดีดังนั้นจึงเป็นการดีกว่าที่จะใช้ส่วนหัวที่กำหนดเอง
คุณต้องการส่งคีย์ API ไปทางไหน
Bearer
มีการใช้รูปแบบเฉพาะกับ oAuth2 การนำไปใช้แยกต่างหากจาก oAuth ฟังเป็นการใช้ผิดวัตถุประสงค์ เหตุใดจึงต้องใช้รูปแบบนี้หากไม่มี oAuth อย่างไรก็ตามฉันมีปัญหาในการเลือกประเภทการอนุญาตสำหรับ API ของฉัน API จะพร้อมใช้งานสำหรับบริการที่เชื่อถือได้เพียงหนึ่งเดียวดังนั้นฉันตรวจสอบการไหลของข้อมูลรับรองลูกค้าของ oAuth2 และไม่พบประโยชน์ใด ๆ เมื่อเปรียบเทียบกับ ApiKey ในกรณีของฉัน
ApiKey
มีการเปลี่ยนชื่อและตีความว่าเป็นการAccess Token
ให้สิทธิ์แก่ลูกค้าโดยไม่มีเวลาหมดอายุ นั่นคือแง่มุมทางปรัชญาฉันตัดสินใจที่จะไม่ใช้คำจำกัดความที่ซับซ้อนหากกรณีของฉันสามารถอธิบายได้ในแง่ง่ายและตัดสินใจที่จะเรียกมันว่า "ApiKey" หากโพรโทคอลของคุณใช้รูปแบบของ oAuth ฉันสามารถเห็นด้วยกับการใช้Bearer
งาน แต่ไม่เช่นนั้นฉันเดาว่ารูปแบบนี้ไม่สามารถใช้ได้
Authorization: Bearer <token>
หัวข้อและไม่เคยมีปัญหาเดียวกับที่ โทเค็นคือJWT s