2010-09-12 14 views
7

सक्षम करने के लिए एक (दावों) सुरक्षा टोकन कैसे पास करते हैं, मैं यह जानकर उत्सुक हूं कि हम एक डब्ल्यूआईएफ एप्लीकेशन से सुरक्षा टोकन कैसे भेज सकते हैं जो पहले से ही एक डब्ल्यूआईएफ सक्षम डब्ल्यूसीएफ सेवा को प्रमाणित कर चुका है।आप एक डब्ल्यूआईएफ को डब्ल्यूसीएफ सेवा

किसी भी सहायता appriciated किया जाएगा

+0

मुझे उम्मीद थी कि आप इस के लिए एक जवाब मिलेगा। यह डिफ़ॉल्ट डिज़ाइन है: वेब ऐप -> डब्ल्यूसीएफ सेवा। .NET devs को WIF का उपयोग करने के लिए प्रोत्साहित किया जाता है लेकिन मैं देख रहा हूं कि लागू करने के सुझाव किसी भी तरह से prescripitive नहीं हैं। –

उत्तर

6

जवाब सरल नहीं है, लेकिन निम्न चरणों को 'सिफारिश पैटर्न' का गठन और निम्न MSDN लेख में दर्ज कर रहे हैं: Identity Delegation with AD FS 2.0 Step-by-Step Guide

सारांश में

  1. आपको वेब एप्लिकेशन को एक विशेष टोकन (बूटस्ट्रैप टोकन) तक पहुंचने की अनुमति देता है जिसका उपयोग उपयोगकर्ता की ओर से सेवाओं का अनुरोध करने के लिए किया जा सकता है, जो एक एसटीएस का उपयोग करके प्रमाणित कर चुके हैं I web.config में tem:

    saveBootstrapTokens="true"

  2. WCF WIF सक्षम सेवा और एसटीएस के बीच एक नया विश्वास बनाएं तो यह है कि उस सेवा एक और प्रमाणीकृत उपयोगकर्ता (ActsAS) के रूप में कार्य कर सकते हैं 'जानता है'। उम्मीद है कि आप एडीएफएस v2 का उपयोग कर रहे हैं क्योंकि मैं कल्पना करता हूं कि कस्टम एसटीएस के लिए सभी नलसाजी लिखने के लिए प्रेरितों के व्यवहार के साथ तुच्छ नहीं है।

  3. जब WCF सेवा को फोन आप एक नया चैनल विशेष रूप से BootStap टोकन गुजर बनाएँ: चैनल सृष्टि के सभी और कैसे की वजह से

    channel = factory.CreateChannelActingAs(callerToken);

मैं प्रदर्शन के बारे में थोड़ा चिंतित हूँ डब्ल्यूसीएफ सेवाओं और वेब ऐप को एसटीएस सेवा से बात करने की ज़रूरत है।

0

@ डेविड इवांस - मेरे पास आपके उत्तर में शामिल होने की प्रतिष्ठा नहीं है। हालांकि, मुझे विश्वास है कि अंतिम चरण गलत है और यह बहुत भ्रमित हो सकता है क्योंकि आप ActingAs कॉल में बूटस्ट्रैप टोकन को वैध रूप से पास कर सकते हैं।

समस्या यह है कि आप बताते हैं कि आपको बूटस्ट्रैप टोकन पास करना चाहिए। हालांकि, क्या होता है कि एक्टएएस ट्रस्ट की स्थापना की प्रक्रिया में, एक एक्टएएस \ जारी टोकन बनाया जाता है। यह टोकन बूटस्ट्रैप टोकन नहीं है। वास्तव में, आपको इस नए टोकन को बनाने के लिए उपयोगकर्ता के बूटस्ट्रैप टोकन की आवश्यकता है, जो कि विशेष प्रमाणीकृत उपयोगकर्ता के रूप में निर्भर पक्षपातपूर्ण कार्य का प्रतिनिधित्व करता है।

तो चरण दो एक्टएएस टोकन (जिसमें आपके द्वारा उल्लेख किया गया सब कुछ शामिल है) बन जाएगा। और चरण तीन को एक्टएएस टोकन का उपयोग करके डब्ल्यूसीएफ सेवा को कॉल किया जाएगा, बूटस्ट्रैप टोकन नहीं।

0

माइक्रोसॉफ्ट WIF 4.5 का उपयोग करते हुए विभिन्न पहचान उदाहरणों के साथ एक पहचान Traningskit प्रदान करता है। उदाहरण InvokingViaDelegatedAccess in there demonstrates perfectly the usage of the ActAs- delegation scenario. However, it cost me days to bring the InvokingViaDelegatedAccess` उदाहरण ऊपर और चल रहा है। बहुत सारे कामकाज करने के बाद, मैं अंत में सेटअप चलाने और इस उदाहरण को निष्पादित करने में सक्षम था।

enter link description here का आनंद लें))

उदाहरण लेकिन एक विंडोज 7 वी एम Visual Studio 2012 स्थापित होने पर चल रहा है: मैं एक स्थापना के मैनुअल है कि आप यहाँ डाउनलोड कर सकते हैं लिखा है।

यह सही है, कि आपको बूटस्ट्रैप टोकन को सहेजना है।अपने वेबपैलिकेशन में लॉगिन करने के बाद, आपको पहले टोकन को सुरक्षित करना होगा जो पहले सुरक्षा टोकन सेवा से जारी किया गया था। WIF 4.5 का उपयोग करते हुए इस web.config में निम्न आदेश के साथ किया जा सकता है:

<identityConfiguration saveBootstrapContext="true"> 

WCF ChannelFactory है तो अलग अलग तरीकों (CreateChannelWithActAsToken, CreateChannelWithIssuedToken, WithOnBehalfOfToken) एक WCF करने के लिए एक बैकेंड आवेदन से समर्थन प्रतिनिधिमंडल परिदृश्यों सर्विस। ActAs परिदृश्य का उपयोग करके, CreateChannelWithActAsToken बूटस्ट्रैप टोकन निकालने जा रहा है, बूटस्ट्रैप टोकन को एसटीएस पर सेंट करता है, एसटीएस नए (या प्रतिलिपि) दावा मूल्यों के साथ एक नया सुरक्षा टोकन बना रहा है, तो बैकएंड सेवा को ActAs- SecurityToken का उपयोग करके बुलाया जाता है। इस विधि का उपयोग करते हुए, हर बार जब आप सेवा कहते हैं तो एक नया एक्टएएस- सुरक्षा टोकन जारी किया जाएगा। यदि आप इसे नहीं देखते हैं, तो CreateChannelWithIssuedToken आपके लिए बेहतर तरीका हो सकता है, क्योंकि आप कुकी में जारी टोकन को कैश कर सकते हैं और अन्य कॉल के लिए इसका पुनः उपयोग कर सकते हैं।

/Patric Seiler, डेवलपर .net www.itconsulting24.com

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