11

मैं एएसपीनेट वेब एपीआई का उपयोग करके एक बाकी सेवा बनाने की कोशिश कर रहा हूं और सब ठीक काम कर रहा है लेकिन अब मैं प्रमाणीकरण के साथ क्या करना है।एएसपी.नेट वेब एपीआई (आरईएसटी): उपयोगकर्ता प्रमाण-पत्र या टोकन का उपयोग कर प्रमाणीकरण? "नया उपयोगकर्ता पंजीकृत करें" संसाधन पासवर्ड मुफ्त छोड़ दें?

मैं कहां से शुरू करना है, इस बारे में थोड़ा उलझन में हूं, मैं यही सोच रहा हूं।

मेरे पास एक बाकी एपीआई है जो मैं विकसित कर रहा हूं जिसमें कई संसाधन शामिल हैं, प्रत्येक संसाधन को उपयोगकर्ता को पंजीकृत करने की आवश्यकता होगी, इसलिए ऐसा करने के लिए सबसे अच्छी कार्रवाई क्या है? मैं तो बस इसलिए मैं सर्वर

AuthorizationFilterAttribute

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

मेरे पास एक संसाधन भी है जिसका उपयोग एक नए उपयोगकर्ता को पंजीकृत करने के लिए किया जाता है, वास्तव में केवल एक ही चीज जो इसे कॉल कर रही है वह मेरे क्लाइंट (एंड्रॉइड, आईफोन) है। तो क्या मुझे इसे किसी भी प्रमाणीकरण विधियों से मुक्त करना चाहिए या हार्ड कोड किए गए पासवर्ड या कुछ समान रखना चाहिए ताकि कम से कम कोई भी नया उपयोगकर्ता पंजीकृत न कर सके? ध्यान में रखते हुए कि सेवा इंटरनेट पर सार्वजनिक होगी।

मैं इस पर किसी भी प्रतिक्रिया के लिए वास्तव में सराहना करता हूं।

मुझे ऐसा करने का सही तरीका नहीं मिल रहा है, मैं निश्चित रूप से कोशिश करना चाहता हूं और इसे पहली बार सही तरीके से प्राप्त करना चाहता हूं इसलिए मुझे पूरी तरह से सेवा को पुन: सक्रिय करने की आवश्यकता नहीं है।

अग्रिम

उत्तर

11

धन्यवाद नीचे दिए गए लिंक कुछ समझदार DIY विकल्पों http://codebetter.com/johnvpetersen/2012/04/02/making-your-asp-net-web-apis-secure/ कवर करने के लिए प्रकट होता है। "पब्लिक/प्राइवेट कीज पर आधारित टोकन" अनुभाग में एक दृष्टिकोण शामिल है जिसे मैंने अतीत में प्रभावी रूप से उपयोग किया है और शायद आपको सहायता मिलेगी।

फिलहाल हालांकि मैं http://identityserver.codeplex.com/ उपयोग कर रहा हूँ OAuth वाहक टोकन ("संसाधन मालिक पासवर्ड क्रेडेंशियल" अनुदान प्रकार) के साथ Thinktecture IdentityServer ... मैं इस कोड और उदाहरण के लिए एक बहुत अच्छा सेट लग रहा है से काम करते हैं और आईओएस के लिए टोकन प्राप्त करने और वेबएपी को कॉल करने वाले ग्राहक।

यदि आपको वास्तव में अपनी पंजीकरण स्क्रीन सुरक्षित करनी है तो आप शायद प्रमाणित करने के लिए डिवाइस पर स्थापित क्लाइंट प्रमाणपत्रों का उपयोग कर सकते हैं ... फिर थिंकटेक्चर सेवा https://identity.thinktecture.com/idsrv/docs/default.htm?RequestingatokenusingOAuth2.html की सहायता कर सकती है। यद्यपि यदि आप पंजीकरण प्रक्रिया सुरक्षित हैं What are best practices for activation/registration/password-reset links in emails with nonce उदा। ईमेल पुष्टिकरण और सक्रियण इत्यादि। सार्वजनिक रूप से सुलभ होने के लिए यह सुरक्षित हो सकता है - यह सब आपकी व्यावसायिक आवश्यकताओं और वांछित साइन अप वर्कफ़्लो पर निर्भर करता है।

आपको कम से कम ट्रांसपोर्ट लेवल सुरक्षा एसएसएल का उपयोग करना चाहिए, लेकिन जैसा कि आप संदेश स्तर की सुरक्षा का सुझाव देते हैं उदा। किसी भी टोकन को एन्क्रिप्ट करना बहुत ही सलाह दी जाती है - OAuth spec के पास इस http://self-issued.info/docs/draft-ietf-oauth-v2-bearer.html#mitigation के बारे में कुछ कहना है।

टोकन की समाप्ति के संबंध में - हम अपने टोकन को उसी आवृत्ति के साथ समाप्त कर देते हैं जैसे कि हमारी पासवर्ड बदलती नीति; हालांकि वैधता समय को कम रखना महत्वपूर्ण है (टोकन चोरी के प्रभाव को कम करने के लिए) और आपकी आवश्यकताओं के मुकाबले संतुलन पर विचार करना।ओथ में ताज़ा टोकन Why Does OAuth v2 Have Both Access and Refresh Tokens? को इस विषय के आसपास कुछ बहस और लिंक रीफ्रेश करने की अवधारणा है, वर्तमान में हम इस दृष्टिकोण का उपयोग नहीं कर रहे हैं क्योंकि हम जिस आईडी सर्वर का उपयोग कर रहे हैं वह वर्तमान में इसका समर्थन नहीं करता है।

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

+0

धन्यवाद मार्क, मैं एक नज़र डालेगा, इसने मुझे देखने के लिए थोड़ा सा दिया है .. सभी मदद के लिए धन्यवाद – Martin

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