7

हमारे पास एक सर्वर है जिसमें 5-10 आंतरिक एएसपी.नेट (एमवीसी) अनुप्रयोग अलग-अलग वेबसाइटों (विभिन्न बंदरगाहों और/या सबडोमेन पर) के रूप में अलग-अलग एप्लिकेशन पूल में चल रहे हैं। मुझे अंतर्निहित एएसपी.NET प्रमाणीकरण ढांचे के बारे में कुछ नहीं पता है, इसलिए मैं सोच रहा था कि कोई मुझे सही दिशा में एक त्वरित सूचक छोड़ सकता है ...एएसपी.नेट प्रमाणीकरण - एकाधिक ऐप्स के लिए एक लॉगिन सिस्टम

मैं एक लॉगिन तंत्र के माध्यम से सभी आंतरिक ऐप्स को सुरक्षित करना चाहता हूं (3-5 अलग-अलग भूमिकाओं का समर्थन करना; कुछ जटिल नहीं)। यह लॉगिन सिस्टम सर्वर पर चलने वाली एक और ऐप/वेबसाइट होगी, और किसी अन्य ऐप तक पहुंच प्राप्त करने के लिए, किसी एक लॉगिन सिस्टम के माध्यम से प्रमाणित होना चाहिए और लक्ष्य ऐप उपयोगकर्ता की भूमिका को देखने में सक्षम होना चाहिए। इस नए लॉगिन सिस्टम में प्लग करने के लिए आंतरिक ऐप्स को कोड स्तर पर संशोधित किया जाएगा (दूसरे शब्दों में, हम प्रमाणीकरण का समर्थन करने के लिए वर्तमान ऐप्स को संशोधित करेंगे)।

इसका पूरा बिंदु यह है कि मैं नहीं चाहता कि प्रत्येक ऐप का अपना लॉगिन/प्रमाणीकरण तंत्र हो, बल्कि एक "वैश्विक" प्रमाणीकरण प्रणाली (उसी सर्वर पर सबकुछ) का उपयोग करें। मैं कुछ भी जटिल नहीं ढूंढ रहा हूं (केवल 15-25 कर्मचारियों की एक कंपनी, 3-5 विभाग - प्रत्येक उपयोगकर्ता को उनके लॉगिन के आधार पर एक विभाग (भूमिका) से जोड़ा जाना चाहिए - और प्रत्येक ऐप को उपयोगकर्ता को उपयुक्त दिखाने के लिए ट्यून किया जाएगा उनकी भूमिका के आधार पर डेटा)।

सवाल यह है कि - मैं इसे कैसे बना सकता हूं ताकि उपयोगकर्ता की प्रमाणीकरण स्थिति सभी अलग-अलग ऐप्स (अलग-अलग असेंबली में और अलग से चल रही) में दिखाई दे?

क्या मुझे फॉर्म प्रमाणीकरण का उपयोग करने की आवश्यकता है? या Spring.NET में कुछ?

उत्तर

4

सिंगल साइन-ऑन एक सबडोमेन या द्वितीय स्तर के डोमेन के भीतर अपेक्षाकृत आसान है। एएसपी.नेट फॉर्म प्रमाणीकरण एक टिकट आधारित प्रणाली है जहां टिकट कुकी में एन्क्रिप्टेड संग्रहीत किया जाता है। आपको यह हासिल करना होगा कि इस कुकी को साझा करने के लिए अपने वेब ऐप्स को सक्षम करें।

एक उप डोमेन परिदृश्य के लिए (जैसे mysite.com/app1, mysite.com/app2), बस web.config फाइलों में machinekey की स्थापना में एक ही हो encryption/decryption कुंजी निर्धारित किया है।

उपरोक्त के अलावा, दूसरे स्तर के डोमेन परिदृश्य (जैसे app1.mysite.com, app2.mysite.com) के लिए, आपको एक ही शीर्ष स्तर का उपयोग करने के लिए सभी प्रमाणीकरण कुकीज़ को मजबूर करने के लिए कुछ कोड परिवर्तन करने की आवश्यकता है डोमेन (जैसे mysite.com)।

+0

मैंने आपके निर्देश का पालन किया। काम नहीं किया। जब मैं app1.mydomain.com से app2.mydomain.com पर नेविगेट करने के लिए लिंक पर क्लिक करता हूं तो यह लॉगिन करने के लिए रीडायरेक्ट करता है। – uikrosoft

+0

मेरे स्थानीय पर यह एक ही कुंजी होने के बावजूद पूरी तरह से अच्छी तरह से काम करता है। – uikrosoft

1

यदि आपकी कंपनी विंडोज पर चल रही है और आपके पास आंतरिक रूप से सक्रिय निर्देशिका सेटअप (सक्रिय निर्देशिका डोमेन सेवा) है, तो आप एकीकृत विंडोज प्रमाणीकरण का उपयोग करने के लिए अपनी सभी एएसपी.NET साइट्स सेट कर सकते हैं। इंट्रानेट साइटों के लिए यह सेटअप करना बहुत आसान है और बहुत आम है। आपकी आंतरिक साइटों तक पहुंचने वाले उपयोगकर्ता स्वचालित रूप से उनके विंडोज पहचान के साथ प्रमाणित होते हैं जिसका अर्थ है उपयोगकर्ता नाम & पासवर्ड लॉगिन फ़ॉर्म की आवश्यकता नहीं है। इसके बारे में यहां सब कुछ पढ़ें: http://www.asp.net/mvc/tutorials/authenticating-users-with-windows-authentication-cs