Saya sudah bekerja otentikasi LDAP dengan pengaturan berikut
AuthName "whatever"
AuthType Basic
AuthBasicProvider ldap
AuthLDAPUrl "ldap://server/OU=SBSUsers,OU=Users,OU=MyBusiness,DC=company,DC=local?sAMAccountName?sub?(objectClass=*)"
Require ldap-group CN=MySpecificGroup,OU=Security Groups,OU=MyBusiness,DC=company,DC=local
Ini berfungsi, namun saya harus memasukkan semua pengguna yang ingin saya otentikasi MySpecificGroup
. Tetapi pada server LDAP saya sudah mengkonfigurasi yang MySpecificGroup
juga berisi grup MyOtherGroup
dengan daftar pengguna lain.
Tetapi para pengguna MyOtherGroup
itu tidak diautentikasi, saya harus menambahkan semuanya secara manual MySpecificGroup
dan pada dasarnya tidak dapat menggunakan pengelompokan bersarang. Saya menggunakan Windows SBS 2003.
Apakah ada cara untuk mengkonfigurasi Apache LDAP untuk melakukan ini? Atau adakah masalah dengan kemungkinan rekursi tak terbatas dan karenanya tidak diizinkan?
sumber
AuthnProviderAlias
untuk saat ini. Jika tidak ada yang akan menawarkan solusi untuk Apache 2.2, hadiah adalah milik Anda :)Selain itu
AuthLDAPSubGroupDepth
, yang hanya tersedia di apache 2.4, dimungkinkan, saat menggunakan Microsoft AD LDAP, untuk melakukan otorisasi menggunakan grup bersarang dengan menggunakan aturan pencocokan LDAP_MATCHING_RULE_IN_CHAIN. Ini jauh lebih cepat daripada mencari subkelompok pada klien, karena dilakukan pada server DC dengan lebih sedikit permintaan melalui jaringan.String
1.2.840.113556.1.4.1941
adalah OID yang disebutLDAP_MATCHING_RULE_IN_CHAIN
. OID ini ditugaskan oleh Microsoft untuk digunakan dengan implementasi LDAP-nya (bagian dari Active Directory). Anda tidak dapat menggunakannya dengan server LDAP lainnya. Format manusia yang dapat ditebus adalah:iso(1).member_body(2).us(840).microsoft(113556).ad(1).as_schema(4).LDAP_MATCHING_RULE_IN_CHAIN(1941)
Dari dokumentasi Microsoft:
Lihat juga:
sumber
LDAP_MATCHING_RULE_IN_CHAIN
untuk mengambil keanggotaan grup rekursif dan meneruskannya sebagai header ke server backend (menggunakan Apache sebagai proxy terbalik) ??mod_authnz_ldap
tidak menyediakan ini. Namun Anda dapat menggunakanLDAP_MATCHING_RULE_IN_CHAIN
filter LDAP di aplikasi Anda. Lihat: stackoverflow.com/a/34075052/290087Sepertinya satu-satunya pilihan Anda di Apache 2.2 adalah mendaftar setiap grup yang disertakan oleh grup resmi utama Anda.
Ini harus masuk akal jika grup bersarang Anda tidak terlalu rumit.
Melintasi Domain AD (menggunakan dua server LDAP)
Anda dapat mengatur OpenLDAP dengan overlay slapd_meta yang berjalan di server web Anda untuk proksi otentikasi Anda.
/etc/ldap/slapd.conf akan terlihat seperti:
Kemudian, bait mod_authnz_ldap Anda akan terlihat seperti:
Ini akan membutuhkan beberapa pemijatan untuk membuatnya bekerja, tetapi saya pikir ini adalah ide umum.
sumber
Sementara solusi yang diberikan oleh @Mircea_Vutcovici bekerja untuk saya, satu-satunya kritik saya adalah bahwa orang mungkin akan mudah tersinggung ketika mereka melihat operator bitwise sedang digunakan.
Sebagai contoh, saya akan menyerahkan instalasi Apache Bloodhound, yang menggunakan Apache HTTPd sebagai ujung depan dengan auth grup AD, kepada sekelompok rekan pengembang. Mereka akan menghadapi masalah dengan operator bitwise. Admin tidak akan semudah itu ... Saya harap.
Yang sedang berkata, saya punya solusi yang tidak menggunakan operator bitwise dan yang tidak menggunakan beberapa definisi ldap-group.
Konfigurasi berikut ini berfungsi untuk saya:
Bagian penting adalah konfigurasi berikut:
AuthLDAPMaxSubGroupDepth tidak bekerja dengan sendirinya, atau ketika digabungkan dengan AuthLDAPSubgroupAttribute. Hanya ketika saya menggunakan AuthLDAPSubGroupClass yang auth terhadap sub kelompok mulai bekerja ... setidaknya untuk saya dan situasi saya.
sumber