2012-06-18 13 views
6

के साथ एक उपयोगकर्ता को कई दावों के आधार पर पहचान प्रदाताओं से संबद्ध करें एएसपी.नेट एमवीसी 4 एप्लिकेशन में एज़ूर एक्सेस कंट्रोल सर्विस (एसीएस) के साथ .NET 4.5 फ्रेमवर्क का उपयोग करके, मैं उपयोगकर्ताओं को कई प्रमाणीकरण संभावनाएं प्रदान करना चाहता हूं (यानी Google, फेसबुक, विंडोज लाइव, आदि)। एक एकल उपयोगकर्ता को कई पहचान प्रदाताओं से जोड़ने के लिए "सर्वोत्तम अभ्यास" क्या है?एएसपी.NET

उदाहरण के लिए, उपयोगकर्ता एक दिन Google के साथ लॉग इन करता है, फिर अगले दिन दूसरे ब्राउज़र पर जाता है और फेसबुक के साथ लॉग इन करता है। मैं Google लॉगिन को उसी उपयोगकर्ता को पिछले Google लॉगिन से संबद्ध करने के बारे में कैसे जानूंगा?

उत्तर

2

यदि आप एसीएस का उपयोग कर रहे हैं, तो आप एसीएस पर दावा परिवर्तन का उपयोग करके एक सामान्य हैंडल में प्रत्येक आईडीपी (जैसे Gogle, याहू !, एफबी, आदि) से जानकारी का अनुवाद कर सकते हैं। लोगों का उपयोग करने वाले एक आम हैंडल उपयोगकर्ता ई-मेल है। लेकिन अगर आप एक ही उपयोगकर्ता के लिए कई ई मेल मानचित्रण स्वीकार करना चाहते हैं, तो आप अपने खुद के अनूठे (एक का दावा के रूप में) आईडी परिचय था और नक्शा IdP इसे में दावों की आपूर्ति:

  • [email protected] (ई-मेल - Google) -> (UserId - YourApp) user_1234
  • [email protected] (ईमेल - याहू!) -> (UserId - YourApp) user_1234
  • 64746374613847349 (NameIdentifier - LiveID) -> (UserId - YourApp) user_1234

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

मुमकिन है, आप इस जानकारी का उपयोग कर रहे अपने अनुप्रयोग में एक स्थानीय डेटाबेस से डेटा पुनः प्राप्त करने, अन्यथा, तो आप सिर्फ दावों में सब कुछ सांकेतिक शब्दों में बदलना कर सकते हैं और किसी भी equivalences बारे में चिंता मत। आम प्रोफ़ाइल डेटा एन्कोड करने के लिए दावा अक्सर एक अच्छी जगह होती है। (जैसे भूमिकाओं, आदि)

एसीएस नियम इंजन के साथ
+0

मेरे विचार उपयोगकर्ता विशिष्ट डेटा (दूसरे शब्दों में, दावों) को पकड़ने के लिए एक एप्लिकेशन विशिष्ट डेटाबेस का उपयोग करना था। .NET 4.5 दावों के आधार पर पहचान कार्यक्षमता के साथ, क्या मैं दावा कर सकता हूं कि एसीएस मेरे लिए उत्पन्न करता है और इसमें कुछ कस्टम दावों को जोड़ता है (एक बार जब मैं आईडी-पहचान को साइट-विशिष्ट पहचान में जोड़ता हूं)? – Hallmanac

+0

आप अपने ऐप में कस्टम दावों को जोड़ सकते हैं (देखें "दावा प्रमाणीकरण प्रबंधक") या आप बस उन कस्टम दावों को एसीएस में ही स्टोर कर सकते हैं। (नियमों के रूप में: [email protected] -> (SomeClaim) कुछ मूल्य)। http://msdn.microsoft.com/en-us/library/microsoft.identitymodel.claims.claimsauthenticationmanager.aspx –

+1

क्या एक असली किया किया उदाहरण के बारे में: यहाँ ClaimsAuthnManager के लिए लिंक है? – Adaptabi

3

इस के अच्छे उदाहरण के लिए खुद को स्टैक ओवरफ्लो से आगे नहीं देखें। अपनी उपयोगकर्ता प्रोफ़ाइल पर क्लिक करें और फिर "मेरे लॉगिन" का चयन करें।

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

अब, उपयोगकर्ता ने साइन इन करने के बाद, उनके पास खाता प्रबंधन है नियंत्रण कक्ष जिसके माध्यम से वे अन्य पहचान प्रदाताओं के लिए अतिरिक्त लिंक स्थापित कर सकते हैं।

  1. अपने MVC आवेदन खाते लिंक जारी रहती है:

    मैं इस को प्राप्त करने के लिए दो विकल्प देखें। जब कोई उपयोगकर्ता साइन इन करता है, तो आप तृतीय पक्ष अद्वितीय आईडी दावे का उपयोग करके अपने खाते के लिंक स्टोर से पूछताछ करते हैं और अपनी साइट विशिष्ट अद्वितीय उपयोगकर्ता आईडी को हल करते हैं।

  2. एसीएस नियम इंजन का उपयोग करें। आप प्रति खाता लिंक एक नियम बनायेंगे। उदाहरण के लिए, मान लीजिए कि मैं या तो जीमेल या LiveID और मेरे विशिष्ट आईडी से प्रवेश कर सकते 1234. दो नियम इस तरह दिखना है:

    • गूगल + [email protected] -> उत्पादन उपयोगकर्ता ID दावे पर 1234

    • LiveID + [email protected] -> उत्पादन उपयोगकर्ता ID दावे पर 1234

अद्वितीय ID उत्पादन दावा प्रकार के लिए, आप उपलब्ध दावा प्रकार से चुन सकते हैं या अपने खुद के निर्दिष्ट कर सकते हैं। एसीएस में OData based management service है जिसका उपयोग आप अपने एमवीसी अनुप्रयोग से प्रोग्रामेटिक रूप से इन नियमों को बनाने के लिए कर सकते हैं। यहां एक code sample है।

+0

, वहाँ है कि मुझे जाना जाता साइट विशिष्ट पहचान IdP ईद के साथ संबद्ध करने के लिए के नियमों के माध्यम से की अनुमति होगी एसीएस अंदर दृढ़ता दुकान किसी तरह का है? मैंने यह नहीं देखा है। – Hallmanac

+0

एसीएस नियम इंजन प्रभावी रूप से आपके दृढ़ता स्टोर को इस अर्थ में है कि यह आपके द्वारा जोड़े गए नियमों को बनाए रखेगा। हालांकि आप बाहरी डेटा स्टोर (जैसे आप एडीएफएस के साथ कर सकते हैं) से दावों को लाने के लिए एसीएस नियम इंजन को लिंक नहीं कर सकते हैं। –