@Luis: यहां मेरे इनपुट हैं।
आपकी समस्या के लिए सटीक समाधान आपके द्वारा अपेक्षित वेब सेवा क्लाइंट्स पर निर्भर करता है, क्या आपके पास वेब सेवा क्लाइंट सिस्टम, आपके ऐप सर्वर आदि पर नियंत्रण है ..... लेकिन मानते हैं कि आपके पास वेब पर कोई नियंत्रण नहीं है सेवा क्लाइंट, आपके लिए यह केवल HTTP परिवहन पर एक SOAP संदेश है, यहां संभावित समाधान है।
आप संदेश स्तर या परिवहन स्तर पर सत्र प्रबंधन & प्रमाणीकरण कर सकते हैं। इसका मतलब है कि या तो आप एसओएपी संदेश में सत्र टोकन और ऑथ टोकन जानकारी प्राप्त कर सकते हैं या आप मानक HTTP सत्र और HTTP प्रमाणीकरण तंत्र का उपयोग कर सकते हैं।
बेशक परिवहन स्तर समाधान बहुत आसान है और यदि परिवहन परत HTTP है तो उद्योग व्यापक मानक है। संदेश स्तर के लिए, ws-security जैसे ws विनिर्देशों का उपयोग किया जा सकता है। आपका प्रत्येक वेब सेवा अनुरोध एक साधारण HTTP यूआरआई द्वारा पहचाना गया सरल HTTP GET/POST है। आमतौर पर जैक्स-डब्ल्यू मेट्रो पर्यावरण में, WSServlet वह है जो किसी भी वेब सेवा कॉल के लिए एंट्री सर्वलेट है और अंततः सही सेवा प्रदाता कार्यान्वयन कक्षा में कॉल का प्रतिनिधित्व करता है। चूंकि आप वेब सर्वर में आवेदन तैनात किए जा रहे हैं, इसलिए आप जे 2 ई वेब कंटेनर द्वारा प्रदान किए गए सभी सत्र और प्रमाणीकरण सुविधाओं का फायदा उठा सकते हैं।
चूंकि आप भूमिका-आधारित पहुंच नियंत्रण की तलाश में हैं, इसलिए मैं वेब.एक्सएमएल में मानक <web-resource-collection>
का उपयोग करता हूं ताकि यह निर्दिष्ट किया जा सके कि आप विशेष HTTP यूआरआई के मामले में कौन सी भूमिका लेना चाहते हैं। आप मानक जेएएएस लॉगिन मॉड्यूल का उपयोग कर सकते हैं जो प्रमाणीकरण कर सकता है और भूमिका के साथ जेएएएस विषय को पॉप्युलेट कर सकता है। यदि SOAP XML में उपयोगकर्ता नाम/पासवर्ड प्रदान किया जाता है, तो JAAS लॉगिन मॉड्यूल उन जानकारी को पुनर्प्राप्त करने के लिए SOAP XML को खोज/पार्स भी कर सकता है। जेएएएस/ऐप सर्वर स्वचालित रूप से ऑथ टोकन बना देगा और इसे कुकी के रूप में स्टोर करेगा ताकि प्रत्येक बाद के अनुरोध को फिर से प्रमाणीकरण प्रक्रिया से गुज़रने की आवश्यकता न हो। यह सभी जे 2ee मानक है। आप इस पर इंटरनेट पर बहुत मदद पा सकते हैं।कृपया मुझे अपना ऐप सर्वर बताएं ताकि मैं आपको अतिरिक्त विवरण प्रदान कर सकूं।
यदि आप अभी भी एसओएपी संदेश स्तर सत्र प्रबंधन, प्रमाणीकरण & प्रमाणीकरण प्रक्रिया का उपयोग करना चाहते हैं, तो आपको अधिक जानकारी प्रदान करने के लिए, क्या मैं आपके ग्राहक पक्ष के बारे में अधिक जानकारी प्राप्त कर सकता हूं।
EDIT1: खैर अपने आगे इनपुट के आधार पर, यहाँ मेरी अधिक विचार है: संदेश सुरक्षा अर्थात् एन्क्रिप्शन और हस्ताक्षर प्रत्येक संदेश सर्वर और ग्राहक के बीच यात्रा होने की जरूरत है। जहां संदेश प्रमाणीकरण के रूप में- आप एक बार ऐसा करने का इरादा रखते हैं और बाद में कॉल के लिए क्लाइंट को सत्र टोकन/ऑथ टोकन देते हैं।
प्रश्न अभी भी बनी हुई है: यदि आप पहली बार प्रमाणीकरण के एसओएपी प्रतिक्रिया में एक अद्वितीय सत्र पहचानकर्ता डालते हैं, तो क्या आप क्लाइंट को एसओएपी प्रतिक्रिया एक्सएमएल का विश्लेषण करने की उम्मीद करते हैं और यह सुनिश्चित करते हैं कि क्लाइंट को बाद में एसओएपी अनुरोधों में आपको सत्र पहचानकर्ता भेजना चाहिए। या आप सत्र प्रबंधन को क्लाइंट के लिए पारदर्शी रखना चाहते हैं और क्लाइंट के लिए इसे पहली बार उपयोगकर्ता नाम/पासवर्ड टोकन भेजना होगा और बाद के कॉलों को किसी उपयोगकर्ता नाम/पासवर्ड टोकन की आवश्यकता नहीं होगी। इस मामले में आपको परिवहन आधारित सत्र प्रबंधन पर भरोसा करना होगा उदा। HTTP कुकीज़
अब आपके लिए सबसे अच्छा क्या है आपके उपयोग के मामले पर निर्भर करता है। क्या आप मुझे बता सकते हैं कि उपयोग केस प्रवाह की अपेक्षा की जाती है? कैसे एक और सिस्टम (वेब सेवा क्लाइंट) आपके सिस्टम पर एक से अधिक सेवा कॉल करता है? क्या एक और सिस्टम उपयोगकर्ता संचालित/कुछ पृष्ठभूमि प्रक्रिया है? सटीक आवश्यकता क्या है कि आप प्रमाणीकरण प्रक्रिया के माध्यम से जाने के लिए केवल पहली सेवा कॉल चाहते हैं, बाद में कॉल नहीं?
पीएस: ग्लासफ़िश सर्वर संदेश प्रमाणीकरण प्रदाता को कॉन्फ़िगर करने का एक तरीका प्रदान करता है जो स्वचालित रूप से संदेश स्तर प्रमाणीकरण को सक्षम/अक्षम करता है।
EDIT2: मैं समझता हूँ कि आप में ग्राहक ऐप्लिकेशन और वेब सेवा सर्वर उन उपयोगकर्ता प्रमाणिकता की जरूरत उपयोगकर्ता क्रेडेंशियल स्टोर करने के लिए नहीं करना चाहती। ओएथ खुला मानक प्रोटोकॉल है जो साइट ए को साइट पर उपयोगकर्ता के निजी डेटा तक पहुंचने की अनुमति देता है। अंतिम विचार यह है कि साइट ए को ऑथ टोकन मिल जाता है जिसमें विशिष्ट समाप्ति समय होता है। इसलिए उपयोगकर्ता क्रेडेंशियल्स या जेएसशन आईडी से एन्क्रिप्टेड युक्त टोकन आपको पुनः प्रमाणीकरण की आवश्यकता से बचने में मदद करता है। आपको केवल यह तय करने की आवश्यकता है कि आप क्लाइंट ऐप साइड पर टोकन रखना चाहते हैं, यदि परिवहन HTTP प्रोटोकॉल है तो आप कुकी के रूप में टोकन रख सकते हैं।
यह कहकर कि हर बार उपयोगकर्ता प्रमाण-पत्र पास करने के लिए थोड़ा आसान और सीधे आगे लगता है।
क्या आप जानते थे कि आप अपने प्रश्न का उत्तर दे सकते हैं? बीटीडब्ल्यू, मुझे लगता है कि यह एक अच्छा सवाल है और मुझे आश्चर्य है कि अधिक प्रतिक्रिया नहीं थी। मैं जेएएएस से परिचित नहीं हूं, लेकिन मुझे यह आलेख मिला: http://drdobbs.com/web-development/208402532। मुझे लगता है कि आप सही दिशा में गए थे। चीयर्स! –
मदद के लिए धन्यवाद, आखिर में कोई! जैसा कि आपने कहा, मैंने अभी तक एक रास्ता बनाया है, सड़क को दूर करो। जितनी जल्दी हो सके मैं आपके द्वारा संदर्भित पृष्ठ को पढ़ूंगा, धन्यवाद! –