2009-06-15 13 views
6

मेरे पास दो सक्रिय निर्देशिका डोमेन हैं, ए और बी डोमेन में उपयोगकर्ताओं को डोमेन बी में किसी सर्वर पर स्थित संसाधन को देखने और कुशलतापूर्वक देखने के लिए अपने डेस्कटॉप पर एक एप्लिकेशन चलाने की आवश्यकता है। प्रत्येक उपयोगकर्ता के पास डोमेन बी में खाता भी है। डोमेन बी संसाधन पर प्रोग्रामिंग करने के लिए प्रत्येक उपयोगकर्ता की डोमेन बी पहचान का प्रतिरूपण करना संभव है?क्या मैं किसी उपयोगकर्ता को .NET में किसी भिन्न सक्रिय निर्देशिका डोमेन पर प्रतिरूपण कर सकता हूं?

उदाहरण कार्यप्रवाह:

डोमेन ए में
  1. उपयोगकर्ता लॉग
  2. उपयोगकर्ता डेस्कटॉप अनुप्रयोग की शुरूआत।
  3. उपयोगकर्ता डोमेन बी में संसाधन निर्दिष्ट करता है
  4. एप्लिकेशन डोमेन बी प्रमाण पत्र के लिए उपयोगकर्ता को संकेत देता है।
  5. एप्लिकेशन निर्दिष्ट संसाधन तक पहुंचने के लिए उपयोगकर्ता के डोमेन बी पहचान का प्रतिरूपण करता है।
  6. उपयोगकर्ता एप्लिकेशन का उपयोग कर डोमेन बी संसाधन में हेरफेर करता है।

उत्तर

2

मैं Win32 एपीआई के संदर्भ में बात करने जा रहा हूं, लेकिन मुझे पूरा यकीन है कि आप इन्हें .NET से पी/इनका कर सकते हैं। http://pinvoke.net देखें।

आपको लॉगऑनयूज़र एपीआई को एक एक्सेस टोकन बनाने के लिए कॉल करने की आवश्यकता है जो उपयोगकर्ता के डोमेन बी प्रमाण-पत्रों का प्रतिनिधित्व करता है।

फिर आप उस एक्सेस टोकन में गुजरने वाले ImpersonateLoggedOnUser को कॉल करते हैं। कॉलिंग थ्रेड डोमेन बी क्रेडेंशियल्स का प्रतिरूपण करेगा जब तक कि आप क्रेडेंशियल्स के एक अलग सेट का प्रतिरूपण नहीं करते या RevertToSelf API को कॉल नहीं करते।

मैं इसे कह रही है कि, LogonUser कॉल सफल होने के लिए, मशीन तुम पर चला रहे हैं आपके कंप्यूटर (एक प्रतिरूपण कर रही है) एक सदस्य है, तो डोमेन बी पर भरोसा करने

+0

क्या यह दूसरी तरफ नहीं है .. मेरा मतलब है, डोमेन बी को डोमेन ए पर भरोसा नहीं करना है? –

+0

नहीं, मुझे ऐसा नहीं लगता है। डोमेन ए और बी के बीच कोई ट्रस्ट रिलेशनशिप मौजूद नहीं है लेकिन मशीन के किस डोमेन से संबंधित है, इस पर निर्भर करता है कि कुछ अन्य ट्रस्ट आवश्यकताएं भी हैं जिनका हमने उल्लेख नहीं किया है। – Martin

+0

यह मेरी समझ है कि LogonUser दूरस्थ उपयोगकर्ताओं को प्रमाणित नहीं करता है। मैंने WindowsImpersonationContext असफल रूप से इस विधि का उपयोग करने का प्रयास किया है। लॉगऑनसर: http://msdn.microsoft.com/en-us/library/aa378184(VS.85).aspx यदि ऐसा नहीं है, तो मुझे लगता है कि मेरी समस्याएं कहीं और झूठ बोल सकती हैं। यह दो डोमेन के बीच एक ट्रस्ट मुद्दा हो सकता है। मैं उसमें जांच करूंगा। –

1

this question देखें, जो आपको आवश्यक प्रतिरूपण समस्याओं को शामिल करता है।

+0

मैंने उस प्रश्न और लिंक को जो देखा है उसे देखा है। उन्होंने मेरे प्रश्न का पर्याप्त जवाब नहीं दिया। पाए जाने वाले अधिकांश उदाहरण LogonUser विधि पर निर्भर करते हैं, जैसा कि मैं समझता हूं, दूरस्थ कंप्यूटर के विरुद्ध प्रमाणित नहीं होगा। –

7

की आवश्यकता होगी के बिना चला जाता है लगता है ऐसे डोमेन का जो उस उपयोगकर्ता खाते के डोमेन पर भरोसा नहीं करता है जिसका आप प्रतिरूपण करने का प्रयास कर रहे हैं, तो प्रतिरूपण विफल हो जाएगा। कोई भी जो अन्यथा कहता है, मुझे सबूत देखना अच्छा लगेगा।

+0

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

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

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