asp.net - स्थानीय-भूमिका-आधारित प्राधिकरण के साथ सक्रिय निर्देशिका प्रमाणीकरण




active-directory authorization (2)

मैं एक asp.net MVC आवेदन विकसित कर रहा हूँ। मुझे एकाधिक प्रमाणीकरण तंत्रों का समर्थन करने की आवश्यकता है (इस ऐप का इस्तेमाल कई ग्राहकों द्वारा किया जाता है, प्रत्येक के अपने पसंदीदा पसंदीदा प्रदाता)। एक ऑथेंट प्रदाता सक्रिय निर्देशिका होगा प्रमाणीकरण के लिए ईडी एकीकरण सीधा है और मुझे उसके साथ कोई समस्या नहीं है।

प्राधिकरण के लिए, भूमिकाओं को एक स्थानीय डाटाबेस में संग्रहित किया जाएगा (नोट: हम प्राधिकरण के लिए सक्रिय निर्देशिका समूहों का उपयोग नहीं कर सकते हैं - भूमिकाएं स्थानीय अनुप्रयोग भूमिकाएं होने की आवश्यकता है क्योंकि हम कई authn प्रदाताओं का समर्थन करते हैं और विज्ञापन व्यवस्थापक एडी में कस्टम समूह नहीं बनाना चाहते हैं। बस हमारे ऐप के लिए)। मेरी उम्मीद यह है कि हमें अपने स्थानीय डेटाबेस में "स्टब" उपयोगकर्ता खाते बनाने की आवश्यकता होगी ताकि उपयोगकर्ता-नियत-जो-भूमिकाएं मानचित्रण हो। ये स्टब उपयोगकर्ता खाते का उपयोग यह भी दर्शाने के लिए किया जाएगा कि कौन-से उपयोगकर्ता एप्लिकेशन के उपयोग के लिए अधिकृत हैं (एडी डेटाबेस में प्रत्येक व्यक्ति को एक्सेस नहीं होना चाहिए)।

नियंत्रण का प्रत्याशित प्रवाह होगा:

  1. उपयोगकर्ता लॉगिन पृष्ठ तक पहुंचता है> क्रेडेंशियल्स में प्रवेश करता है> एप सर्वर में पोस्ट क्रेडेंशियल
  2. ऐप एडी के खिलाफ क्रेडेंशियल्स की पुष्टि करता है। इस बिंदु पर, हमें पता है कि उपयोगकर्ता प्रमाणित है।
  3. ऐप उपयोगकर्ता के एसआईडी की जांच करता है कि क्या उस एसआईडी के साथ एक "स्टब" उपयोगकर्ता खाता स्थानीय डाटाबेस में मौजूद है या नहीं। यदि नहीं, तो ऐप उपयोगकर्ता को "अधिकृत नहीं" त्रुटि संदेश दिखाता है।
  4. ऐप उपयोगकर्ता के लिए स्थानीय डेटाबेस उपयोगकर्ता-असाइन किए गए-जो-भूमिकाएं तालिका में भूमिकाएं दिखाएगा।

भूमिकाओं सहित उपयोगकर्ता पहचान जानकारी को दावों के रूप में संग्रहित किया जाएगा और ऐप विशिष्ट दावों के आधार पर प्राधिकरण (यानी दावे प्राधिकरण प्रबंधक) का उपयोग करेगा।

मेरा प्रश्न यह है कि "स्थानीय" उपयोगकर्ता खातों को अपने स्थानीय डेटाबेस में बनाने का सबसे अच्छा तरीका क्या है? मेरा अनुमान है कि हमें एडी एक्सपोर्ट स्क्रिप्ट का उपयोग उन प्रयोक्ताओं के लिए एडी अकाउंट निर्यात करने के लिए करना चाहिए, जिन्हें एएसपी.नेट ऐप तक पहुँच दी जानी चाहिए और फिर उन यूजर्स को स्थानीय डाटाबेस में आयात करना चाहिए (नोट: मुझे उम्मीद है कि स्टब अकाउंट न्यूनतम जानकारी शामिल है - शायद ईडी से उपयोगकर्ता का एसआईडी और शायद उपयोगकर्ता नाम)।

एक बैच निर्यात / आयात शायद एक प्रारंभिक परिनियोजन प्रक्रिया के रूप में ठीक है ऐप ऊपर और चल रहा है और नए उपयोगकर्ताओं के संगठन में शामिल होने के बाद, मुझे उम्मीद है कि एक नए प्रयोक्ता को हमारे ऐप (नए प्रयोक्ता के खाते को आयात करने के अलावा एडी से हमारे खाते में आयात करने के अलावा) के लिए अधिक उपयोगकर्ता-अनुकूल तंत्र की आवश्यकता होगी स्थानीय डेटाबेस)। मेरा अनुमान है कि हमें किसी प्रकार की यूजर ब्राउज़र स्क्रीन की ज़रूरत है ताकि हमारे एडमिन में एडी निर्देशिका ब्राउज़ कर सकें, उपयोगकर्ता का चयन करें, एक बटन पर क्लिक करें और उस उपयोगकर्ता के "स्टब" अकाउंट को हमारे एप में स्वचालित रूप से बनाया हो।

क्या किसी ने ऐसी ही आवश्यकताओं के साथ एक आवेदन लागू किया है? यदि हां, तो आप अपने स्थानीय डेटाबेस में "स्टब" खातों के निर्माण को बूटस्ट्रैप कैसे बनाया? क्या इन आवश्यकताओं को पूरा करने का एक बेहतर तरीका है?


कृपया बेझिझक महसूस करें यदि यह आपको कस्टम व्याख्या प्राधिकरण की मदद कर सकता है

यह केवल एक समाधान है, या सिर्फ एक विचार है, समाधान नहीं ...

इसका इस्तेमाल करने के लिए आपको कंट्रोलर उदाहरण में एनोटेशन का उपयोग करने की आवश्यकता है

 [ARQAuthorize]
public class BlaBlaController : Controller .....

मैं वर्तमान में एक समान समाधान लागू कर रहा हूँ यहां आवेदन कैसे काम करता है मैं asp.net MVC 5, ASP.NET पहचान 2.2.1 का उपयोग कर रहा हूँ।

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

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

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





authorization