Новый способ интеграции с Microsoft Live@edu

image В предыдущей записи я довольно подробно описал возможности интеграции с Microsoft Live@edu. Я намеренно использую название программы в качестве объекта интеграции, поскольку в отличие от просто Windows Live в Microsoft Live@edu входит несколько технологий:

  1. Exchange Web Services (EWS) – для управления сервером Exchange: работа с письмами, календарем, контактами и др. объектами Exchange.
  2. Single Sign-On (SSO) – единый вход в Live@edu
  3. Windows PowerShell 2 (PS) – основная технология для управления Exchange Server и другими продуктами Microsoft. В Live@edu также отвечает за управление учетными записями.
  4. Windows Live Admin Center (WLAC - ManageDomain2 web-service) – служит для управления учетными записями Windows Live ID. Эта технология не поддерживается для Live@edu, поэтому крайне не рекомендуется использовать команды этого модуля.

Для каждой из перечисленных технологий существует свой набор SDK:

Кроме этого я реализовал 3 из 4 технологий (за исключением PS) в PHP, что позволяет интегрировать сервисы и с этой платформой.

При серьезном подходе на освоение всех 4 перечисленных блоков потребуется не более одной недели, при этом интеграция может быть довольно тесной – от авторизации на портале с помощью Windows Live ID до полноценных веб-частей электронной почты и календаря, а также интеграции с системой расписания.

В то же время, основная проблема с которой мы столкнулись при помощи во внедрении – это понимание разовой природы процесса (действительно, интеграцию достаточно один раз установить и забыть про необходимость поддержки), в связи с чем выделение на глубокое изучение Microsoft Live@edu недели времени невозможно.

Мы пошли навстречу и разработали уникальный продукт, являющийся к тому же бесплатным и с открытым кодом, – Live at Education Meta Web-Service. Основная задача этого веб-сервиса – предоставление разработчику единого интерфейса управления всем входящими в Live@edu технологиями. При этом в ближайшей версии мы внедрим поддержку единого входа в систему MSDN AA ELMS, о чем будет дополнительная запись блога.

Чтобы не быть голословным, приведу несколько примеров на языках .NET и PHP.

Операция

C# (для разработки можно использовать бесплатный продукт Visual Web Developer Express 2010)

PHP(требуется наличие библиотеки SOAP, входящей в основной пакет PHP)

Подключение веб-сервиса Добавление веб-ссылки и директива:
  • using liveservice;
  • laemws ws = new laemws();
  • ws.Credentials = new System.Net.NetworkCredential("<login>", "<pass>", "localhost");

$soap = new SoapClient(“https://localhost:1180/laemws.asmx?wsdl”,array('login' => ‘<login>’,'password' => ‘<password'>’));

Получение ссылки SSO для переадресации пользователя в почтовый ящик string url = ws.SSO_GetUrl(<email>, RedirectType.OutlookLive); $url = $soap->SSO_GetUrl(array("LiveID"=>$email,"RedirectUrl"=>https://outlook.com));
Количество сообщений в почтовом ящике

MailboxInfo mi = ws.EWS_Email_GetCount(<email>);

$response = $soap->EWS_Email_GetCount(array("LiveID"=>$email));

 

Оцените, как просто изменить первичный адрес электронной почты (например, если вуз генерирует ящик 123739457934859823@vuz.ru по уникальному коду-хэшу, предоставляя студенту право выбрать используемое имя, например vasya@vuz.ru, самостоятельно):

ws.PS_Execute("%{Invoke-Command -Session $rs {Set-Mailbox 123739457934859823@vuz.ru -EmailAddresses vasya@vuz.ru}}");

И все – никаких дополнительных библиотек, подключаемых к программному коду вашего продукта, никаких лишних модулей. Одна задача – один вызов метода веб-сервиса.

При этом на стороне веб-сервиса организовано автоматическое создание необходимых подключений при первом вызове соответствующего метода, а также кэширование подключения удаленной сессии PowerShell (этот процесс занимает 10-15 секунд и его вызов каждый раз для, например, изменения первичного SMTP-адреса был бы очень длительным), соединения EWS и т.д. для максимального повышения эффективности.

Веб-сервис можно размещать как непосредственно на сервере с порталом, так и на каком-либо централизованном узле, делая его доступным для нескольких проектов. При этом доступ к различным Live@edu/MSDN AA подпискам разграничен для разных пользователей.

Более подробно основные рекомендации по интеграции, а также подробности по работе с веб-сервисом, включая ссылки на загрузку и документацию, изложены здесь:

 

Несмотря на то, что веб-сервис фактически стал доступен всего 1-2 недели назад, мы уже подключили его для нескольких проектов с общим количеством пользователей более 100 тысяч. При этом время загрузки интегрированных модулей Live@edu (ссылки на сервисы, индикация непрочтенной почты, возможность сброса пароля) сократилась в 3-4 раза от 5-6 секунд до 1-2.

Technorati Теги: Live@edu,EWS,PowerShell,SSO,Интеграция