मैं एक संसाधन सर्वर के अनुरोधों को प्रमाणित करने के लिए HTTP हेडर में JWT टोकन का उपयोग कर रहा हूं। संसाधन सर्वर और सामान्य सर्वर Azure पर दो अलग-अलग कार्यकर्ता भूमिकाएँ हैं।
मैं अपने दिमाग को इस बात के लिए तैयार नहीं कर सकता कि मुझे टोकन में दावों को संग्रहीत करना चाहिए या उन्हें किसी अन्य तरीके से अनुरोध / प्रतिक्रिया के लिए संलग्न करना चाहिए। दावा सूची क्लाइंट-साइड UI तत्वों के प्रतिपादन के साथ-साथ सर्वर पर डेटा तक पहुंच को प्रभावित करती है। इस कारण से मैं यह सुनिश्चित करना चाहता हूं कि अनुरोध प्राप्त होने से पहले सर्वर द्वारा प्राप्त दावे प्रामाणिक और मान्य हों।
दावों के उदाहरण हैं: CanEditProductList, CanEditShopDescription, CanReadUserDesails।
जिन कारणों से मैं JWT टोकन का उपयोग करना चाहता हूं वे हैं:
- दावों के क्लाइंट-साइड संपादन (यानी दावे सूची को हैक करना) के खिलाफ बेहतर सुरक्षा।
- हर अनुरोध पर दावों को देखने की जरूरत नहीं है।
जिन कारणों से मैं JWT टोकन का उपयोग नहीं करना चाहता:
- ऑर्ट सर्वर को फिर ऐप-केंद्रित दावों की सूची को जानना होगा।
- टोकन हैक-एंट्री का एकल बिंदु बन जाता है।
- मैंने कुछ बातें पढ़ते हुए कहा है कि JWT टोकन ऐप-स्तरीय डेटा के लिए अभिप्रेत नहीं हैं।
मुझे ऐसा लगता है कि दोनों में कमियां हैं, लेकिन मैं इन दावों को टोकन में शामिल करने की दिशा में झुक रहा हूं और केवल उन लोगों द्वारा इसे चलाना चाहता हूं, जो इससे पहले निपट चुके हैं।
नोट: मैं सभी एपीआई अनुरोधों के लिए HTTPS का उपयोग करूंगा, इसलिए यह मुझे लगता है कि टोकन सुरक्षित 'पर्याप्त' होगा। मैं AngularJS, C #, Web API 2 और MVC5 का उपयोग कर रहा हूं।