2014-04-23 2 views
1

PHP를 활성 디렉토리에 연결하고 사용자 인증을 수행하려면 어떻게해야합니까? 나는 WAMP를 사용하여 로컬에서 LDAP를 시도했지만 지금까지 성공하지 못했을 것이다. 내 Active Directory 도메인 "davidecuriosidade.onmicrosoft.com"도메인을 변경Microsoft Azure 액티브 디렉토리를 사용하는 PHP 사용자 인증

$link = ldap_connect('domain.com'); // Your domain or domain server 
if(! $link) 
{ 
    // Could not connect to server - handle error appropriately 
} 
ldap_set_option($link, LDAP_OPT_PROTOCOL_VERSION, 3); // Recommended for AD 

// Now try to authenticate with credentials provided by user 
if (! ldap_bind($link, '[email protected]', 'SomeSecret')) 
{ 
    // Invalid credentials! Handle error appropriately 
} 
// Bind was successful - continue 

,하지만 난 더 성공 말했다과 같이

나는이 시도. 내 활성 디렉토리에 구성이 있습니까?

답변

0

LDAP에 바인딩 할 때 사용자는 클래식 "사용자 이름"/ "비밀번호"조합이 아닌 DN에 바인딩됩니다.

이 DN은 Active Directory 구성의 설정에 고유 한 LDAP 형식으로 작성됩니다. 당신의 Active Directory 설정에서 가정 한 것입니다 sAMAccountName=myuser,ou=GroupAllowed,dc=domain,dc=com

는 "참고 MyUser가"하는 "그룹"(조직 구성 단위) 이름이 "GroupAllowed"를 가지고 :

따라서 대신 [email protected]

의 그것은 더 같이된다 해당 그룹에있는 사용자의 계정 이름 또한 "도메인"은 AD 환경의 도메인 이름이고 "com"은 도메인의 TLD입니다.

+0

어떻게 수정할 수 있습니까? $ user = sAMAccountName = myuser, ou = GroupAllowed, dc = domain, dc = com과 같은 것입니까? – DavideBar

+0

문자열을 연결해야합니다. 내 조언은 다음과 같습니다 : – Danoweb

+0

$ bind = 'sAMAccountname ='. $ username. ', ou ='. $ 그룹. ', dc = 도메인, dc = com'; 또는 해결책 : $ bind = 'sAMAccountname ='같이 갈 수도 있습니다. $ 사용자 이름; $ bind. = ', ou ='. $ 그룹; $ bind. = ', dc = domain, dc = com'; 그러면 다음과 같이됩니다 : ldap_bind ($ link, $ bind, 'SomeSecret') – Danoweb

관련 문제