Melaksanakan akses kepada fail pada pemacu kongsi domain Windows dalam PHP
P粉323224129
2023-08-30 23:11:13
<p>Saya mempunyai sekumpulan dokumen yang disimpan pada mesin kendiri yang saya perlukan untuk berkhidmat daripada pelayan PHP/IIS. Masalahnya ialah pemacu dokumen disambungkan ke mesin domain Active Directory dan pelayan web tidak disambungkan, jadi saya tidak pasti di mana untuk menyediakan pengguna AD yang disahkan yang PHP perlukan untuk mengakses pemacu. </p>
<p>Saya mempunyai kumpulan aplikasi IIS yang memanggil PHP, berjalan sebagai pengguna Windows baharu yang saya cipta (ditetapkan kepada "Identiti" untuk kumpulan aplikasi dan pengguna Pengesahan Tanpa Nama untuk tapak web). Saya log masuk ke pelayan sebagai pengguna baru ini dan menyediakan pemacu rangkaian yang dipetakan, tetapi selepas beberapa penyelidikan saya fikir ini adalah jalan buntu saya membaca bahawa perkhidmatan itu tidak akan log masuk ke Windows dalam apa-apa cara untuk memasang pemacu yang dipetakan. </p>
<p>Merujuk hanya melalui alamat IP lebih hampir berfungsi, tetapi saya mendapat ralat pengesahan. Penyelesaian utama yang saya temui dalam talian ialah menjalankan kumpulan aplikasi sebagai pengguna dengan akses kepada pemacu, tetapi saya tidak tahu sama ada itu mungkin kerana pelayan tidak berada dalam domain Windows itu. (Tetapi saya juga bukan pakar AD)</p>
<pre class="brush:php;toolbar:false;">echo shell_exec('whoami'); //Keluarkan nama pengguna Windows yang saya buat
echo scandir('\\192.168.1.120\data$'); //Tidak dapat mencari nama pengguna/kata laluan
echo trim(shell_exec('dir \\192.168.1.120\data$ 2>&1')); //Nama pengguna atau kata laluan tidak betul
echo scandir('Z:\'); // PHP memberi amaran bahawa laluan tidak dapat ditemui
echo trim(shell_exec('dir Z: 2>&1')); //path not found</pre>
<p>Jika tiada penyelesaian yang mudah dan bukan penggodaman, saya dapat melihat sama ada pelanggan boleh meletakkan pelayan web dalam domain AD, tetapi saya tidak tahu sama ada ia akan mempunyai kesan sampingan yang tidak diingini pada perkhidmatan lain pelayan sedang berjalan. </p>
Jika ini adalah awam dan tidak memerlukan pengguna untuk mengesahkan ke direktori, jangan letakkannya dalam domain. Walau bagaimanapun, jika anda memerlukan beberapa jenis pengesahan atau mencari maklumat daripada AD, anda mungkin mempertimbangkan untuk menjalankan Active Directory Application Mode (ADAM) dalam DMZ. Anda mungkin perlu menyalin maklumat yang berkaitan dari AD ke partition aplikasi, kerana ADAM tidak menyegerakkan partition AD standard.
Sudah tentu, jika pelayan web berada pada rangkaian yang sama dengan pengawal domain, ia boleh ditambah pada domain untuk kebolehurusan tambahan.