Mercurial (hg) dengan direktori aktif

15

Bisakah saya mengatur Mercurial untuk mengautentikasi pengguna di Active Directory? Dalam kasus saya, hg dapat berjalan di Windows, Linux atau FreeBSD, tetapi saya harus menggunakan pengguna AD.

Catatan: jika memungkinkan, silakan tunjuk saya ke tutorial.

Zote
sumber

Jawaban:

11

Baiklah, saya mulai dengan tutorial ini .

Setelah saya selesai saya membuat perubahan tambahan berikut di server (Windows 2008):

  • IIS yang dikonfigurasi untuk menggunakan SSL;
  • Otentikasi anonim yang dinonaktifkan untuk situs;
  • Diaktifkan Dasar dan otentikasi Windows untuk situs;
  • Izin NTFS yang dikonfigurasi pada folder repositori.

Juga perlu menambahkan baris berikut ke .hg\hgrcfile repositori Anda :

Di sisi klien saya harus secara eksplisit menentukan nama pengguna dan kata sandi.

[web]
allow_push = *
Bupati
sumber
5

Jika Anda mencari beberapa sistem terintegrasi yang dapat bekerja di windows, unix, dan autentikasi ke AD / LDAP, cobalah RhodeCode http://rhodecode.com Ini adalah contoh lokal dari bitbucket / github yang melayani repositori. Muncul dengan sistem izin dan manajemen pengguna yang mudah, review kode dll.

marcinkuzminski
sumber
Yay untuk RhodeCode! :-)
Martin Geisler
4

Saya menulis posting blog 4 bagian beberapa bulan yang lalu yang memungkinkan Anda untuk menggunakan Active Directory / IIS untuk meng-host server web Mercurial. Ini bekerja dengan baik:

http://www.endswithsaurus.com/2010/05/setting-up-and-configuring-mercurial-in.html

Ini menuntun Anda melalui:

  • Mengatur Mercurial dalam IIS
  • Mengkonfigurasi ekstensi ISAPI untuk Python
  • ISAPI menulis ulang untuk menyembunyikan URL jelek
  • Konfigurasi hak keamanan menggunakan Active Directory
  • Kustomisasi UI web
BenAlabaster
sumber
+1, posting blog yang bagus. Kami sedang menguji coba Mercurial untuk proyek Windows dan Linux kami. Adakah kemungkinan Anda akan memperbarui panduan ini untuk IIS 7.5?
jscott
Saya akan segera setelah saya memutakhirkan server saya.
BenAlabaster
3

Ben sudah memberi Anda panduan yang baik untuk mengatur Mercurial di IIS dengan AD.

Saya hanya ingin menambahkan, bahwa hal utama yang perlu Anda ketahui adalah bahwa skrip CGI bawaan (Cepat) di Mercurial tidak mengautentikasi pengguna . Skrip CGI yang kami suplai bergantung pada server web front-end untuk melakukan otentikasi. Jadi, Anda harus mengatur Apache, IIS, nginx, ... untuk melakukan otentikasi sebelum mereka memanggil skrip. (Namun, Anda dapat menggunakan RhodeCode yang sangat baik jika Anda menginginkan sistem seperti Bitbucket dengan dukungan LDAP yang dapat Anda hubungkan ke AD juga.)

Pemisahan masalah ini membuat Mercurial sangat fleksibel: jika Anda ingin otentikasi Direktori Aktif, maka Anda cukup menggunakan plugin standar untuk server web Anda untuk melakukannya. Banyak situs yang sudah memiliki pengaturan ini dan Mercurial akan "bekerja" :-)

Jadi Mercurial tidak pernah memeriksa kata sandi apa pun - bagian otentikasi. Tetapi dapat melakukan otorisasi , yang berarti dapat mengizinkan atau melarang pengguna mendorong atau menarik, dll. Hal ini dilakukan berdasarkan nama pengguna yang disimpan dalam variabel CGI standarREMOTE_USER . Terserah server web untuk mengatur variabel ini setelah mengautentikasi pengguna jarak jauh.

Dalam Mercurial, nama pengguna dicocokkan dengan allow_pushdan allow_readdaftar di [web]bagian untuk menentukan apakah pengguna diizinkan untuk mendorong atau menarik / mengkloning repositori yang bersangkutan. Ini tentu saja dapat dikonfigurasikan berdasarkan per-repositori dengan mengedit .hg\hgrcfile di setiap repositori.

Martin Geisler
sumber