Apache mod_auth_kerb dan grup pengguna LDAP

12

Saya telah mempertimbangkan untuk menggunakan mod_auth_kerbserver web internal kami untuk mengaktifkan SSO. Satu masalah jelas yang bisa saya lihat adalah bahwa ini merupakan pendekatan semua-atau-tidak sama sekali, baik semua pengguna domain Anda dapat mengakses situs atau tidak.

Apakah mungkin digabungkan mod_auth_kerbdengan sesuatu seperti mod_authnz_ldapmemeriksa keanggotaan grup di grup tertentu di LDAP? Saya kira KrbAuthoritativepilihannya ada hubungannya dengan ini?

Juga, seperti yang saya mengerti, modul menetapkan nama pengguna username@REALMsetelah otentikasi, tetapi tentu saja dalam direktori pengguna disimpan sebagai nama pengguna saja. Selain itu, beberapa situs internal yang kami jalankan seperti trac sudah memiliki profil pengguna yang ditautkan ke setiap nama pengguna. Apakah ada cara untuk mengatasi ini, mungkin dengan menanggalkan bit ranah setelah otentikasi entah bagaimana?

Kamil Kisiel
sumber
Hanya pertanyaan tentang implementasi, apakah Anda menggunakan Windows ADS untuk ranah kerberos atau implementasi lainnya?
Jeremy Bouse
OpenDirectory Apple yang datang dengan MIT Kerberos v5
Kamil Kisiel
Oke ... Belum pernah bekerja dengan OpenDirectory Apple sebelumnya. Saya bisa mendapatkan Apache untuk mengautentikasi menggunakan NTLM terhadap Windows ADS menggunakan kredensial workstation mereka dan kemudian membatasi ke grup tertentu.
Jeremy Bouse
Tanpa menghapus ranah dari nama pengguna, Anda dapat menggunakan atribut alternatif dalam permintaan LDAP untuk mencari entitas pengguna, misalnya atribut "userPrincipalName" di Ms ActiveDirectory.
Yves Martin

Jawaban:

13

Sekarang dimungkinkan dalam mod_auth_kerb 5.4 untuk menghapus realm dari REMOTE_USER dengan direktif konfigurasi berikut:

KrbLocalUserMapping On

styro
sumber
Wow, sepertinya ini dirilis pada 2008, tetapi tidak disebutkan (versi atau parameter) di situs web mereka.
Kamil Kisiel
7

Itulah inti pemisahan authn / authz di 2.2 yang dapat Anda otentikasi dengan satu mekanisme, dan otorisasi dengan yang lain. Otentikasi memberi Anda pengaturan REMOTE_USER, yang kemudian dapat Anda gunakan melawan authz_ldap. Selain itu, authn_ldap mencari kemudian untuk pengguna (mengkonversi REMOTE_USER ke DN jika ditemukan, menggunakan kriteria pencarian yang harus Anda tentukan - misalnya mencari CN). Kemudian, ketika DN ditemukan, Anda dapat menentukan persyaratan pada objek LDAP. Misalnya, jika semua pengguna yang mengakses sumber daya harus dalam OU yang sama, Anda tentukan

memerlukan ldap-dn ou = Manajer, o = Perusahaan

Martin v. Löwis
sumber
Apakah mungkin untuk memodifikasi variabel REMOTE_USER sebelum diteruskan ke tahap otorisasi? Misalnya, untuk menghapus bagian REALM dari nama pengguna Kerberos untuk pencarian di basis data LDAP?
Kamil Kisiel
Bukan dengan cara konfigurasi. Namun, ini relatif mudah dilakukan dalam kode sumber modul Apache. Cari tugas untuk meminta-> pengguna dan sesuaikan; kemudian bangun kembali modul dengan apxs2 -c. OTOH, mungkin lebih mudah untuk memasukkan nama Kerberos ke LDAP, di bawah atribut terpisah, dan meminta modul ldap mencari pengguna dengan atribut itu.
Martin v. Löwis
2

Debian stable sekarang dikirimkan dengan versi 5.4 dari mod_auth_kerb .

Jika Anda terjebak dengan versi yang lebih lama, halaman ini menjelaskan bagaimana mod_map_user dapat digunakan dalam kombinasi dengan mod_auth_kerb dan mod_authnz_ldap.

jcharaoui
sumber