การaud
อ้างสิทธิ์JWT (ผู้ชม)
ตามRFC 7519 :
การอ้างสิทธิ์ "aud" (ผู้ชม) ระบุผู้รับที่ JWT มีไว้สำหรับ หลักแต่ละคนมีวัตถุประสงค์เพื่อประมวลผล JWT ต้องระบุตัวเองด้วยคุณค่าในการอ้างสิทธิ์ของผู้ชม หากการประมวลผลหลักของการอ้างสิทธิ์ไม่ได้ระบุตัวตนด้วยค่าในการอ้างสิทธิ์ "aud" เมื่อมีการอ้างสิทธิ์นี้ JWT จะต้องถูกปฏิเสธ ในกรณีทั่วไปค่า "aud" คืออาร์เรย์ของสตริงที่คำนึงถึงขนาดตัวพิมพ์แต่ละตัวมีค่า StringOrURI ในกรณีพิเศษเมื่อ JWT มีหนึ่งผู้ชมค่า "aud" อาจเป็นสตริงที่คำนึงถึงตัวพิมพ์เล็กและใหญ่ที่มีค่า StringOrURI โดยทั่วไปแล้วการตีความค่าของผู้ชมจะเป็นไปตามความเฉพาะเจาะจง
การใช้การอ้างสิทธิ์นี้เป็นทางเลือก
การaud
อ้างสิทธิ์Audience ( ) ตามที่กำหนดโดยข้อมูลจำเพาะเป็นแบบทั่วไปและเป็นแอปพลิเคชันเฉพาะ วัตถุประสงค์การใช้งานคือการระบุผู้รับที่ต้องการของโทเค็น ความหมายของผู้รับหมายถึงแอปพลิเคชันเฉพาะ ค่าผู้ชมอาจเป็นรายการสตริงหรืออาจเป็นสตริงเดียวก็ได้หากมีการaud
อ้างสิทธิ์เพียงรายการเดียว ผู้สร้างโทเค็นไม่บังคับให้aud
มีการตรวจสอบความถูกต้องอย่างถูกต้องความรับผิดชอบคือผู้รับในการพิจารณาว่าควรใช้โทเค็นหรือไม่
ไม่ว่าค่าจะเป็นเท่าใดเมื่อผู้รับตรวจสอบความถูกต้องของ JWT และต้องการตรวจสอบความถูกต้องว่าโทเค็นถูกนำไปใช้เพื่อวัตถุประสงค์ของมันต้องกำหนดว่าค่าใดในการaud
ระบุตัวเองและโทเค็นควรตรวจสอบความถูกต้องก็ต่อเมื่อ ID ที่ประกาศของผู้รับคือ มีอยู่ในaud
ข้อเรียกร้อง ไม่สำคัญว่านี่คือ URL หรือสตริงเฉพาะแอปพลิเคชันอื่น ๆ ตัวอย่างเช่นหากระบบของฉันตัดสินใจระบุตัวเองaud
ด้วยสตริงapi3.app.com
ควรยอมรับ JWT ก็ต่อเมื่อการaud
อ้างสิทธิ์มีapi3.app.com
อยู่ในรายการค่าผู้ชมเท่านั้น
แน่นอนว่าผู้รับอาจเลือกที่จะไม่สนใจaud
ดังนั้นสิ่งนี้จะมีประโยชน์ก็ต่อเมื่อผู้รับต้องการการตรวจสอบเชิงบวกว่าโทเค็นถูกสร้างขึ้นโดยเฉพาะ
การตีความของฉันตามข้อกำหนดคือการaud
อ้างสิทธิ์มีประโยชน์ในการสร้าง JWT ที่สร้างขึ้นตามวัตถุประสงค์ซึ่งใช้ได้เฉพาะกับวัตถุประสงค์บางประการเท่านั้น สำหรับระบบหนึ่งอาจหมายความว่าคุณต้องการให้โทเค็นใช้ได้กับคุณสมบัติบางอย่าง แต่ใช้ไม่ได้กับระบบอื่น คุณสามารถออกโทเค็นที่ จำกัด เฉพาะ "ผู้ชม" บางกลุ่มในขณะที่ยังคงใช้คีย์และอัลกอริทึมการตรวจสอบความถูกต้องเดียวกัน
เนื่องจากในกรณีทั่วไป JWT ถูกสร้างขึ้นโดยบริการที่เชื่อถือได้และถูกใช้โดยระบบอื่น ๆ ที่เชื่อถือได้ (ระบบที่ไม่ต้องการใช้โทเค็นที่ไม่ถูกต้อง) ระบบเหล่านี้จำเป็นต้องประสานค่าที่จะใช้
แน่นอน, aud
เป็นทางเลือกที่สมบูรณ์และสามารถละเว้นได้หากกรณีการใช้งานของคุณไม่รับประกัน หากคุณไม่ต้องการ จำกัด โทเค็นให้ใช้กับผู้ชมบางกลุ่มหรือไม่มีระบบของคุณที่จะตรวจสอบaud
โทเค็นจริงก็ไม่มีประโยชน์
ตัวอย่าง: Access เทียบกับ Refresh Token
ตัวอย่างหนึ่งที่สร้างขึ้น (แต่เรียบง่าย) ที่ฉันคิดได้คือบางทีเราต้องการใช้ JWT เพื่อเข้าถึงและรีเฟรชโทเค็นโดยไม่ต้องใช้คีย์การเข้ารหัสและอัลกอริทึมแยกต่างหาก แต่ต้องการให้แน่ใจว่าโทเค็นการเข้าถึงจะไม่ตรวจสอบความถูกต้องเป็นโทเค็นรีเฟรชหรือรอง - ตรงกันข้าม
ด้วยการใช้aud
เราสามารถระบุการอ้างสิทธิ์refresh
สำหรับโทเค็นการรีเฟรชและการอ้างสิทธิ์access
สำหรับโทเค็นการเข้าถึงเมื่อสร้างโทเค็นเหล่านี้ เมื่อมีการร้องขอเพื่อรับโทเค็นการเข้าถึงใหม่จากโทเค็นการรีเฟรชเราจำเป็นต้องตรวจสอบว่าโทเค็นการรีเฟรชเป็นโทเค็นการรีเฟรชของแท้ การaud
ตรวจสอบความถูกต้องตามที่อธิบายไว้ข้างต้นจะบอกเราว่าโทเค็นนั้นเป็นโทเค็นการรีเฟรชที่ถูกต้องหรือไม่โดยมองหาการอ้างสิทธิ์refresh
ในaud
ใน
รหัสไคลเอ็นต์ OAuth เทียบกับการaud
อ้างสิทธิ์JWT
รหัสไคลเอ็นต์ OAuth ไม่เกี่ยวข้องกันโดยสิ้นเชิงและไม่มีความสัมพันธ์โดยตรงกับ JWT aud
อ้างสิทธิ์จากมุมมองของ OAuth โทเค็นเป็นวัตถุทึบแสง
แอปพลิเคชันที่รับโทเค็นเหล่านี้มีหน้าที่ในการแยกวิเคราะห์และตรวจสอบความหมายของโทเค็นเหล่านี้ ฉันไม่เห็นคุณค่ามากนักในการระบุรหัสไคลเอ็นต์ OAuth ภายในการaud
อ้างสิทธิ์JWT
aud REQUIRED for session_token. Contains the client_id of the client receiving the assertion.