2008-09-17 4 views
1

나는 다음과 같은 코드를 가지고 : 나는 명령 프롬프트에서 실행하면COM을 사용하여 PHP/IIS에서 Active Directory 그룹 구성원을 읽는 방법?

$bind = new COM("LDAP://CN=GroupName,OU=Groups,OU=Division,DC=company,DC=local"); 

을, 그것을 잘 실행됩니다. 그것이 IIS/PHP/ISAPI 하에서 실행될 때, 그것은 barfs합니다.

Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `LDAP://CN=...[cut]...,DC=local': 
An operations error occurred. ' in index.php 
Stack trace: 
    #0 index.php: com->com('LDAP://CN=...') 
    #1 {main} thrown 

IIS는 (어떤 기본 다이제스트, 더 익명) Windows 인증에 대해 구성되지 않으며, 내가 명령 프롬프트와 동일한 사용자로 연결하고있다. IIS 로그 파일이나 이벤트 로그에서 특정 오류를 찾을 수 없습니다.

이 연습의 주된 목적은 내 자격 증명을 내 스크립트에 보관하지 않고 IIS 인증을 사용하여 활성 디렉터리로 전달하는 것입니다. LDAP를 사용하여 동일한 작업을 수행 할 수 있지만 자격 증명을 전달할 수 없다는 것을 알고 있습니다.

아마 내가 ASP로 이식하려고 할 때 발생하는 오류와 관련이 있습니다. 오류 80072020 (현재 찾고있는 오류).

이벤트 로그는 비정상적으로 표시되지 않습니다. 경고도 오류도 없습니다. 전체 보안 감사가 활성화되고 (보안 정책의 모든 항목에서 성공 및 실패) 웹 페이지에 대해 인증 한 모든 사용자에 대해 Windows 로그온이 성공한 것으로 나타납니다 (예상 됨).

답변

2

Windows 인증을 사용하고 있으므로 IIS에서 Windows 이벤트 로그에 일부 보안 이벤트가있을 수 있습니다. 보안 이벤트와 응용 프로그램 이벤트에 대한 이벤트 로그를 확인하고 사용 권한 문제가 있는지 확인합니다.

또한 기본적으로 LDAP를 통해 광고와 통신하기 때문에 COM 대신 PHP 용 네이티브 LDAP 라이브러리를 사용할 수 있습니다.

php.ini에서 확장 기능을 활성화해야합니다. 가치가있는 것 같습니다.

0

글쎄, 당신은 LDAP를 사용하려면, 내가 우리가 마이 아 Mailguard 기능에 사용하는 LDAP 인증 코드를 지적하자 : 당신이 그래서, 나는 그것이 LDAP 버전 3을 필요로 생각 lauth_ldap

라는 이름의 함수를 찾아 ldap에 해당 매개 변수를 설정하십시오. 암호를 확인하기 위해 ldap bind 함수를 사용하여 LDAP 서버를 인증합니다.

0

저는 AD/COM/IIS 전문가가 아니지만 사용 권한 문제 일 수 있습니다. 예를 들어 IUSR_computername 사용자가 디렉토리 내에서 적절한 액세스 권한을 갖고 있지 않거나 특정 사용자로 바인딩하지 않았습니까?

나를위한 경고 벨은 명령 줄에서 (예 : 권한으로 실행 중) 정상적으로 실행되지만 IIS에서 (예 : 권한이 아니라면) 실패합니다.

+0

이 시나리오에서는 IUSR 계정이 사용되지 않습니다. 사실 데이터베이스에 연결할 수 있고 인증 정보 (PHP의 odbc_connect)를 통과하기 때문에 인증 부분이 작동하고 있다는 증거가 있습니다. – Martin

2

지금은 효과가있는 것 같습니다.

Active Directory의 컴퓨터 개체에 대해 "위임 용으로이 컴퓨터 트러스트"를 사용했습니다. 일반적으로 IIS는 위임 트러스트를 설정하지 않은 상태에서 사용자를 인증 한 다음 네트워크를 통해 (필자의 경우 도메인 컨트롤러에서 Active Directory를 쿼리하여) 가장 할 수 없습니다.

다이제스트가 가장 토큰으로 사용할 수 없으므로 NTLM이나 다른 다이제스트 인증이 아닌 Kerberos를 사용하여 인증해야합니다.

PHP 스크립트와 ASP 스크립트가 모두 수정되었습니다.

관련 문제