1

Comme d'habitude, il s'agit d'une demande bizarre et non négociable de la part de la direction générale. Quoi qu'il en soit, l'histoire est comme suit:Comment utiliser PHP pour s'authentifier auprès d'un distant Microsoft Exchange 2010

  • Je vais construire un site Web à l'emplacement A, laissez-dire au Royaume-Uni (avec CentOS, PHP, Apache)
  • Il y a un formulaire de connexion sur elle, et l'utilisateur peut entrer leur nom d'utilisateur Exchange 2010 (email), et mot de passe pour se connecter. Lorsque Exchange 2010 est à l'emplacement B, disons US.

Donc, le problème est de savoir comment je peux m'authentifier avec un serveur distant Exchange 2010?

Plusieurs suggestions me lancées mais je ne suis même pas sûr que cela peut être fait en premier lieu ...

  • Pouvons-nous tirer parti OWA Exchange 2010? Pouvons-nous utiliser ActiveSync?
  • Pouvons-nous utiliser EWS? (Services Web Exchange)

Je ne suis pas familier avec les technologies connexes de Microsoft, donc ma question en bref est-ce qu'il existe une méthode de service Web ou similaire où je peux faire mon authentification?

Cordialement

Répondre

1

Vous voulez dire probablement authentifie contre Active Directory dans le serveur Exchange est integrated.Then vous pouvez utiliser LDAP:

Authenticating in PHP using LDAP through Active Directory

+1

Merci pour l'info :) je l'ai mentionné LDAP, mais il nous oblige à configurer et à déployer LDAP, d'où Exchange a été mentionné pour voir s'il est possible que nous puissions l'exploiter.Par exemple, ActiveSync? OWA? – forestclown

1

je regarderais dans la bibliothèque adLDAP sur Source Forge. Email moi et je vais vous envoyer ma documentation, il faut environ 20 minutes pour configurer et tout ce dont vous avez besoin est MS Active Directory, vous n'avez pas besoin de LDAP. KWSoutherlandJr À yahoo dot com.

adLDAP.courceforge.net

1

Oui, vous pouvez utiliser le service Web Exchange pour ce faire, je vous recommande l'API gérées de. Télécharger ici: http://www.microsoft.com/download/en/details.aspx?id=13480, la documentation est ici: http://msdn.microsoft.com/en-us/library/dd633710%28EXCHG.80%29.aspx

Voici comment vous pourriez le faire. off premiers comprennent les bons espaces de noms:

// use the exchange library: 

using System.Security.Cryptography.X509Certificates; 
using Microsoft.Exchange.WebServices.Data; 

Ensuite, écrire un code similaire à ceci:

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1); 

// If you've got a dodgy SSL cert on your exchange box then do this: 

System.Net.ServicePointManager.ServerCertificateValidationCallback = 
    delegate(
     Object obj, 
     X509Certificate certificate, 
     X509Chain chain, 
     SslPolicyErrors errors) 
    { 
     return true; 
    }; 

service.Credentials = new WebCredentials(Username, Password, domain); 

service.Url = new Uri(url); 

// this will fail if the username+password are incorrect: 

Folder.Bind(service, WellKnownFolderName.MsgFolderRoot); 
+0

Oups, réalisé que vous espériez le faire en PHP, faites-moi savoir si vous avez besoin d'aide pour traduire cela. – Rocklan

+0

Merci :) J'ai trouvé une version de PHP qui utilise NetworkCredentials/NTLM. Mais vous ne savez pas comment le faire en PHP avec WebCredentials? (Où il utilise l'email comme nom d'utilisateur) – forestclown

1

Vous pouvez donner EWSWrapper essayer - http://ewswrapper.lafiel.net/ Il est un wrapper PHP pour les services Web Exchange. Cela vous donnera une idée de comment vous pouvez vous authentifier avec Ex Server et ce qui peut être fait avec EWS. La version de Python a une authentification un peu meilleure car elle passe par différentes méthodes d'authentification.

En outre, vous pouvez jeter un coup d'oeil @ ce: Access Exchange Web Services with PHP and cURL

Vive ~

Questions connexes