2015-05-25 11 views
15

में प्रमाणीकरण मेरे पास एक पारंपरिक एएसपी.NET ऐप है जिसे मैं एएसपी.NET 5 (vNext) पर ले जाना चाहता हूं। मैं इसे सीखने के अभ्यास के रूप में कर रहा हूं।एएसपी.नेट 5 (vNext)

मेरा वर्तमान ऐप फॉर्म-आधारित प्रमाणीकरण का उपयोग करता है। हालांकि, मैं ओथ का उपयोग करना चाहता हूं। मैं Security module देख रहा था और उत्सुक था कि ओथ के लिए क्या उपयोग किया जाना चाहिए। मुझे Microsoft.AspNet.Authentication.OAuth और Microsoft.AspNet.Authentication.OAuthBearer के लिए एक विकल्प दिखाई देता है।

इनमें से कौन सा उपयोगकर्ता लॉगिन करने के लिए उपयोग किया जाता है?

क्या किसी को नमूना/उदाहरण के बारे में पता है जो इन्हें क्रिया में दिखा रहा है?

उत्तर

12

Microsoft.AspNet.Authentication.OAuth

  • अपने उपयोगकर्ताओं के पंजीकरण की झुंझलाहट से बचते हुए, के लिए उपयोगकर्ताओं को प्रमाणित करने 3 पार्टी पहचानकर्ता (जैसे गूगल, फेसबुक) देता है।
  • अन्य एप्लिकेशन आपके उपयोगकर्ताओं द्वारा एक 3 पार्टी द्वारा प्रमाणीकृत हैं आपके आवेदन प्रमाणीकरण के लिए

उपयोग करने देता है, Owin मध्यम बर्तन उनके OAuth कुकी को पढ़ता है और एक डोमेन विशिष्ट दावा आधारित कुकी बनाता है । जब तक कुकी उपलब्ध हो (वर्तमान में, अन-कालबाह्य और निर्बाध) आपके उपयोगकर्ता प्रमाणीकृत रहते हैं।

An introduction to the ASP.NET 5 Generic OAuth Provider

Microsoft.AspNet.Authentication.OAuthBearer

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

स्टार्टअप

app.UseOAuthBearerAuthentication(options => 
{ 
    options.Authority = "http://localhost:5000/oauth/"; 
    options.Audience = "http://localhost:5000/oauth/resources"; 

    options.TokenValidationParameters = new TokenValidationParameters 
    { 
     IssuerSigningKeys = new[] { new X509SecurityKey(cert) }, 
     ValidateLifetime = false, 
    }; 
    options.AutomaticAuthentication = true; 

    options.SecurityTokenValidators = new[] 
    { 
     new JwtSecurityTokenHandler() 
    }; 
}); 

बियरर टोकन में जब एसपीए (एकल पृष्ठ आवेदन) बनाने या AJAX अनुरोध हासिल करने के लिए उपयोग किया जाता है।

कुकी प्रमाणीकरण सर्वर अनुरोधों के लिए पर्याप्त माना जाता है। लेकिन सेवा अंत अंक (या नहीं, वे अनुमति देते हैं सी रॉस हे rigin आर esource एस हैरिंग) CSRF और XSS हमलों के लिए अधिक जोखिम रहता है।


कई अनुप्रयोगों दोनों का उपयोग करें:

एक आम बात AJAX अनुरोधों के लिए पेज अनुरोध और वाहक टोकन कुकी प्रमाणीकरण का उपयोग करने के लिए है।

आपको टोकन का उपयोग करने वाली कुकीज़ और संसाधनों का उपयोग करने वाले संसाधनों के बीच अंतर करने की आवश्यकता होगी।

इस Stackoverflow answer में, मैट DeKrey उसके कार्यान्वयन

[Authorize("Bearer")]

नियंत्रकों या तरीके कि मानक कुकी आधारित [Authorize] विशेषता के बजाय टोकन वाहक का उपयोग करना चाहिए के लिए उपयोग की रूपरेखा का एक अच्छा काम किया है।


कई आवेदन पर अकेले कुकीज़ भरोसा:

कैसे कमजोर CSRF हमलों के लिए अपने आवेदन जब कुकीज़ पर भरोसा है? यह बहस योग्य है। कई साइटें अकेले कुकीज़ पर भरोसा करती हैं और कभी भी मुद्दों का सामना नहीं करती हैं। उत्तर आपके यातायात स्तर और सुरक्षा आवश्यकताओं पर अधिक निर्भर हो सकता है।

यदि आप हजारों उपयोगकर्ताओं के लिए साइट विकसित कर रहे हैं, तो आप शायद कुकीज़ पर भरोसा सुरक्षित हैं।

यदि आप लाखों उपयोगकर्ताओं की सेवा कर रहे हैं या महत्वपूर्ण वित्तीय डेटा की रक्षा कर रहे हैं, तो आपकी असीमित कॉल भालू टोकन पर भरोसा करनी चाहिए।


नोट: आप रूपों प्रमाणीकरण का उपयोग उल्लेख करते हैं, मैं दृढ़ता से पहचान का उपयोग कर की सिफारिश करेंगे। फ्रेमवर्क ओडिन बॉक्स के बाहर आपको दोनों प्रकार की कार्यक्षमता प्रदान करने के लिए एकीकृत करता है।

+0

डिफ़ॉल्ट तंत्र पहचान का उपयोग क्या है? एएसपी.नेट 5 में अगर मैं सिर्फ ऐप कहता हूं। उपयोग करें() और [प्राधिकरण] विशेषता का उपयोग करें, सबकुछ ठीक काम करता है, लेकिन मुझे कैसे पता चलेगा कि यह कुकी या टोकन आधारित ऑथ का उपयोग करता है या नहीं? –

+0

@VladimirDjurdjevic, डिफ़ॉल्ट कुकी ऑथ है। टोकन ऑथ को लागू करने पर एक अच्छी पोस्ट है http://stackoverflow.com/questions/29048122/token-based- प्रमाणीकरण-in-asp-net-5-vnext –

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