Имя: Пароль:
1C
1С v8
Как работает авторизация и разделение данных в Excnahge при использовании EWS?
0 Pandoch
 
12.09.19
18:07
Всем здравствуйте.
Выполняла интеграция с MS Exchange через EWS. Разработка велась на 1 учетной записи тестовой. сейчас у клиента внедряем и проблемы начались. Авторизация х.. пойми как работает. То есть я создаю объект, прописываю креденшлс и даже если прописать неверный пароль, то дальше по коду я отправляю запрос, в теле запроса - XML запрос папочек - и он успешно мне возвращает ответ. Для чего авторизация, спрашивается?? и по какой схеме она вообще работает?
вот что нашла в документации:
https://docs.microsoft.com/ru-ru/exchange/client-developer/exchange-web-services/authentication-and-ews-in-exchange

типа есть 3 уровня проверки подлинности. Как я дергаю EWS:

Функция СоздатьXMLHTTP(ИмяСервера, Логин, Пароль)
        
    стрURL="https://"; + ИмяСервера + "/EWS/Exchange.asmx";
    oXMLHTTP = Новый COMОбъект("MSXML2.XMLHTTP");
    oXMLHTTP.open("POST", стрURL, 0, Логин, Пароль); // третий параметр - вызов асинхронных запросов (Булево)
    oXMLHTTP.setRequestHeader("Content-Type", "text/xml;charset=UTF-8");    
    
    Возврат oXMLHTTP;
        
КонецФункции

Далее я отправляю запросик, например на получение список всех папок по юзеру:

// Запросим список всех папок.
    oXMLHTTP5 = СоздатьXMLHTTP(СерверВходящейПочты, Пользователь, пароль);
    XML_FindFolder = XML_FindFolders();
    oXMLHTTP5.send(XML_FindFolder);

XML_FindFolder   - тело запроса, взяла из документации. выглядит так:

Функция XML_FindFolders()
    
    Возврат "<?xml version=""1.0"" encoding=""utf-8""?>
    |<soap:Envelope xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"";
    |  xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"";
    |  xmlns:xsd=""http://www.w3.org/2001/XMLSchema"";
    |  xmlns:m=""http://schemas.microsoft.com/exchange/services/2006/messages"";
    |  xmlns:t=""http://schemas.microsoft.com/exchange/services/2006/types"">;
    |<soap:Body>
    | <m:FindFolder Traversal=""Deep"" xmlns=""http://schemas.microsoft.com/exchange/services/2006/messages"">;
    |   <m:FolderShape>
    |    <t:BaseShape>IdOnly</t:BaseShape>
    |
    |    <t:AdditionalProperties>
    |    <t:FieldURI FieldURI=""folder:DisplayName"" />
    |    <t:FieldURI FieldURI=""folder:FolderId"" />
    |    <t:FieldURI FieldURI=""folder:FolderClass"" />
    |    </t:AdditionalProperties>
    |
    |  </m:FolderShape>
    // Ограничение на получение папок только для писем.
    |<m:Restriction>    
    |        <t:IsEqualTo>    
    |            <t:FieldURI FieldURI=""folder:FolderClass""/>    
    |                <t:FieldURIOrConstant>    
    |                     <t:Constant Value=""IPF.Note""/>    
    |                </t:FieldURIOrConstant>    
    |        </t:IsEqualTo>    
    |</m:Restriction>    
    |        
    |   <m:ParentFolderIds>
    |    <t:DistinguishedFolderId Id=""msgfolderroot""/>
    |  </m:ParentFolderIds>
    | </m:FindFolder>
    | </soap:Body>
    |</soap:Envelope>
    |";
    
КонецФункции


И если даже я задаю неверный пароль - то он все равно что-то возвращает. НО - тут важно, у нас была старая учетка - там он ругается если изменить пароль. А есть другие учетки - новая и пользовательская рабочая - если я там меняю пароль на кривой, то запрос все равно возвращает 200 и какое-то информативное тело.


В чем я хочу разобраться:
1) В данном случае я использую обычную проверку подлинности? может он запоминает последнюю корректную авторизацию и если я потом под неверным паролем стучусь, то использует вход под авторизованным в последний раз юзером?
2) Я же по идее при отправке запроса должна получать папки только свои? по своей учетной  записи? кто-нибудь работал с exchange, знает как это разграничивается??  то есть по каждой учетной записи есть своя папка Входящие со своим айдишником?
1 Pandoch
 
13.09.19
08:33
1
2 Pandoch
 
13.09.19
08:34
Нерешенная
3 Pandoch
 
13.09.19
08:34
Проблема
4 Pandoch
 
13.09.19
09:47
никто не имел счастья интегрироваться с сервисами exchange?
5 Cyberhawk
 
27.09.19
14:26
Какая версия Иксченджа?
Мне предстоит смежная задача: массовое засасывание писем без привязки к данным аутентификации пользователя домена.
6 Cyberhawk
 
27.09.19
14:29
Дело осложняется тем, что целевой Иксчендж - 2013, и OAuth с токенами там не работает.
Пока не вычитал, можно ли аутентифицироваться в EWS под какой-то одной-единственной "супер-учеткой" и засосать с ее помощью все письма всех нужных ящиков.
7 eklmn
 
гуру
27.09.19
14:57
(4) дабы знаю эксченж, НИКОГДА бы не делал бы интеграцию с ним.
после каждой обновы у вас 100% будет все слетать.
8 Cyberhawk
 
27.09.19
16:02
(7) Что там с EWS, можно ли, не используя Basic-аутентификацию (логин-пароль каждого пользователя домена), собирать почту каждого пользователя домена?