c# - Windows डोमेन खातों और एप्लिकेशन-प्रबंधित खातों का उपयोग करना




asp.net-mvc asp.net-mvc-5 (2)

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

मैंने एक कारखाने का निर्माण किया जो प्रमाणीकरण तंत्र का आंकलन करता है (किसी भी माध्यम से जैसे कि टोकन प्रारूप, किसी अन्य चीज की उपस्थिति) और फिर एक रैपर लौटाता है जो उस प्रमाणीकरण विधि को मान्य करने और प्रिंसिपल को सेट करने के लिए तर्क करता है।

यह एक कस्टम HTTP मॉड्यूल में बंद हो जाता है ताकि प्रिंसिपल को कंट्रोलर को रिक्वेस्ट मिलने से पहले बिल्ट और ऑथेंटिकेट किया जा सके। आपके मामले में, विंडोज़ प्रामाणिक अंतिम गिरावट होगी, मुझे लगता है। हमारे वेब एपीआई एप्लिकेशन में, हमने एक ही दृष्टिकोण लिया लेकिन HTTP मॉड्यूल के बजाय एक प्रतिनिधि हैंडलर के माध्यम से। यह स्थानीय टोकन फेडरेशन का एक प्रकार है, आप कह सकते हैं। वर्तमान कार्यान्वयन हमें किसी भी सत्यापन प्रक्रिया को जोड़ने या संशोधित करने, या किसी अन्य टोकन प्रारूप को जोड़ने की अनुमति देता है; अंत में, उपयोगकर्ता एक उचित पहचान के साथ समाप्त होता है या अस्वीकृत हो जाता है। लागू करने में केवल कुछ दिन लगे।

ASP.NET MVC एप्लिकेशन बनाना आसान है जो विंडोज़ डोमेन उपयोगकर्ता के आधार पर प्रमाणित होता है। यह भी आसान बनाने के लिए है कि इकाई फ्रेमवर्क का उपयोग कर संग्रहीत व्यक्तिगत खातों का उपयोग करता है। वास्तव में, दोनों के लिए प्रोजेक्ट टेम्प्लेट हैं।

लेकिन मैं उसी एप्लिकेशन में सभी प्रकार के प्रमाणीकरण का उपयोग करना चाहता हूं। मैंने दोनों प्रोजेक्ट टेम्प्लेट से कोड को संयोजित करने का प्रयास किया। मुझे Startup.Auth.cs में एक समस्या है।

// from "Individual Accounts" template
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
    AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
    LoginPath = new PathString("/Account/Login"),
    Provider = new CookieAuthenticationProvider
    {
        OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
            validateInterval: TimeSpan.FromMinutes(30),
            regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
    }
});

कुकी प्रमाणीकरण ओडिन मिडलवेयर के अस्तित्व के कारण डोमेन आइडेंटिफिकेशन अन-ऑथेंटिकेटेड हो जाते हैं। यदि मैं इस लाइन को बाहर ले जाता हूं, तो डोमेन प्रमाणीकरण काम करता है। लेकिन इसके बिना, मैं अलग-अलग उपयोगकर्ता खातों का समर्थन नहीं कर सकता।

मैंने कटाना प्रोजेक्ट सोर्स कोड डाउनलोड किया है और कुकीऑथेंटिकेशनहैंडलर.क्स की जांच की है, लेकिन मुझे यह समझ में नहीं आता है कि यह ओविन पाइप लाइन के संदर्भ में कैसे काम करता है।

मैं अपने एप्लिकेशन को विंडोज़ डोमेन या एप्लिकेशन-विशिष्ट उपयोगकर्ता स्टोर से उपयोगकर्ताओं को प्रमाणित करने की अनुमति देने के लिए ASP.net पहचान ढांचे का उपयोग कैसे कर सकता हूं?


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

मैं IdentityServer3 पर एक नज़र IdentityServer3 । यह निश्चित रूप से एकमात्र समाधान नहीं है, लेकिन इसका बहुत अच्छा प्रमाणीकरण और प्राधिकरण ढांचा है। यह खुला स्रोत है और जल्दी में उठना और चलाना बहुत आसान है। आपका उपयोग मामला एक सामान्य है और आपको ऊपर दिए गए लिंक पर कुछ बहुत उपयोगी जानकारी मिलेगी। प्राधिकरण और प्रमाणीकरण, सामाजिक प्रमाणीकरण विकल्पों के बीच साफ जुदाई, उपयोगकर्ता के दावों को एनकैप करने वाले जौन वेब टोकन के साथ काम करना आसान है।

यह आपकी कैसे मदद कर सकता है

IdentityServer3 आपको प्रमाणीकरण को संभालने के लिए पहचान प्रदाता को कॉन्फ़िगर करने की अनुमति देता है और बहुत सारे विस्तार बिंदु हैं जो आपको जिम्मेदारी की एक श्रृंखला को लागू करने की अनुमति देगा जो आपके दोनों परिदृश्यों को संभाल सकता है। डॉक्स से :

IdentityServer बाहरी पहचान प्रदाताओं का उपयोग करके प्रमाणीकरण का समर्थन करता है। बाहरी प्रमाणीकरण तंत्र को कटाना प्रमाणीकरण मिडलवेयर में एनक्रिप्टेड होना चाहिए।

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

बाहरी प्रदाताओं के लिए मिडलवेयर को कॉन्फ़िगर करने के लिए, अपने प्रोजेक्ट में एक विधि जोड़ें जो IAPBuilder और मापदंडों के रूप में एक स्ट्रिंग को स्वीकार करता है।

IdentityServer3 एक ब्राउज़र लॉगिन विंडो के माध्यम से पहचानकर्ता के रूप में AD का समर्थन करता है और कस्टम अनुदान के माध्यम से अधिक प्रोग्रामेटिक कार्यान्वयन का समर्थन करेगा। आप IdentityServer3 और AD प्रमाणीकरण के बारे में अधिक जानकारी के लिए here भी नज़र डाल सकते हैं।

यह विंडोज़ ऑथेंटिकेशन को भी सपोर्ट करेगा और आप इसे लागू करने के बारे में जानकारी और उदाहरणों के लिए here देख सकते हैं।

यहाँ एक बहुत अच्छी शुरुआत हो रही है।

सही कॉन्फ़िगरेशन के साथ IdentityServer3 आपकी आवश्यकताओं को संभाल सकता है। आपको अपने स्वयं के प्रमाणीकरण प्रदाताओं को लागू करने और उन्हें ढांचे में प्लग करने की आवश्यकता होगी, लेकिन इसके अलावा भी बहुत कुछ नहीं है। जब तक प्राधिकरण जाता है, तब तक वहां बहुत सारे विकल्प हैं।





claims-based-identity