Как использовать PHP для аутентификации на удаленном сервере Microsoft Exchange 2010 - PullRequest
1 голос
/ 04 января 2012

Как обычно, это странный и не подлежащий обсуждению запрос от высшего руководства. Во всяком случае, история выглядит следующим образом:

  • Я создам веб-сайт в местоположении A, скажем, в Великобритании (используя CentOS, PHP, Apache)
  • На нем есть форма входа, и пользователь может ввести свое имя пользователя Exchange 2010 (адрес электронной почты) и пароль для входа. Там, где Exchange 2010 находится в точке B, скажем, в США.

Итак, короче говоря, проблема в том, как мне пройти аутентификацию на удаленном Exchange 2010?

Есть несколько предложений, но я даже не уверен, что это можно сделать в первую очередь ...

  • Можем ли мы использовать OWA в Exchange 2010?
  • Можем ли мы использовать ActiveSync?
  • Можем ли мы использовать EWS? (Веб-службы Exchange)

Я не знаком со смежными технологиями Microsoft, поэтому мой вопрос вкратце: есть ли способ веб-службы или аналогичный метод, в котором я могу выполнить свою аутентификацию?

С наилучшими пожеланиями

Ответы [ 4 ]

1 голос
/ 12 января 2012

Вы можете попробовать EWSWrapper - http://ewswrapper.lafiel.net/ Это оболочка PHP для веб-служб Exchange. Это даст вам представление о том, как вы можете пройти аутентификацию с помощью Ex Server и что можно сделать с помощью EWS. Версия Python имеет немного лучшую аутентификацию, поскольку она циклически использует различные методы аутентификации.

Кроме того, вы можете посмотреть @ this: Доступ к веб-службам Exchange с помощью PHP и cURL

Приветствия ~

1 голос
/ 06 января 2012

Я бы заглянул в библиотеку adLDAP на Source Forge.Напишите мне, и я пришлю вам свою документацию, установка займет около 20 минут, и все, что вам нужно, это MS Active Directory, вам не нужен LDAP.KWSoutherlandJr В Yahoo точка ком.

adLDAP.courceforge.net

1 голос
/ 12 января 2012

Да, вы можете использовать Exchange Web Service для этого, я рекомендую управляемые API.Скачать здесь: http://www.microsoft.com/download/en/details.aspx?id=13480, документация здесь: http://msdn.microsoft.com/en-us/library/dd633710%28EXCHG.80%29.aspx

Вот как вы могли это сделать.Прежде всего, включите правильные пространства имен:

// use the exchange library:

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

Затем напишите код, подобный следующему:

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);
1 голос
/ 04 января 2012

Вы, вероятно, имеете в виду аутентификацию в Active Directory, в которую интегрирован сервер Exchange. Затем вы можете использовать LDAP:

Аутентификация в PHP с использованием LDAP через Active Directory

...