JWT aud
(श्रोता) का दावा
RFC 7519 के अनुसार :
"ऑड" (श्रोता) दावा उन प्राप्तकर्ताओं की पहचान करता है जो JWT के लिए अभिप्रेत है। प्रत्येक प्रिंसिपल का इरादा JWT MUST को संसाधित करने का है जो दर्शकों के दावे में एक मूल्य के साथ खुद को पहचानता है। यदि दावा संसाधित करने वाला प्रमुख स्वयं "ऑड" दावे में एक मूल्य के साथ खुद की पहचान नहीं करता है जब यह दावा मौजूद है, तो जेडब्ल्यूटी एमयूटी खारिज कर दिया जाना चाहिए। सामान्य स्थिति में, "ऑड" मान केस-सेंसिटिव स्ट्रिंग्स का एक सरणी है, प्रत्येक में एक स्ट्रिंगऑनरी मान होता है। विशेष मामले में जब JWT में एक दर्शक होता है, तो "ऑड" मूल्य Mring एक एकल-संवेदनशील स्ट्रिंग होता है जिसमें StringOrURI मान होता है। दर्शकों के मूल्यों की व्याख्या आम तौर पर विशिष्ट अनुप्रयोग है।
इस दावे का उपयोग वैकल्पिक है।
ऑडियंस ( aud
) दावा जैसा कि युक्ति द्वारा परिभाषित किया गया है सामान्य है, और अनुप्रयोग विशिष्ट है। इरादा उपयोग टोकन के इच्छित प्राप्तकर्ताओं की पहचान करना है। एक प्राप्तकर्ता का मतलब क्या है आवेदन विशिष्ट। एक ऑडियंस मान या तो स्ट्रिंग्स की एक सूची है, या यह केवल एक ही aud
दावा होने पर एक स्ट्रिंग हो सकती है । टोकन का निर्माता aud
ठीक से मान्य नहीं है, ज़िम्मेदारी प्राप्तकर्ता की नहीं है, यह निर्धारित करने के लिए कि टोकन का उपयोग किया जाना चाहिए।
जो भी मूल्य है, जब कोई प्राप्तकर्ता JWT को मान्य कर रहा है और यह मान्य करना चाहता है कि टोकन का उपयोग इसके उद्देश्यों के लिए किया जाना था, तो यह निर्धारित करना होगा कि aud
पहचान करने वाले में क्या मूल्य है, और टोकन केवल तभी मान्य होना चाहिए जब प्राप्तकर्ता की घोषित आईडी है aud
दावे में पेश है । इससे कोई फर्क नहीं पड़ता कि यह URL या कोई अन्य एप्लिकेशन विशिष्ट स्ट्रिंग है। उदाहरण के लिए यदि मेरा सिस्टम खुद aud
को स्ट्रिंग के साथ पहचानता है, api3.app.com
तो यह केवल JWT को स्वीकार करना चाहिए, यदि aud
दावा इसमें api3.app.com
दर्शकों के मूल्यों की सूची में है।
बेशक, प्राप्तकर्ता अवहेलना करना चुन सकते हैं aud
, इसलिए यह केवल तभी उपयोगी है जब कोई प्राप्तकर्ता सकारात्मक सत्यापन चाहता है कि टोकन विशेष रूप से इसके लिए बनाया गया था।
विनिर्देश के आधार पर मेरी व्याख्या यह है कि aud
दावा उद्देश्य-निर्मित JWTs बनाने के लिए उपयोगी है जो केवल कुछ उद्देश्यों के लिए मान्य हैं। एक प्रणाली के लिए इसका मतलब हो सकता है कि आप एक टोकन को कुछ सुविधाओं के लिए मान्य होना चाहते हैं, लेकिन दूसरों के लिए मान्य नहीं है। आप टोकन जारी कर सकते हैं जो केवल एक निश्चित "दर्शकों" तक ही सीमित हैं, जबकि अभी भी एक ही कुंजी और सत्यापन एल्गोरिथ्म का उपयोग कर रहे हैं।
चूंकि विशिष्ट मामले में एक JWT एक विश्वसनीय सेवा द्वारा उत्पन्न होता है, और अन्य विश्वसनीय प्रणालियों द्वारा उपयोग किया जाता है (सिस्टम जो अमान्य टोकन का उपयोग नहीं करना चाहते हैं), इन प्रणालियों को बस उन मूल्यों को समन्वयित करने की आवश्यकता होती है जो वे उपयोग कर रहे होंगे।
बेशक, aud
पूरी तरह से वैकल्पिक है और इसे अनदेखा किया जा सकता है यदि आपका उपयोग मामला इसे वारंट नहीं करता है। यदि आप विशिष्ट दर्शकों द्वारा उपयोग किए जा रहे टोकन को प्रतिबंधित नहीं करना चाहते हैं, या आपका कोई भी सिस्टम वास्तव में aud
टोकन को मान्य नहीं करेगा , तो यह बेकार है।
उदाहरण: प्रवेश बनाम ताज़ा करें टोकन
एक विवादित (अभी तक सरल) उदाहरण मैं सोच सकता हूं कि क्या हम अलग एन्क्रिप्शन कुंजी और एल्गोरिदम लागू करने के बिना JWTs का उपयोग और ताज़ा टोकन के लिए उपयोग करना चाहते हैं, लेकिन बस यह सुनिश्चित करना चाहते हैं कि टोकन टोकन तक पहुँच को मान्य न करें, या इसके विपरीत -versa।
का उपयोग करके aud
हम refresh
ताज़ा टोकन के लिए दावा कर सकते हैं और access
इन टोकन बनाने पर पहुँच टोकन के लिए दावा कर सकते हैं । जब एक ताज़ा टोकन से एक नया एक्सेस टोकन प्राप्त करने के लिए अनुरोध किया जाता है, तो हमें यह सत्यापित करने की आवश्यकता है कि ताज़ा टोकन एक वास्तविक ताज़ा टोकन था। aud
सत्यापन जैसा कि ऊपर वर्णित हमें बता देंगे टोकन वास्तव में एक वैध ताज़ा के एक दावे के लिए विशेष रूप से देख कर टोकन था कि क्या refresh
में aud
।
OAuth क्लाइंट आईडी बनाम JWT aud
क्लेम
OAuth क्लाइंट आईडी पूरी तरह से असंबंधित है, और JWT के aud
दावों का कोई सीधा संबंध नहीं है। OAuth के दृष्टिकोण से, टोकन अपारदर्शी वस्तुएं हैं।
जो आवेदन इन टोकन को स्वीकार करता है, वह इन टोकन के अर्थ को पार्स और मान्य करने के लिए जिम्मेदार है। मुझे JWT aud
दावे के भीतर OAuth क्लाइंट आईडी निर्दिष्ट करने में बहुत अधिक मूल्य नहीं दिखता है ।
aud REQUIRED for session_token. Contains the client_id of the client receiving the assertion.