ActiveDirectory का उपयोग करने के लिए मैं तोड़फोड़ के मौजूदा सेट को कैसे स्विच कर सकता हूं? (Svnserve; / विंडोज़)


12

मेरे पास एक विंडोज सर्वर 2003 बॉक्स पर निजी सबवर्सन रिपॉजिटरी का एक सेट है जो डेवलपर्स svn: // प्रोटोकॉल पर SVNServe के माध्यम से एक्सेस करते हैं। वर्तमान में हम प्रत्येक रिपॉजिटरी के लिए ऑर्टिज़ और पासवार्ड फ़ाइलों का उपयोग कर रहे हैं, हालांकि रिपॉजिटरी और डेवलपर्स की बढ़ती संख्या के साथ एक्सेस को नियंत्रित करने के लिए मैं एक्टिवडायरेरी से अपनी क्रेडेंशियल्स का उपयोग करने पर विचार कर रहा हूं। हम अपने सभी वेब सर्वरों पर Apache के बजाय Microsoft की सभी दुकान में चलते हैं और IIS का उपयोग करते हैं, इसलिए मैं यदि संभव हो तो SVNS का उपयोग करना जारी रखना पसंद करूंगा।

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

मेरे विकल्प क्या हैं?

अद्यतन 1: यह एसवीएन प्रलेखन से प्रकट होता है कि एसएएसएल का उपयोग करके मुझे ActiveDirectory का उपयोग करके प्रमाणित करने के लिए SVNServe प्राप्त करने में सक्षम होना चाहिए। स्पष्ट करने के लिए, मैं जिस उत्तर की तलाश कर रहा हूं, वह प्रमाणीकरण के लिए ActiveDirectory का उपयोग करने के लिए SVNServe (यदि संभव हो) को कॉन्फ़िगर करने के बारे में कैसे जाना है और फिर मौजूदा svn उपयोगकर्ताओं को उनके ActiveDirectory डोमेन खाते खातों को हटाने के लिए मौजूदा रिपॉजिटरी को कैसे संशोधित किया जाए।

अद्यतन 2: ऐसा प्रतीत होता है कि SVNServe में एसएएसएल समर्थन एक प्लगइन मॉडल से हटकर काम करता है और प्रलेखन केवल एक उदाहरण के रूप में दिखाता है। साइरस एसएएसएल लाइब्रेरी को देखकर ऐसा लगता है कि कई प्रमाणीकरण "तंत्र" समर्थित हैं, लेकिन मुझे यकीन नहीं है कि किसी को ActiveDirectory समर्थन के लिए उपयोग किया जाना है और न ही मुझे ऐसे मामलों के बारे में कोई दस्तावेज मिल सकता है।

अद्यतन 3: ठीक है, अच्छी तरह से इसे पसंद ActiveDirectory मैं के साथ संचार करने के लिए लग रहा है उपयोग करने के लिए देख रहा हूँ saslauthd बजाय sasldb के लिए auxprop_plugin संपत्ति। दुर्भाग्य से ऐसा प्रतीत होता है कि कुछ पदों के अनुसार (संभवतः पुरानी और गलत) saslauthd विंडोज पर नहीं बनती है और इस तरह के प्रयासों को प्रगति पर काम माना जाता है ।

अद्यतन 4: इस विषय पर मैंने जो सबसे अंतिम पोस्ट पाया है , वह ऐसा लगता है जैसे कि उचित बायनेरिज़ () एमआईटी केर्बरोस लाइब्रेरी के माध्यम से उपलब्ध हैं, लेकिन ऐसा लगता है कि इस पोस्ट के लेखक को Nabble.com पर अभी भी मुद्दों पर काम करने में समस्या हो रही है ।

अद्यतन 5: यह कछुआ वीवीएन चर्चा और svn.haxx.se पर इस पोस्ट से भी दिखता हैयहां तक ​​कि अगर saslgssapi.dll या जो भी आवश्यक बायनेरिज़ उपलब्ध हैं और विंडोज सर्वर पर कॉन्फ़िगर किया गया है कि इन रिपॉजिटरी के साथ काम करने के लिए क्लाइंट को भी उसी अनुकूलन की आवश्यकता होगी। यदि यह सही है, तो हम केवल Windows क्लाइंट से ActiveDirectory समर्थन प्राप्त करने में सक्षम होंगे, जब इन क्लाइंट्स में TortoiseSVN और CollabNet बिल्ड जैसे प्रमाणीकरण प्रमाणीकरण योजनाओं का समर्थन करने के लिए परिवर्तन किए जाएंगे। हालाँकि ये पोस्ट जो भी सुझाव देते हैं, यह इस बात से विरोधाभासी है कि मूल रूप से एसएएसएल संगत होने के नाते मैं अन्य पठन से क्या ग्रहण करता हूं, इसके लिए क्लाइंट पर कोई बदलाव नहीं करना चाहिए, बल्कि इसके बजाय कि सर्वर को प्रमाणीकरण तंत्र को संभालने के लिए सेटअप किया जाए। दस्तावेज में सायरस एसएएसएल के बारे में थोड़ा और ध्यान से पढ़ने के बादधारा 5 में कहा गया है, "साइरस एसएएसएल समर्थन वाले 1.5+ क्लाइंट एसएएसएल सक्षम के साथ 1.5+ सर्वर के खिलाफ प्रमाणित करने में सक्षम होंगे, बशर्ते कि सर्वर द्वारा समर्थित कम से कम एक तंत्र भी क्लाइंट द्वारा समर्थित हो।" तो स्पष्ट रूप से GSSAPI समर्थन (जो मुझे समझ में सक्रिय निर्देशिका के लिए आवश्यक है) ग्राहक और सर्वर के भीतर उपलब्ध होना चाहिए।

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

अद्यतन: 6: जब से सबवर्सन 1.7 पर विकास बढ़ रहा है, क्या कोई व्यक्ति इस बारे में कुछ भी जोड़ सकता है कि क्या सबवर्सन 1.7 सक्रिय निर्देशिका का उपयोग करके प्रमाणित करने के लिए एसवीएनएसर्व की स्थिति में सुधार करेगा?


फिर यहाँ देखें .. stackoverflow.com/questions/333146 लेकिन यह मुझे काफी हैक लगता है। आप अपाचे के साथ आईआईएस को एक-दूसरे से अलग-अलग पोर्ट या अलग-अलग आईपी पर चलाकर प्राप्त कर सकते हैं]
pQd

2
इस सवाल के लिए +1। यह कुछ ऐसा है जिसे मैं असफल होने का जवाब ढूंढना चाहता हूं। ज्यादातर लोगों को लगता है कि अपाचे स्वीकार्य है (आमतौर पर विजुअल्सन रूप में)। लेकिन यह एक दर्द है अगर आप पहले से ही svn का एक बहुत कुछ मिल गया है: // संदर्भ। और यह सिर्फ मुझे अपाचे के बजाय रिपॉजिटरी एक्सेस के लिए svnerve चलाने के लिए बेहतर लगता है।
जिम टी

1
+1 वास्तव में यह बहुत पहले करना चाहता था, साथ ही, मुझे वास्तव में एक विंडोज़ बॉक्स पर अपाचे को चलाने से नफरत है, जब यह जरूरी नहीं होना चाहिए, तो सिद्धांत से बाहर ... आईआईएस पर एसएसएल एक्सेस के साथ इसे संयोजित करने के लिए अतिरिक्त अंक ^ ^
Oskar Duveborn

@ ऑस्कर - मुझे लगता है कि यह बहुत अच्छा होगा अगर कोई IIS7 के लिए WAS मॉड्यूल बनाएगा और अपाचे आधारित http प्रोटोकॉल और साथ ही साथ IIS के भीतर svnerve प्रोटोकॉल दोनों की मेजबानी करेगा। अगर मेरे हाथ में अधिक समय होता तो मैं एक ओपन सोर्स प्रोजेक्ट के रूप में .NET में कुछ इस तरह से बनाने की कोशिश करता।
जिपरसन

जवाबों:


5

जैसा कि पहले ही उल्लेख किया गया है, VisualSVN सर्वर वह उपकरण है जो आप चाहते हैं। विंडोज के लिए इसका एक ऑल-इन-वन पैकेज जो कि बस इसके अंदर अपाचे का उपयोग करने के लिए होता है- आपको कभी भी पता नहीं चलेगा कि जब तक आप इसे स्थापित करने वाले dll में चारों ओर प्रहार नहीं करते हैं, तब तक हर किसी को इसकी विंडोज सेवा में एक mmc स्नैप-इन है। इसका प्रशासन करें। यदि आप पहले से ही 80 पोर्ट ले चुके हैं, तो आप इसे चालू कर सकते हैं।

मैं समझता हूं कि svnerve के माध्यम से sasl समर्थन इस समय काम किया जा रहा है।


यदि आईआईएस के माध्यम से अपाचे सेवा प्राप्त करने का एक तरीका था या उन दोनों को पोर्ट 80 का उपयोग करना है तो यह बहुत अच्छा होगा। दुर्भाग्य से उन लोगों के लिए जो svnerve के साथ रहना चाहते हैं या IIS का उपयोग करना चाहते हैं, यह देखने के लिए प्रतीक्षा करने के अलावा कई विकल्प नहीं हैं कि क्या svnerve के लिए sasl समर्थन पर काम करने के लिए काम आता है। अगर यह बहुत ज्यादा परेशानी की बात नहीं है तो क्या आप किसी जगह से लिंक कर सकते हैं जहाँ हम इस सुविधा के बारे में जानकारी प्राप्त कर सकते हैं? एसवीएन परियोजना, हालांकि हाल ही में बेहतर है, लगता है कि उनके प्रयासों को आगे नहीं बढ़ाते हैं और समुदाय को उनके बग ट्रैकर को बहुत अच्छी तरह से प्रगति करते हैं।
जिपरसन १erson

मुझे उत्सुकता है कि क्या आपके पास कोई इनपुट हो सकता है कि क्या sasl सपोर्ट जो / svnerve के लिए काम किया जा रहा है, वह किसी भी काम आया है। क्या हम सबवर्सन 1.7 में कोई सुधार देखने की उम्मीद कर सकते हैं?
जिपरसन

1

मैं svn के साथ अपाचे का उपयोग कर रहा हूँ डेबियन लिनक्स पर चल रहा है, जो सक्रिय निर्देशिका सर्वर के खिलाफ अधिकृत है। क्लाइंट HTTP प्रोटोकॉल पर रिपॉजिटरी से जुड़ते हैं। यदि यह सेटअप आपके लिए स्वीकार्य है - पढ़ना जारी रखें।

यह भी खिड़कियों के लिए अपाचे के तहत काम करना चाहिए, लेकिन मैंने कभी कोशिश नहीं की। इस प्रकार क्या डेबियन विशिष्ट है, लेकिन विंडोज़ / अन्य डिस्ट्रोस के तहत इसी तरह काम करना चाहिए; माइग्रेट करते समय आप अपने svn इतिहास को ढीला नहीं करेंगे ...

आवश्यक सॉफ़्टवेयर स्थापित करें:

apt-get install libapache2-svn subversion apache2

अपाचे की vhost के लिए विन्यास में [उन्हें सहानुभूति मिल सकती है / etc / apache2 / साइट्स-सक्षम]। VirtualHost ऐड के अंदर:

<Location /svn>
        DAV svn
        #change this to actual path
        SVNPath /full/path/to/your/current/svn/directory

        AuthType Basic
        AuthName "SVN Server"
        AuthBasicProvider ldap
        AuthzLDAPAuthoritative Off

        # provide here credentials for existing domain user. 
        # in my case domain is called domainName and user - user
        AuthLDAPBindDN "domainName\user"
        AuthLDAPBindPassword usersPassword
        # put here ip of the domain controler and full path to OU containing accounts
        AuthLDAPURL ldap://10.11.22.33:389/ou=Users,dc=domainName,dc=companyName,dc=whatever?sAMAccountName?sub?(objectClass=*)
        Require valid-user
        SVNAutoversioning on

        AuthzSVNAccessFile /etc/apache2/svn_authz
</Location>

सुनिश्चित करें कि अपाचे लोड ldap मॉड्यूल:

cd /etc/apache2/mods-enabled
ln -s ../mods-available/authnz_ldap.load
ln -s ../mods-available/ldap.load
/etc/init.d/apache2 reload

सुनिश्चित करें कि Apache svn रिपॉजिटरी में फ़ाइलों को संशोधित कर सकती है:

chown www-data:www-data -R /full/path/to/your/current/svn/directory

आपके svn_authz को यह बताना चाहिए कि कौन क्या एक्सेस कर सकता है। मेरे मामले में:

[groups]
ops=jack.brown,john.smith

[/]
* = rw

[/priv]
* =
@ops = rw

आप यहाँ उस फ़ाइल के लिए सिंटैक्स के बारे में अधिक जानकारी प्राप्त कर सकते हैं ।

यदि आप उस तक पहुँच गए हैं - आपके उपयोगकर्ता http: //server.address/svn/ से किसी भी svn ग्राहक [tortoise / cmdline / visual svn] का उपयोग करके देख सकते हैं, वे सभी इतिहास देखेंगे और इसे पढ़ना / लिखना जारी रखेंगे।


1
यदि कोई अन्य विकल्प नहीं हैं, तो Apache का उपयोग करना स्वीकार्य हो सकता है, लेकिन अभी हमारे पास पहले से ही कई svn हैं: // URL हमारे आंतरिक फ़ोरम और बगट्रैकिंग सॉफ़्टवेयर में संदर्भित हैं और इसके बजाय उन URL का उपयोग करना होगा। इसके अलावा, हम पहले ही अपने फ़ायरवॉल में SVNServe के लिए संबद्ध पोर्ट खोल चुके हैं। अगर मेरे Windows Server 2003 बॉक्स पर IIS के साथ Appache चलाने का एक तरीका था, तो यह एक वास्तविक तरीका हो सकता है, हालांकि यह प्रयास करने के लिए कि अभी मैं कैसे ActiveDirectory का उपयोग करके प्रमाणित करने के लिए SVNServe प्राप्त करने में दिलचस्पी रखता हूं।
जिपरसन

1

आप GSSAPI के बजाय saslNTML का उपयोग कर सकते हैं। SaslNTML dll को डिफ़ॉल्ट रूप से TSVN के साथ स्थापित किया गया है, और मुझे लगता है कि यह colln.net से svn क्लाइंट में भी शामिल है।

आपकी sasl config फाइल में आपको दो विकल्प देने होते हैं :

ntml_server

और वैकल्पिक

ntml_v2

और निश्चित रूप से आपको NTML को शामिल करने के लिए अपने कॉन्फिग फाइल में mech लिस्ट सेट करनी होगी।

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


बहुत बढ़िया, मैं जल्द ही यह कोशिश करूँगा और देखूँगा कि मुझे कहाँ मिल सकता है।
जिपरसन

मैं कई चीजों की कोशिश कर चुका हूं, लेकिन कछुआ एसवीएन का उपयोग करके चेक आउट करने की कोशिश करने पर मुझे हमेशा निम्न त्रुटि मिलती है। त्रुटि: सर्वर से प्रमाणीकरण त्रुटि: एसएएसएल (-13): उपयोगकर्ता नहीं मिला: त्रुटि खोजने में असमर्थ: कॉलबैक: 2
जिपर

"उपयोगकर्ता नहीं मिला" या तो इसका मतलब है कि कंप्यूटर उस डोमेन का हिस्सा नहीं है जिसे आप प्रमाणित करने की कोशिश कर रहे हैं या उपयोगकर्ता को डोमेन पर पता नहीं है। हो सकता है कि आप नेटवर्क ट्रैफ़िक को पकड़ने और यह पता लगाने की कोशिश कर सकें कि क्या हो रहा है?
स्टीफन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.