Я занимаюсь разработкой сайта интрасети, который будет использоваться в локальной сети. В корпоративной среде пользователи могут использовать этот сайт, например OWA, они могут видеть свои входящие, отправлять письма и т. Д. Чтобы добиться этого, я использую EWS Managed Api 2.2 для подключения Exchange Server (2010_sp1). Я разрабатываю ASP.NET MVC 5. Я разрабатываю на своем компьютер с IIS 10.0 installed.While Я развивается с IISExpress, не было никаких проблем, чтобы соединиться с учетными данными по умолчанию>EWS Managed API Double Hop
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
service.UseDefaultCredentials = true;
Я понимаю, что это происходит потому, что IIS Express не использовать свои полномочия в качестве учетных данных по умолчанию, так что было не ошибка для подключения службы. Но когда я запускаю этот код с IIS на моем компьютере (с моими учетными данными в Удостоверение пула приложений с использованием сети САШ, олицетворение включена, включена проверка подлинности Windows и ПЕРЕГОВОРЫ поставщиков/NTML) тождества загрузить правильные
HttpContext.User.Identity.Name > xxx\billgates
WindowsIdentity.GetCurrent().Name> xxx\billgates
но сервис обмена возвращается в след эти>
<Trace Tag="EwsRequestHttpHeaders" Tid="29" Time="2017-01-02 08:03:04Z">
POST /EWS/Exchange.asmx HTTP/1.1
Content-Type: text/xml; charset=utf-8
Accept: text/xml
User-Agent: ExchangeServicesClient/15.00.0913.015
Accept-Encoding: gzip,deflate
</Trace>
<Trace Tag="EwsRequest" Tid="29" Time="2017-01-02 08:03:04Z" Version="15.00.0913.015">
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<t:RequestServerVersion Version="Exchange2010_SP1" />
</soap:Header>
<soap:Body>
<m:GetFolder>
<m:FolderShape>
<t:BaseShape>AllProperties</t:BaseShape>
</m:FolderShape>
<m:FolderIds>
<t:DistinguishedFolderId Id="inbox" />
</m:FolderIds>
</m:GetFolder>
</soap:Body>
</soap:Envelope>
</Trace>
<Trace Tag="EwsResponseHttpHeaders" Tid="29" Time="2017-01-02 08:03:04Z">
HTTP/1.1 401 Unauthorized
Server: Microsoft-IIS/7.5
WWW-Authenticate: Negotiate,NTLM
X-Powered-By: ASP.NET
Date: Mon, 02 Jan 2017 08:03:04 GMT
Content-Length: 0
</Trace>
когда я использую EWEditor (https://ewseditor.codeplex.com/) Я видел, что нет ошибок с подключения с учетными данными по умолчанию и при запуске Klist в PowerShell есть tickes как Kerberos>
Se rver: krbtgt/[email protected] Тип шифрования KerbTicket: RSADSI RC4-HMAC (NT) Время окончания: 1/2/2017 21:35:37 Время продления: 1/9/2017 11:35:37
Сервер: krbtgt/[email protected] KerbTicket Тип шифрования: Неизвестный (18) End Time: 1/2/2017 21:35:37 Продлить время : 1/9/2017 11:35:37
Сервер: HTTP/[email protected] KerbTicket Тип шифрования: RSADSI RC4-HMAC (NT) End Time: 1/2/2017 21:35:37 Время продления: 1/9/2017 11:35:37
Сервер: HTTP/[email protected] KerbTicket Тип шифрования: RSADSI RC4-HMAC (NT) End Time: 1/2/2017 21:35:37 Продлить время: 1/9/2017 11:35:37
Сервер: HTTP/[email protected] KerbTicket Тип шифрования: Неизвестный (18) End Time: 1/2/2017 21 : 35: 37 Продлить время: 1/9/2017 11:35:37
Сервер: ldap/[email protected] KerbTicket Encryption Type: Неизвестный (18) End Время: 1/2/2017 21:35:37 Время продления: 1/9/2017 11:35:37
с этими билетами Я предполагаю, что kerberos работает, мой первый вопрос заключается в том, что я прав? Могу ли я быть уверенным, что эти билеты гарантируют, что keberos работает с серверами клиентского доступа?
Во время поиска этой проблемы я увидел, что эта проблема очень похожа на проблему с двойным прыжком, подобную этому блогу, говорит>https://blogs.msdn.microsoft.com/dhruvkh/2012/04/15/the-double-hop-dogma/ . Фактически моя проблема в точности как этот пост.Как этот пост рекомендует ли я использовать свой счет в качестве учетной записи службы и добавить СПбОЕ на мой счет и написать, что в Удостоверение пула приложений в IIS
SPNs, что я использовал
HTTP/autodiscover.xxxxxx.xxx.xx
http/posta.xxxxxx.xxx.xx
ПРИМЕЧАНИЕ. Я уверен, что эти SPN не используются.
После добавления spns я также проверяю «Доверяйте этот компьютер делегированию любой службе (только Kerberos)». на вкладке «Делегация» моей учетной записи пользователя.
Мой другой вопрос в том, что, как пост предложить на 3 этапе https://technet.microsoft.com/en-us/library/ff808312(v=exchg.141).aspx я должен создать альтернативную учетную запись службы вместо того, чтобы использовать мой счет? Если я должен использовать ASA, следует добавить учетные данные учетной записи Alternate службы в IIS Удостоверение пула приложений ?
Спасибо за помощь.