2012-07-18 2 views
3

La société pour laquelle je travaille a migré son central local vers une solution Office 365 hébergée. Nous sommes en train de construire plusieurs sites Web hébergés de l'extérieur (sur notre réseau local) et nous aimerions utiliser l'authentification LDAP pour nous appuyer sur notre base d'utilisateurs existante et hébergée. Quelqu'un peut-il expliquer ou pointer vers une documentation d'un moyen d'utiliser PHP et LDAP pour se connecter à un AD hébergé à distance (dans ce cas Office 365) et authentifier les utilisateurs?Utilisation de PHP et de LDAP pour se connecter à Microsoft Office 365

Nous vous remercions de votre temps et de vos efforts.

+0

Je voudrais vraiment * espérer * que le répertoire distant n'est pas directement accessible sur Internet. Avez-vous un VPN mis en place pour le DC distant ou quelque chose? – DaveRandom

+0

Hey Dave, je suppose que je ne me suis pas vraiment fait comprendre. Tous les exemples PHP/LDAP que je peux trouver consistent en un script PHP sur le même serveur que le DC. Ce qui m'intéresse est d'utiliser PHP/LDAP depuis un hébergeur pour se connecter à un Office 365 hébergé (hébergé par Microsoft) et authentifier les informations d'identification de l'utilisateur par rapport à cela. –

+0

Oui, je suis à peu près certain que ce n'est pas possible. Je ne suis en aucun cas un expert sur Office 365 (bien au contraire), mais abstraction faite de cette couche, il serait beaucoup trop risqué pour M $ d'ouvrir le serveur LDAP à l'Internet public comme ça. Je serais * très * surpris s'ils le permettent. – DaveRandom

Répondre

4

Ceci est possible. Microsoft a récemment publié un Developer Preview pour sa plate-forme cloud Windows Azure qui fonctionne comme de nombreux autres services de cloud computing (Amazon, Pagoda Box, Heroku). Parallèlement à ce nouveau produit, les applications développées peuvent exploiter l'authentification unique à l'aide de vos informations d'identification de compte Office365.

Voici quelques articles qui vont sur le processus PHP:

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

Notes:

  • Exemple a sa source dans un git . Ce repo n'inclut pas un fichier .csproj référencé, donc vous devrez construire le projet avec les 3 fichiers source inclus. Si je peux le faire, vous pouvez le faire :).
  • Il convient également de noter qu'après l'authentification Office365 est terminée et réachemine à votre application, il s'attend à ce que l'URL de retour soit HTTPS, si ce n'est pas vous obtiendrez une erreur (ou du moins je l'ai fait).
+0

ci-dessus Le lien est 404; [link] (http: //www.lewisroberts.com/2015/09/04/single-sign-on-avec-azure-ad-in-php /) est approfondie et s'étend sur l'original – jaytho

-1

J'ai fait une authentification ldap et d'autres choses en utilisant php c'est l'authentification de base assurez-vous que votre DN est correct lorsque vous essayez d'authentifier.

 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

Merci pour la réponse ... Après avoir regardé votre exemple, ma question serait: Quelles devraient être les variables LDAPSERVER et LDAPBINDDN définies pour se connecter au serveur Office 365? –

+0

le LDAPSERVER est l'emplacement de votre serveur ou de son adresse et pour le LDAPBINDDN lisez ceci http://www.ldapman.org/articles/intro_to_ldap.html car vous devez d'abord savoir où se trouve votre utilisateur dans le répertoire actif – user1415567

+2

@ user1415567 Je me demande aussi ce que "mon serveur" est supposé être. Je n'ai pas de serveur, je suis avec Office365. Il y a des serveurs par compte pour le courrier sur xyz.mail.protection.outlook.com et pour le web sur xyz.sharepoint.com. Mais ça ne va pas en être un, n'est-ce pas? – John

Questions connexes