Saya memiliki satu set repositori Subversion pribadi pada kotak Windows Server 2003 yang diakses oleh pengembang melalui SVNServe melalui protokol svn: //. Saat ini kami telah menggunakan file authz dan passwd untuk setiap repositori untuk mengontrol akses namun dengan semakin banyaknya repositori dan pengembang saya sedang mempertimbangkan untuk beralih menggunakan kredensial mereka dari ActiveDirectory. Kami menjalankan semua toko Microsoft dan menggunakan IIS, bukan Apache di semua server web kami, jadi saya lebih suka untuk terus menggunakan SVNServe jika memungkinkan.
Selain memungkinkan, saya juga khawatir tentang cara memigrasi repositori kami sehingga riwayat pengguna yang ada memetakan ke akun ActiveDirectory yang benar. Perlu diingat juga bahwa saya bukan administrator jaringan dan saya tidak terbiasa dengan ActiveDirectory jadi saya mungkin harus melalui beberapa orang lain untuk mendapatkan perubahan yang dibuat dalam ActiveDirectory jika perlu.
Apa saja pilihan saya?
UPDATE 1: Tampaknya dari dokumentasi SVN bahwa dengan menggunakan SASL saya harus bisa mendapatkan SVNServe untuk mengautentikasi menggunakan ActiveDirectory. Untuk memperjelas, jawaban yang saya cari adalah bagaimana cara mengkonfigurasi SVNServe (jika mungkin) untuk menggunakan ActiveDirectory untuk otentikasi dan kemudian bagaimana memodifikasi repositori yang ada untuk memetakan kembali pengguna svn yang ada ke akun login domain ActiveDirectory mereka.
UPDATE 2: Tampaknya dukungan SASL di SVNServe berfungsi dari model plugin dan dokumentasi hanya menunjukkan sebagai contoh. Melihat Cyrus SASL Library , sepertinya sejumlah "mekanisme" otentikasi didukung tetapi saya tidak yakin yang mana yang akan digunakan untuk dukungan ActiveDirectory atau saya tidak dapat menemukan dokumentasi tentang hal-hal seperti itu.
UPDATE 3: Ok, sepertinya untuk berkomunikasi dengan ActiveDirectory saya mencari untuk menggunakan saslauthd daripada sasldb untuk properti auxprop_plugin . Sayangnya, menurut beberapa posting (mungkin kedaluwarsa dan tidak akurat), saslauthd tidak dibangun di Windows dan upaya semacam itu dianggap sebagai pekerjaan yang sedang berjalan .
UPDATE 4: Posting terbaru yang saya temukan tentang topik ini membuatnya terdengar seolah-olah binari yang tepat () tersedia melalui Perpustakaan MIT Kerberos tetapi kedengarannya seperti penulis posting ini di Nabble.com masih mengalami masalah dalam membuat semuanya berfungsi .
UPDATE 5: Sepertinya dari diskusi TortoiseSVN dan juga posting ini di svn.haxx.se bahwa bahkan jika saslgssapi.dll atau apa pun biner yang diperlukan tersedia dan dikonfigurasi pada server Windows bahwa klien juga akan memerlukan penyesuaian yang sama untuk bekerja dengan repositori ini. Jika ini benar, kami hanya akan bisa mendapatkan dukungan ActiveDirectory dari klien windows hanya jika perubahan dibuat pada klien ini seperti TortoiseSVN dan CollabNet build dari binari klien untuk mendukung skema otentikasi tersebut. Meskipun itulah yang disarankan oleh pos-pos ini, ini bertentangan dengan apa yang awalnya saya asumsikan dari bacaan lain bahwa menjadi kompatibel SASL tidak memerlukan perubahan pada klien tetapi hanya bahwa server akan diatur untuk menangani mekanisme otentikasi. Setelah membaca sedikit lebih hati-hatidokumen tentang Cyrus SASL di Subversion bagian 5 menyatakan "1.5+ klien dengan dukungan Cyrus SASL akan dapat mengotentikasi terhadap 1.5+ server dengan SASL diaktifkan, asalkan setidaknya salah satu mekanisme yang didukung oleh server juga didukung oleh klien." Jadi jelas dukungan GSSAPI (yang saya pahami diperlukan untuk Active Directory) harus tersedia di dalam klien dan server.
Saya harus mengatakan, saya belajar terlalu banyak tentang internal tentang bagaimana Subversion menangani otentikasi daripada yang pernah saya inginkan. Dan sayangnya saya hanya mencari jawaban tentang apakah saya dapat memiliki dukungan otentikasi Active Directory ketika menggunakan SVNServe di server Windows dan mengaksesnya dari klien Windows. Menurut dokumentasi resmi tampaknya ini mungkin namun Anda dapat melihat bahwa konfigurasi tidak sepele jika bahkan mungkin sama sekali.
UPDATE: 6: Karena pengembangan pada Subversion 1.7 sedang ditutup, adakah yang bisa menambahkan apa pun tentang apakah Subversion 1.7 akan membaik pada situasi mendapatkan SVNServe untuk otentikasi menggunakan Active Directory?
Jawaban:
Seperti yang telah disebutkan, VisualSVN Server adalah alat yang Anda inginkan. Ini adalah paket all-in-one untuk Windows yang kebetulan menggunakan Apache di dalamnya - Anda tidak akan pernah tahu kecuali Anda mencari-cari di dll yang diinstal, untuk semua orang dengan layanan Windows yang memiliki mmc snap-in untuk kelola itu. Anda dapat mengubah port yang digunakannya jika Anda telah mengambil port 80.
Saya mengerti dukungan sasl melalui svnserve sedang dikerjakan saat ini.
sumber
Saya menggunakan apache dengan svn yang berjalan di Linux Debian terhadap server direktori aktif. klien terhubung ke repositori melalui protokol http. jika pengaturan ini dapat diterima untuk Anda - lanjutkan membaca.
ini juga harus bekerja di bawah apache untuk windows tetapi saya tidak pernah mencobanya. berikut ini adalah debian khusus tetapi harus bekerja dengan cara yang sama di bawah windows / distro lainnya; Anda tidak akan kehilangan riwayat svn saat bermigrasi ...
instal perangkat lunak yang diperlukan:
dalam konfigurasi untuk vhost apache [symlink ke apache dapat ditemukan di / etc / apache2 / situs-enabled]. di dalam VirtualHost tambahkan:
pastikan bahwa apache memuat modul ldap:
pastikan apache dapat memodifikasi file di repositori svn:
svn_authz Anda harus berisi aturan yang memberi tahu siapa yang dapat mengakses apa. dalam kasus saya:
Anda dapat mengetahui lebih lanjut tentang sintaks untuk file itu di sini .
jika Anda mencapai sejauh itu - pengguna Anda dapat memeriksa dari http: //server.address/svn/ menggunakan klien svn [tortoise / cmdline / visual svn], mereka akan melihat semua riwayat dan terus membaca / menulis untuk itu.
sumber
Anda bisa menggunakan saslNTML sebagai ganti GSSAPI. Dll saslNTML diinstal dengan TSVN secara default, dan saya pikir itu juga termasuk dalam klien svn dari collab.net.
ada dua opsi yang harus Anda atur di file konfigurasi sasl Anda:
dan opsional
dan tentu saja Anda harus mengatur daftar mech di file konfigurasi Anda untuk memasukkan NTML.
Saya hanya pernah mencoba ini dengan TSVN ketika saya mengimplementasikan semuanya. Tapi saya punya orang lain menyiapkan server pengujian untuk saya jadi saya tidak tahu apa opsi konfigurasi yang tepat.
sumber