Заглянем под капот Exchange Server


Иногда интересно заглянуть внутрь Exchange: что там и как делается. Многие вещи скрыты в откомпилированных файлах, но журналы показывают много очень интересной информации.Вот такой случай.

Exchange позволяет владельцам групп управлять членством в их группах, если выставлено соответствующее разрешение. Владелец может это сделать через Outlook или OWA. Возьмем для простоты наблюдения OWA, перейдем на страницу управления группами и перед тем как нажать Join и добавить кого-то в группу, включим отладчик IE. Он нам покажет, что Join генерирует вызов ECP. Если вы запустите EAC, и как администратор попробуете проделать ту же операцию, то отладчик покажет вам похожий вызов ECP. Таким образом мы можем сделать вывод, что для пользователей, что для администраторов используется один протокол управления – ECP.

Еще более наглядно это можно проследить в журнале на сервере. Сначала определяем на какой CAS подключен наш клиент (смотрим ip адрес по netstat или если есть балансировщик, то смотрим на нем). И на сервере смотрим журнал в папке C:\Program Files\Microsoft\Exchange Server\V15\Logging\ECP\Server Имя журнала начинается на HttpProxy. Находим нашу транзакцию:

2014-02-11T14:30:01.439Z,6e9a950c-2ea7-40b0-bf93-421872670d97,15,0,775,22,,Ecp,owa.domain.ru,/ecp/MyGroups/SearchAllGroups.svc/JoinGroup,,Negotiate,True,DOMAIN\testuser,,Sid~S-1-5-21-498639864-1756676512-2473291660-1443,Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko,172.16.1.231,EXCAS,200,200,,POST,Proxy,exmb.domain.ru,15.00.0775.000,IntraForest,WindowsIdentity,Database~ef96e1fa-bb25-48e6-9e29-3b277a1fc881~~02/11/2014 14:39:46,,,116,595,1,,0,1,,0,,0,,0,0,62.3863,0,0,1,0,56,0,0,0,59,0,56,2,3,3,59,?reqId=1392129001444&msExchEcpCanary=PgF2Qvx8L0axlqkECUyEO6geE-NK9dAIII7OSDngFhYTw6AT6vFq5bi3DmwvU3eML6znJ9l4drQ.,,

Первое что мы видим это вызов метода JoinGroup. Логично! Второе, что запрос уходит на MailBox сервер exmb.domain.ru, где и должен фактически выполнится. Смотрим журнал на этом сервере (имя начинается на ECPServer):

2014-02-11T14:30:01.344Z,EXMB,ECP.Request,S:TIME=46;S:SID=b1adbgc7-7d45-4836-9590-88617bd87e04;S:CMD=Add-DistributionGroupMember.Identity=1c097931-3f5d-4134-8946-d505a53f8369;S:REQID=1392129001444;S:URL=/ecp/MyGroups/SearchAllGroups.svc/JoinGroup?reqId=1392129001444&msExchEcpCanary=PgF2Qvx8L0axlqkECUyEO6geE-NK9dAIII7OSDngFhYTw6AT6vFq5bi3DmwvU3eML6znJ9l4drQ.;S:EX=Microsoft.Exchange.Configuration.Tasks.OperationRequiresGroupManagerException:Необходимые разрешения отсутствуют. Эту операцию может выполнять только руководитель группы.\r\n;S:ACTID=6e9a950c-2ea7-40b0-bf93-421872670d97;S:RS=0;S:BLD=15.0.775.38

Желтым я выделил в обоих логах REQID, который помогает нам найти связанные части одной транзакции.

Как видите (выделено красным) вызывается команда Add-DistributionGroupMember – та же самая, что используется администратором при добавлении пользователя в группу.

Таким образом становится ясно, что внутри Exchange используется один механизм управления, и более того он контролируется RBAC: во втором логе вы видите сообщение об ошибке – тот, кто попытался добавить пользователя в группу не имеет прав на эту операцию. Точно такое сообщение он получит в EAC и EMS, т.к. вызывается один и тот же командлет.

Аналогично вы можете отследить по журналам работу клиента Outlook, который подключается к CAS серверу точно также – по протоколу HTTPS, и увидеть, что работают те же механизмы внутри Exchange.

 

 

Реклама

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

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

Логотип WordPress.com

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

Фотография Twitter

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

Фотография Facebook

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

Google+ photo

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

Connecting to %s

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