2011-09-04 11 views
7

मेरे पास आईआईएस 7 पर एक डब्ल्यूसीएफ वेब सेवा एप्लिकेशन बनाया गया है और परीक्षण किया गया है। प्रमाणीकरण के संबंध में मैं वेब सेवा में संचालन तक पहुंचने वाले उपभोक्ताओं के लिए एक एसक्यूएल सर्वर होस्टेड यूजर आईडी और पासवर्ड प्रमाणीकरण को कार्यान्वित करना चाहता था। हालांकि मुझे बताया गया कि मेरी कंपनी नीति यह निर्देश देती है कि मैं अपनी वेब सेवा में एसएएमएल को लागू करता हूं। इसका मतलब है कि मेरे वेब सेवा संचालन तक पहुंचने वाला कोई भी ग्राहक SAML 2.0 का उपयोग करके प्रमाणित होना आवश्यक है। मैं एसएएमएल से परिचित नहीं हूं लेकिन जानना चाहता हूं कि इसे अपने वेब सर्विसेज में कैसे कार्यान्वित किया जाए। मैं दो शर्तों को सुनता रहता हूं - वेब पर परिभाषाओं के आधार पर सेवा प्रदाता और पहचान प्रदाता, मुझे लगता है कि सेवा प्रदाता मेरी वेब सेवा है। पहचान प्रदाता वह स्थान है जहां उपयोगकर्ता प्रमाणीकरण करता है और पहचान प्रदाता मेरी वेब सेवा पर दावा प्रदान करता है और फिर मैंने क्लाइंट को संचालन तक पहुंचने दिया। मैं सिद्धांत को समझता हूं लेकिन यह सुनिश्चित नहीं करता कि व्यावहारिक कार्यान्वयन कैसे किया जाए। मेरे वेब सेवा तक पहुंचने वाले ग्राहक आंतरिक नहीं हैं, यानी वे बाहरी (एक्स्ट्रानेट क्लाइंट) हैं, इसलिए इस मामले में पहचान प्रदाता क्या होगा और मैं इसे एक सेवा प्रदाता बनाने के लिए अपने वेब सेरिस में कोड कैसे जोड़ूं?डब्ल्यूसीएफ वेब सेवा अनुप्रयोग में SAML प्रमाणीकरण को एकीकृत करने के लिए कैसे करें

मुझे आशा है कि आप मेरी दुविधा को समझते हैं, किसी को भी दृष्टिकोण मैं लेने की जरूरत है और किसी भी नमूने या ट्यूटोरियल, जिनकी सहायता से पूरा वेब सेवा बहुत सराहना की व्याख्या कर सकते हैं।

उत्तर

4

मुझे लगता है कि मानक डब्ल्यूसीएफ द्वारा SAML 2.0 प्रदान नहीं किया गया है। इसे काम करने के लिए आपको WIF (विंडोज पहचान नींव) के साथ डब्ल्यूसीएफ को गठबंधन करना होगा। यहां आपके पास डब्ल्यूआईएफ और दावा आधारित प्राधिकरण के साथ डब्ल्यूसीएफ के उपयोग के very complex example हैं। उदाहरण SAML 1.1 का उपयोग करता है लेकिन यह केवल SAML 2.0 के साथ काम करने के लिए कॉन्फ़िगरेशन परिवर्तन है।

आपकी समस्या को आम तौर पर संघीय प्रमाणीकरण या संघीय पहचान कहा जाता है जहां उपयोगकर्ता एसटीएस (सेवा टोकन सेवा) के खिलाफ प्रमाणित करता है और इसे सुरक्षा टोकन प्राप्त होता है (यह उदाहरण के लिए SAML टोकन हो सकता है)। क्लाइंट की वास्तविक सेवा (आरपी ​​- रिलेइंग पार्टी) कहां से है जहां यह अपनी सुरक्षा टोकन पास करती है। तो आप क्या बनाने जा रहे हैं? यदि आपकी कंपनी नीति एसएएमएल उपयोग की मांग करती है तो उनके पास शायद पहले से ही एसटीएस है और आपको लेख में उल्लिखित एसएएमएल टोकन द्वारा ग्राहकों को प्रमाणीकृत करने की आवश्यकता है।

+0

आप सही हैं, हम एसटीएस की है। तो सैम टोकन का उपयोग कर ग्राहकों को प्रमाणीकृत करने के लिए, क्या उदाहरण है कि आपने जाने का रास्ता प्रदान किया है? – wcfvemi

2

2011 के बाद से, दावा-अवेयर WCF सेवाओं के लिए सहायता .NET 4.5 के रिलीज के साथ apparently improved है। मुझे लगता है कि लेख के मामले में यह कभी बदलता है से जानकारी कॉपी कर देंगे, लेकिन इस उत्तर के समय के रूप में, प्रक्रिया बहुत ही सरल प्रतीत होता है:

  1. एक (Microsoft.IdentityModel.dll) अपने WCF में WIF के संदर्भ में जोड़ा जा रहा है सेवा परियोजना चूंकि यह .NET 4.5 के साथ वितरित किया गया है, मुझे विश्वास नहीं है कि NuGet पैकेज आवश्यक है।

  2. एक स्वयं की मेजबानी का दावा-अवेयर सेवा बनाने के लिए निम्नलिखित कोड नमूना का उपयोग करें:

    वर मेजबान = नए ServiceHost (typeof (ClaimsAwareWebService), नई उरी ("myUri")); संघीय सेवा प्रमाण पत्र। कॉन्फ़िगर करें सर्विसहोस्ट (होस्ट);

    होस्ट। ओपन();

  3. federatedServiceHostConfiguration व्यवहार एक्सटेंशन का उपयोग करने के अपने WCF सेवा सेट करें।

संबंधित मुद्दे