2012-09-19 24 views
6

पर माइक्रोसॉफ्ट अकाउंट के साथ एज़ूर एसीएस 2.0 मैं एसएसएल का उपयोग कर विंडोज़ एज़ूर होस्टेड डब्ल्यूसीएफ सेवा कनेक्शन में अपने विंडोज 8 को सुरक्षित कर रहा हूं। मुझे यह सत्यापित करने में दिलचस्पी है कि उपयोगकर्ता मेरे विंडोज 8 ऐप का उपयोग कर रहा है और फिडलर का उपयोग करके कुछ 'हैकर' नहीं।विंडोज 8

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

मैंने Azure ACS पर एक नज़र डाली है, लेकिन ऐसा लगता है कि यह केवल एक ही संकेत के लिए है और उपयोगकर्ता को हर बार उपयोगकर्ता नाम और पासवर्ड दर्ज करना होगा।

वहाँ करने के लिए वैसे भी है:

  • डिफ़ॉल्ट माइक्रोसॉफ्ट खाते का उपयोग करें (जो अधिकांश उपयोगकर्ताओं को दर्ज किया है जाएगा, जब वे सेटअप विंडोज 8) एसीएस के साथ?
  • उपयोगकर्ता के लॉगिन विवरण को एन्क्रिप्ट और स्टोर करने के लिए उपयोगकर्ता को हर बार लॉगिन विवरण दर्ज करने से रोकने के लिए?

धन्यवाद!

+1

चूंकि आपका ऐप विंडोज 8 पर है, और आप माइक्रोसॉफ्ट अकाउंट का उपयोग करना चाहते हैं, क्या आपने सीधे लाइव एसडीके का उपयोग करने पर विचार किया है? माइकल क्रम्प के पास आपके WinRT एप्लिकेशन के साथ लाइव एसडीके को एकीकृत करने के बारे में एक लेख है http://www.silverlightshow.net/items/Using-the-Live-SDK-in-Windows-8-XAML-C-Metro-Aplplications.aspx –

उत्तर

2

आपकी आवश्यकता के बारे में "मुझे यह सत्यापित करने में दिलचस्पी है कि उपयोगकर्ता अपने विंडोज 8 ऐप का उपयोग कर रहा है और फिडलर का उपयोग करके कुछ 'हैकर' नहीं।", मुझे यकीन नहीं है कि आप अपने आवेदन को सुरक्षित करने की कोशिश कैसे करेंगे अपने आवेदन को अलग-अलग उपभोग करने की कोशिश करना चाहते हैं, उन्हें अपना रास्ता मिल जाएगा और अगर आपको लगता है कि एसीएस या लाइवएसडीके का उपयोग किसी भी सुरक्षा को जोड़ता है, तो मुझे ऐसा नहीं लगता है।

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

इससे कोई फर्क नहीं पड़ता कि आप एसीएस/ओएथ/या अपनी सदस्यता सेवा का उपयोग करते हैं, उपयोगकर्ता को समय-समय पर प्रमाणीकृत समय प्राप्त करने के लिए उपयोगकर्ता नाम और पासवर्ड दर्ज करना होगा। लॉगिन समय और प्रकार के आधार पर, आप लाइव सत्र के रूप में उपयोगकर्ता को समय के लिए सक्रिय रख सकते हैं, हालांकि सत्र समाप्त हो जाएगा और उपयोगकर्ता को उपयोगकर्ता नाम और पासवर्ड दर्ज करना होगा। क्रेडेंशियल दर्ज करने से बचने के लिए स्थानीय रूप से उपयोगकर्ता नाम और पासवर्ड संग्रहीत करना एक अच्छा एप्लिकेशन डिज़ाइन नहीं है।

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

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

+0

तो अनिवार्य रूप से, कोई तरीका नहीं है कि मैं किसी को अपने ऐप का उपयोग कर सत्यापित कर सकता हूं क्योंकि दिन के अंत में मेरा एक्सएपी पैकेज किसी भी व्यक्ति के लिए सुलभ है। विंडोज फोन और विंडोज 8 ऐप पैकेज अब एन्क्रिप्टेड हैं लेकिन ऐसा लगता है कि लोगों ने पहले से ही इसे हैक कर दिया है। http://forum.mobilism.org/viewtopic.php?f=1073&t=386304। क्या किसी को सत्यापित करने का कोई तरीका नहीं है कि मेरा अपरिवर्तित एप्लिकेशन उपयोग कर रहा है? – user1567095

+1

दुर्भाग्य से आप एक बहुत अच्छा मुद्दा लाते हैं यह चर्चा ऐसे परिदृश्यों के लिए एक मंच नहीं है। जैसा कि मैंने इस तथ्य का जिक्र किया है कि अगर कोई (1% या उससे कम) आपके आवेदन को अन्य तरीकों से उपयोग करना चाहता है और उन्हें एक रास्ता मिल जाएगा तो यह आपको यह तय करने की आवश्यकता है कि इस संबंध में आपको कितनी ऊर्जा/संसाधनों को खर्च करने की आवश्यकता है। – AvkashChauhan

+0

धन्यवाद! मैं एक नज़र रखूंगा और देख सकता हूं कि मैं क्या कर सकता हूं। क्या आप कहीं भी जानते हैं मैं इस पर चर्चा कर सकता हूं? – user1567095

2

विंडोज 8 आधुनिक-शैली अनुप्रयोगों के लिए इस क्रेडेंशियल स्टोर नमूना पर एक नज़र डालें - http://code.msdn.microsoft.com/windowsapps/PasswordVault-f01be74a। यह Azure ACS नहीं है - लेकिन उम्मीद है कि आपको समस्या हल करने में मदद मिलेगी। PasswordVault एक नई एपीआई (Windows.Security.Credentials.PasswordVault) है जिसे हमने .NET 3 में पेश की गई पहचान सुविधाओं पर बनाया है। यह आपको सुरक्षित स्टोर में ओएस में दूरस्थ एप्लिकेशन क्रेडेंशियल्स सुरक्षित रूप से स्टोर करने की अनुमति देता है, और गतिशील रूप से उन्हें एक्सेस करता है आपका आवेदन। उपयोगकर्ता स्टोर के पूर्ण नियंत्रण में रहता है और यदि वे चाहें तो नियंत्रण कक्ष का उपयोग करके डेटा को हटा सकते हैं। वर्तमान में यह तरीका है कि अधिकांश आधुनिक एप्लिकेशन ट्विटर जैसे दूरस्थ सेवा कॉल के लिए ओथ टोकन जैसे डेटा जारी रख रहे हैं।

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