Bearer Tokens และ token_type ใน OAuth 2 คืออะไร


140

ฉันกำลังพยายามใช้การไหลของข้อมูลเจ้าของทรัพยากรและรหัสผ่านจากข้อกำหนด OAuth 2 ฉันมีปัญหาในการทำความเข้าใจtoken_typeคุณค่าที่ได้รับการส่งคืนพร้อมคำตอบที่ถูกต้อง ในสเป็คตัวอย่างทั้งหมดแสดง"token_type":"example"แต่บอกว่าควรจะเป็น

ต้องการ token_type ประเภทของโทเค็นที่ออกตามที่อธิบายไว้ใน มาตรา 7.1 ค่าไม่คำนึงถึงขนาดตัวพิมพ์

ใครช่วยอธิบายสิ่งนี้ให้ฉันได้ไหม

คำตอบ:


158

token_typeเป็นพารามิเตอร์ใน Access Token สร้างการเรียกไปยังเซิร์ฟเวอร์การอนุญาตซึ่งแสดงถึงวิธีการที่จะสร้างและนำเสนอ access_token สำหรับการเรียกการเข้าถึงทรัพยากร คุณระบุ token_type ในการเรียกการสร้างโทเค็นการเข้าถึงไปยังเซิร์ฟเวอร์การให้สิทธิ์

หากคุณให้Bearer(ค่าเริ่มต้นในการใช้งานส่วนใหญ่) access_tokenจะมีการสร้างและส่งกลับมาให้คุณ ผู้ถือสามารถเข้าใจได้ง่ายๆว่า "ให้สิทธิ์การเข้าถึงโทเค็นนี้แก่ผู้อื่น" โทเค็นหนึ่งที่ถูกต้องและไม่มีคำถามที่ถาม ในทางกลับกันถ้าคุณเลือกMacและsign_type(ค่าเริ่มต้นhmac-sha-1ในการใช้งานส่วนใหญ่) โทเค็นการเข้าถึงจะถูกสร้างและเก็บเป็นความลับใน Key Manager เป็นแอตทริบิวต์และความลับที่เข้ารหัสถูกส่งกลับเป็นaccess_token

ใช่คุณสามารถใช้การปรับใช้ของคุณเองtoken_typeแต่อาจไม่สมเหตุสมผลนักพัฒนาจะต้องทำตามกระบวนการของคุณแทนที่จะใช้ OAuth แบบมาตรฐาน


28
ฉันค้นหา "ให้สิทธิ์การเข้าถึงโทเค็นนี้" ทำให้เข้าใจได้ง่ายขึ้น มันเทียบเท่ากับการออกเช็ค "ให้เงินแก่ผู้ถือเช็ค"
NVM

@NVM ขอบคุณสำหรับคำแนะนำมันสมเหตุสมผลอย่างแน่นอน ฉันมีการปรับปรุงเหมือนกัน
Abhishek Tyagi

33

ทุกคนสามารถกำหนด "token_type" เป็นส่วนขยาย OAuth 2.0 แต่ปัจจุบันประเภทโทเค็น "ผู้ถือ" เป็นส่วนที่พบได้บ่อยที่สุด

https://tools.ietf.org/html/rfc6750

โดยทั่วไปนั่นคือสิ่งที่ Facebook ใช้ การใช้งานของพวกเขาค่อนข้างล้าหลังจากข้อมูลจำเพาะล่าสุด

หากคุณต้องการความปลอดภัยมากกว่า Facebook (หรือปลอดภัยเท่ากับ OAuth 1.0 ซึ่งมี "ลายเซ็น") คุณสามารถใช้ประเภทโทเค็น "mac"

อย่างไรก็ตามมันจะเป็นเรื่องยากเนื่องจากสเป็ค mac ยังคงเปลี่ยนแปลงอย่างรวดเร็ว

https://tools.ietf.org/html/draft-ietf-oauth-v2-http-mac-05


14

ข้อมูลส่วนหัว Mozilla MDN

โทเค็นผู้ส่งโทเค็น
การรักษาความปลอดภัยพร้อมกับทรัพย์สินที่ฝ่ายใดก็ตามที่ครอบครองโทเค็น ("ผู้ถือ") สามารถใช้โทเค็นในลักษณะใด ๆ ที่บุคคลอื่น ๆ สามารถครอบครองได้ การใช้โทเค็นผู้ถือไม่จำเป็นต้องมีผู้ถือเพื่อพิสูจน์การครอบครองวัสดุสำคัญการเข้ารหัส (การพิสูจน์การครอบครอง)

โทเค็น Bearer หรือโทเค็นรีเฟรชถูกสร้างขึ้นสำหรับคุณโดยเซิร์ฟเวอร์การตรวจสอบความถูกต้อง เมื่อผู้ใช้ตรวจสอบแอปพลิเคชันของคุณ (ไคลเอ็นต์) เซิร์ฟเวอร์การตรวจสอบความถูกต้องจะไปและสร้างสำหรับ Bearer Token (โทเค็นการรีเฟรช) ซึ่งคุณสามารถใช้เพื่อรับโทเค็นการเข้าถึง

โดยปกติแล้ว Bearer Token นั้นเป็นรหัสลับบางอย่างที่สร้างขึ้นโดยเซิร์ฟเวอร์การตรวจสอบความถูกต้องมันไม่ได้ถูกสุ่มสร้างขึ้นตามผู้ใช้ที่ให้คุณเข้าถึงและลูกค้าของแอปพลิเคชันของคุณเข้าถึง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.