PHP에서 Windows 도메인 공유 드라이브의 파일에 대한 액세스 구현
<p>PHP/IIS 서버에서 제공해야 하는 많은 문서가 독립 실행형 컴퓨터에 저장되어 있습니다. 문제는 문서 드라이브가 Active Directory 도메인 머신에 연결되어 있고 웹 서버는 연결되어 있지 않기 때문에 PHP가 드라이브에 액세스하는 데 필요한 인증된 AD 사용자를 어디에 제공해야 할지 잘 모르겠습니다. </p>
<p>제가 만든 새 Windows 사용자로 실행되는 PHP를 호출하는 IIS 응용 프로그램 풀이 있습니다(응용 프로그램 풀은 "ID"로 설정하고 웹 사이트는 익명 인증 사용자로 설정). 나는 이 새로운 사용자로 서버에 로그인하고 매핑된 네트워크 드라이브를 설정했지만 몇 가지 조사 후에 이것이 막다른 골목이라고 생각했습니다. 서비스가 매핑된 드라이브를 마운트하는 방식으로 Windows에 로그인하지 않는다는 것을 읽었습니다. </p>
<p>IP 주소로만 참조하는 것이 작동에 더 가깝지만 인증 오류가 발생합니다. 온라인에서 찾은 주요 솔루션은 드라이브에 대한 액세스 권한이 있는 사용자로 응용 프로그램 풀을 실행하는 것입니다. 그러나 서버가 해당 Windows 도메인에 없기 때문에 이것이 가능한지 모르겠습니다. (하지만 저도 AD 전문가는 아닙니다)</p>
<pre class="brush:php;toolbar:false;">echo shell_exec('whoami') //내가 생성한 Windows 사용자의 이름을 출력합니다.
echo scandir('\\192.168.1.120\data$'); //사용자 이름/비밀번호를 찾을 수 없습니다.
echo Trim(shell_exec('dir \\192.168.1.120\data$ 2>&1')) //사용자 이름 또는 비밀번호가 올바르지 않습니다.
echo scandir('Z:\'); // 경로를 찾을 수 없다는 PHP 경고
echo Trim(shell_exec('dir Z: 2>&1')); //경로를 찾을 수 없습니다</pre>
<p>해킹이 아닌 간단한 솔루션이 없다면 고객이 웹 서버를 AD 도메인에 넣을 수 있는지는 알 수 있지만, 그것이 다른 서비스에 의도하지 않은 부작용을 초래할지는 알 수 없습니다. 서버가 실행 중입니다. </p>