Главная > C#, Интеграция, PHP > Новый способ интеграции с Microsoft Live@edu

Новый способ интеграции с 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, поэтому крайне не рекомендуется использовать команды этого модуля.
  5. MSDN AA eAcademy LMS (ELMS) — управление электронными лицензиями в программе MSDN Academic Alliance.

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

  • EWS — специальный Managed API,
  • Single Sign-On – демонстрационный портал и целый ряд специальных классов (до недавнего времени в SSO toolkit входил также и сервер Windows Live ID),
  • PS — требуется подключение специального класса (который пока официально не существует), а также отслеживание конвейера и открытых удаленных сессий;
  • WLAC – предоставляет очень ограниченные возможности управления, пользоваться этим сервисом не рекомендуется.
  • ELMS — код на Visual Basic, который позволяется обратиться к серверу eAcademy для получения ссылки единого входа в ELMS для студентов и последующей загрузки софта.

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

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

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

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

Веб-сервис работает на базе операционной системы Windows Server 2003, 2008, 2008 R2 любой редакции. Самым выгодным вариантом для учебного заведения является Windows Web Server 2008 R2, розничная стоимость которого составляет порядка 2 т.р. Если будет использоваться 2003/2008, необходимо обновить платформу WMF, информация об этом есть в инструкции.

Для того, чтобы проиллюстрировать простоту внедрения, приведу несколько примеров на языках .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(“http://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»=>http://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(«Set-Mailbox 123739457934859823@vuz.ru -EmailAddresses vasya@vuz.ru»);

или переименование Windows Live ID с сохранением почты и всех данных Windows Live:

ws.PS_Execute(«Set-Mailbox 123739457934859823@vuz.ru -WindowsLiveID vasya@vuz.ru»);

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

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

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

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

http://cid-dad805f3381eed7b.office.live.com/view.aspx?path=%2f%d0%9f%d1%80%d0%b5%d0%b7%d0%b5%d0%bd%d1%82%d0%b0%d1%86%d0%b8%d0%b8%20%d0%bf%d0%be%20%d1%82%d0%b5%d1%85%d0%bd%d0%be%d0%bb%d0%be%d0%b3%d0%b8%d1%8f%d0%bc%20Microsoft%20%d0%b4%d0%bb%d1%8f%20%d0%be%d0%b1%d1%80%d0%b0%d0%b7%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f%2f%d0%9f%d0%b0%d1%80%d1%82%d0%bd%d0%b5%d1%80%d0%b0%d0%bc%2f%d0%b8%d0%bd%d1%82%d0%b5%d0%b3%d1%80%d0%b0%d1%86%d0%b8%d1%8f.docx

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

Синхронизация

Новый синхронизатор Education Identity Synchronizer также содержит коннектор к Outlook Live, использующий не PowerShell напрямую, а LAEMWS. Это позволяет начинать создание учетных записей практически мгновенно, без ожидания подключения сессии.

Более подробно здесь: https://lvedurus.wordpress.com/2010/11/15/education-identity-synchronizer-v-1-0-ctp-2/

Реклама
Рубрики:C#, Интеграция, PHP

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: