2012-07-18 2 views
3

내가 속한 회사에서 로컬 교환을 호스팅 된 Office 365 솔루션으로 마이그레이션했습니다. 우리는 외부 웹 사이트 (우리의 로컬 네트워크에) 호스팅 웹 사이트를 구축하는 과정에 있으며 LDAP 인증을 사용하여 기존의 호스트 된 사용자 기반을 구축하고자합니다.PHP와 LDAP를 사용하여 Microsoft Office 365에 연결

누구든지 PHP 및 LDAP를 사용하여 원격으로 호스팅 된 AD (이 경우 Office 365)에 연결하고 사용자를 인증하는 방법에 대해 설명하거나 지적 할 수 있습니까?

시간과 노력에 감사드립니다.

+0

나는 원격 디렉토리가 인터넷을 통해 직접 액세스 할 수 없다는 것을 매우 기대한다. 당신은 원격 DC 또는 뭔가 VPN을 설정해야합니까? – DaveRandom

+0

헤이 데이브, 나는 정말로 나 자신을 분명히하지 않았다고 생각한다. 필자가 볼 수있는 PHP/LDAP 예제는 모두 DC와 동일한 서버에 PHP 스크립트로 구성되어 있습니다. 내가 관심있는 부분은 웹 호스트에서 PHP/LDAP를 사용하여 호스팅 된 Office 365 (Microsoft에서 호스팅)에 연결하고 이에 대한 사용자 자격 증명을 인증하는 것입니다. –

+0

예 저는 가능하지 않다는 것을 확신합니다. 필자는 Office 365의 전문가는 아니지만 그 계층에서 추상화하면 LDAP 서버를 공개 인터넷에 개방하는 것이 M $에 비해 너무 큰 보안 위험이 될 수 있습니다. 그들이 이것을 허락한다면 나는 매우 놀랄 것이다. – DaveRandom

답변

4

가능합니다. Microsoft는 최근 다른 많은 클라우드 컴퓨팅 서비스 (Amazon, Pagoda Box, Heroku)와 같은 기능을하는 Windows Azure 클라우드 플랫폼에 대한 개발자 미리보기를 출시했습니다. 이 신제품과 함께 개발 된 응용 프로그램은 Office365 계정 자격 증명을 사용하여 Single Sign On을 활용할 수 있습니다. 여기

는 PHP 과정을 통해 갈 몇 가지 기사입니다

  1. How to implement single sign-on with Windows Azure Active Directory - PHP Application
  2. Get Started with Windows Azure Active Directory

주 :

  • 예 하나는 자식의 repo에있는, 그것의 근원이있다 . 이 repo에는 참조 된 .csproj 파일이 포함되어 있지 않으므로 포함 된 3 개의 소스 파일로 프로젝트를 빌드해야합니다. 내가 할 수 있다면, 할 수있다. :).
  • 또한 Office365 인증이 완료되고 응용 프로그램으로 다시 라우팅 된 후에는 반환 URL이 HTTPS가 될 것으로 예상됩니다. 그렇지 않으면 오류가 발생합니다 (또는 적어도 내가 한 것임).
+0

링크는 404입니다. [link] (http : //www.lewisroberts.co.kr/2015/09/04/싱글 사인온 (azure-ad-in-php /))은 철저하고 원본을 확장합니다 – jaytho

-1

나는 LDAP 인증과 다른 것들을 PHP를 사용하여 수행했는데 이것은 기본 인증이므로 인증을 시도 할 때 DN이 올바른지 확인하십시오.

 define("LDAPSERVER","192.168.0.1"); // your server 
     define("LDAPBINDDN","cn=Worker,dc=mlonline,"); 
     define("LDAPBINDPW","FakePassword"); 


     $ds=ldap_connect(LDAPSERVER); 
     if($ds){ 
      try{ 
        $bind=ldap_bind($ds,LDAPBINDDN,LDAPBINDPW); 
        if($bind){ 
          //yeah authenticated 
        }else{ 
         throw new Exception('Cannot Connect to server Authentication Failed'); 
        } 

      }catch(Exception $e){ 
       throw $e; 
      } 
     }else{ 
      throw new Exception('Server Down'); 
     } 
+3

응답 해 주셔서 감사합니다. 예제를 살펴본 후 제 질문은 다음과 같습니다. LDAPSERVER 및 LDAPBINDDN 변수를 Office 365 서버에 연결하기 위해 정의해야하는 항목은 무엇입니까? –

+0

LDAPSERVER는 서버 또는 해당 주소의 위치이며 LDAPBINDDN의 경우 사용자가 활성 디렉토리에있는 곳을 먼저 알아야하므로 http://www.ldapman.org/articles/intro_to_ldap.html을 읽으십시오 – user1415567

+2

@ user1415567 나는 또한 "내 서버"가되어야 할 것이 무엇인지 궁금합니다. 저는 서버가 없으며 Office365에 있습니다. xyz.mail.protection.outlook.com에는 메일에 대한 계정 별 서버가 있고 xyz.sharepoint.com에는 웹용 계정 서버가 있습니다. 하지만 그 중 하나가 될 수는 없지, 그렇지? 위의 – John

관련 문제