Mengotentikasi Apache secara dinamis dengan LDAP berdasarkan pada String Permintaan?

11

Dimungkinkan untuk menggunakan sebagian dari permintaan URI sebagai masukan ke Require ldap-groupdirektif mod_authnz_ldap ?

Saya mencoba secara dinamis memeriksa akses ke banyak direktori proyek yang berbeda, semua di bawah http://testserver.com/projects/ , sehingga pengguna yang mengakses /projects/abcakan diperiksa untuk keanggotaan cn=abc,ou=groups,dc=test. Idealnya saya ingin melakukan ini tanpa membuat arahan Lokasi terpisah untuk setiap proyek, karena mungkin ada ratusan dari mereka.

Saya telah datang dengan ini, yang menggambarkan konsep umum, tetapi yang tidak berfungsi (project_name tidak menarik kembali konten variabel yang sebenarnya):

<Location /projects>
    SetEnvIf Request_URI "/projects/([-a-z0-9A-Z_]+)/" project_name=$1

    AuthType Basic
    AuthBasicProvider ldap
    AuthName "Restricted Resource - SVN (LDAP)"
    AuthLDAPURL "ldap://127.0.0.1:389/dc=test?uid"
    AuthLDAPGroupAttributeIsDN off
    AuthLDAPGroupAttribute memberUid
    Require ldap-group cn=%{project_name},ou=groups,dc=test
</Location>

Tolong?

Chris
sumber
Tidak memungkinkan. Taruhan terbaik Anda adalah mencoba sesuatu seperti mod_auth_external .
h0tw1r3

Jawaban:

0

Saya percaya Apache 2.4 memiliki lebih banyak untuk ditawarkan di bidang ini daripada 2.2 ... mungkin layak dilihat.

Atau, mungkin layak melihat membangun modul kustom Anda sendiri; itu tidak seseram kelihatannya - dengan asumsi Anda nyaman di C.

Demikian pula, bukankah mod_perl menawarkan banyak hal untuk memperluas Apache melalui pengait?

Cameron Kerr
sumber