ส่วนหัวการให้สิทธิ์ OAuth 2.0


91

ฉันต้องการพัฒนา SDK ที่ห่อหุ้มฟังก์ชัน OAuth 2.0 ฉันได้ตรวจสอบความแตกต่างระหว่าง OAuth 1.0 และ 2.0 แล้วและฉันมีความสับสนเกี่ยวกับ Authorization Header ( 1.0และ 2.0 ) พารามิเตอร์โปรโตคอล OAuth 1.0 สามารถส่งโดยใช้ส่วนหัว "การอนุญาต" ของ HTTP แต่ฉันไม่พบสิ่งนี้ที่อธิบายไว้ในปัจจุบัน OAuth 2.0 แบบร่าง

OAuth 2.0 รองรับส่วนหัวการให้สิทธิ์หรือไม่

ใน OAuth 1.0 ส่วนหัวของคุณจะมีลักษณะดังนี้:

Authorization: OAuth realm="Example",
    oauth_consumer_key="0685bd9184jfhq22",
    oauth_token="ad180jjd733klru7",
    oauth_signature_method="HMAC-SHA1",
    oauth_signature="wOJIO9A2W5mFwDgiDvZbTSMK%2FPY%3D",
    oauth_timestamp="137131200",
    oauth_nonce="4572616e48616d6d65724c61686176",
    oauth_version="1.0"

ไม่ได้ตอบคำถามของคุณ แต่มีไลบรารี OpenId และ OAuth จำนวนหนึ่งอยู่แล้วคุณแน่ใจหรือไม่ว่าต้องการประดิษฐ์วงล้อขึ้นมาใหม่
Kane

สวัสดี Kane ฉันไม่ได้พัฒนา SDK สำหรับ OAuth ฉันแค่ต้องการฟังก์ชัน OAuth บางอย่างใน SDK ของฉันดังนั้นฉันจึงไม่ต้องการแนะนำไลบรารีส่วนที่สาม
JKhuang

คำตอบ:


205

สำหรับผู้ที่มองหาตัวอย่างวิธีการส่งผ่านการให้สิทธิ์ OAuth2 (โทเค็นการเข้าถึง) ในส่วนหัว (ซึ่งต่างจากการใช้คำขอหรือพารามิเตอร์เนื้อหา) นี่คือวิธีการ:

Authorization: Bearer 0b79bab50daca910b000d4f1a2b675d604257e42

32
สำหรับใครที่มาเจอกระทู้นี้พยายามใช้ Authorization Header กับ cURL นี่คือคำสั่ง: curl -H "Authorization: Bearer $ACCESS_TOKEN" URI
Blake G

5
คำถามสั้น ๆ เนื่องจากฉันเห็นคำตอบเช่นนี้อยู่เรื่อย ๆ แต่ไม่มีคำชี้แจง: ถ้าฉันทำสิ่งนี้ในโค้ด (ผ่าน HTTPRequest API) ฉันจะเพิ่มส่วนหัวในคำขอของฉันด้วยชื่อส่วนหัวและฟิลด์ข้อมูลที่เกี่ยวข้อง ในคำตอบนี้ชื่อของส่วนหัวส่วนใดและข้อมูลใด นั่นคือเป็นส่วนหัวAuthorization: Bearerที่มี0b...42ข้อมูลหรือมีส่วนหัวAuthorization:ที่มีBearer 0b...42เป็นข้อมูลหรืออะไร? ขอบคุณ! (Btw ฉัน Oauth2 ถ้ามันสำคัญ)
Olie

9
Authorizationเป็นชื่อส่วนหัวลำไส้ใหญ่แยกชื่อจากค่าในส่วนหัวทั้งหมดตามมาตรา 4.2 ของ RFC2616
Rick Mac Gillis

35

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

มีบันทึกไว้ในข้อมูลจำเพาะนี้: https://tools.ietf.org/html/rfc6750#section-2.1

เช่น:

   GET /resource HTTP/1.1
   Host: server.example.com
   Authorization: Bearer mF_9.B5f-4.1JqM

โดยที่mF_9.B5f-4.1JqMคือโทเค็นการเข้าถึง OAuth ของคุณ


OAuth 2.0 จัดทำเอกสารโทเค็นการเข้าถึงสองประเภทเป็นตัวอย่าง: Bearer และ MAC ( tools.ietf.org/html/rfc6749#section-7.1 )
Clauds

1
น่าเสียดายที่ MAC ไม่เคยได้มาตรฐานอย่างสมบูรณ์ (ดูข้อมูลจำเพาะของร่างที่หมดอายุ: tools.ietf.org/html/draft-ietf-oauth-v2-http-mac-05 ) และไม่ได้ใช้ในทางปฏิบัติ
Scott T.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.