Клиент, вызывающий несколько служб asmx

У меня есть клиентское приложение WPF, которое вызывает несколько веб-сервисов ASMX. Я продолжаю получать 401 ошибку аутентификации.

Иногда по какой-то причине один преуспевает, а другой терпит неудачу, но потом по какой-то причине работает один, а другой терпит неудачу ... Понятия не имею, в чем причина.

Одной из служб нужно сделать двойной скачок, и она работала раньше в течение дня, а теперь по какой-то причине перестала работать. Я не верю, что что-то изменил.

Я подписался на http://social.technet.microsoft.com/Forums/windowsserver/en-US/c9239a89-fbee-4adc-b72f-7a6a9648331f/401-unauthorized-access-is-denie d-due- to-invalid-credentials?forum=winserversecurity

после предложения

IIS 7 was difficult for figuring out why i was getting the 401 - Unauthorized: Access is denied due to invalid credentials... until i did this...

1.) Open iis and select the website that is causing the 401
2.) Open the "Authentication" property under the "IIS" header
3.) Click the "Windows Authentication" item and click "Providers"
4.) For me the issue was that Negotiate was above NTLM. I assume that there was some kind of handshake going on behind the scenes, but i was never really authenticated. I moved the NTLM to the top most spot, and BAM that fixed it.

и это сначала работало, однако, как только я закрыл скрипач, проблемы вернулись


person TheWommies    schedule 06.11.2013    source источник
comment
Что вы имеете в виду под «двойным прыжком»? Вы проверили номер 401? Используют ли ваши сервисы, выдающие #401, ЛЮБУЮ авторизацию (http-basic, ssl, AD и т. д.)? Эти многочисленные службы, используемые вашим приложением, предоставляются одним и тем же сервером или множеством разных серверов? Пробовали ли вы вызывать эти службы вручную, т. е. с помощью некоторого Soap/Rest TestClient? У вас получилось или они тоже случайно выбрали #401? Если у вас есть какие-либо данные по любому из этих вопросов, пожалуйста, включите в свой пост. Вероятно, они помогут другим подумать/вообразить/диагностировать, что случилось.   -  person quetzalcoatl    schedule 11.11.2013
comment
Все они аутентифицируются нормально, когда я использую браузер... я пытаюсь выполнить делегирование, что я имею в виду под двойным прыжком. Это мой клиент вызывает службу и передает ей учетные данные Windows. Затем служба вызывает SQL-сервер, и я передаю ему учетные данные Windows.   -  person TheWommies    schedule 11.11.2013
comment
Вы можете использовать fiddler, чтобы увидеть, какие заголовки отправляются и принимаются. В настоящее время в вопросе не так много информации, и нет известных проблем с веб-сервисами ASMX, которые время от времени случайным образом отвечают 401.   -  person C.Evenhuis    schedule 11.11.2013
comment
Спасибо .. имеет ли значение, что служба IIS работает под локальной учетной записью? Служба, которую я вызываю, работает в пуле приложений под учетной записью домена, но служба IIS, похоже, работает под локальной учетной записью.   -  person TheWommies    schedule 11.11.2013
comment
@quetzalcoatl он имеет в виду SPNEGO Negotiate Kerberos. Проблема в том, что 401 может произойти из-за сбоя любой части схемы аутентификации Kerberos (которых много).   -  person Aron    schedule 11.11.2013
comment
Ааа... только что вспомнил кое-что... поищи Kernel mode security и IIS. Ваше удостоверение IIS (аутентифицирующее) ДОЛЖНО совпадать с вашей записью SPN. Параметр, о котором я говорю, подталкивает Auth к драйверам режима ядра, так что это ваш system identity, который аутентифицируется, а не ваш app pool identity. Надеюсь, что этот маленький драгоценный камень может помочь вам....   -  person Aron    schedule 11.11.2013
comment
@Aron: ... но не совсем четко определенный путь? почему он случайно терпит неудачу / проходит? Если нет какой-то действительно серьезной сетевой ошибки, которая может случайным образом терять пакеты или сбрасывать соединения, я думаю, что он должен постоянно пытаться использовать одни и те же учетные данные / токены, поэтому не должен ли он всегда проходить или всегда терпеть неудачу? Я думаю проблема не на этом уровне, но могу ошибаться, поэтому и попросила моар инфу :)   -  person quetzalcoatl    schedule 11.11.2013
comment
@quetzalcoatl, вы предполагаете, что Kerberos - это чисто сетевая технология. Это сложно, включая часть, требующую хорошо синхронизированных системных часов, настройки AD, различных учетных записей AD и т. Д. У меня были проблемы с двойным прыжком, возникающие только у ОДНОГО пользователя один раз. Из всех проблем, с которыми я сталкивался за годы программирования, Kerberos остается самой безумной.   -  person Aron    schedule 11.11.2013
comment
@Aron: Вы правы .. теперь, когда вы упомянули часы, я помню, что у меня тоже были некоторые проблемы с этим. К сожалению, это было давно и подробностей я уже не помню. Однако большое спасибо за некоторые пояснения!   -  person quetzalcoatl    schedule 11.11.2013
comment
Проблема в том, что у меня проблемы с пониманием всего этого, все, что у меня есть ограниченная власть на моем рабочем месте, где мне приходилось разговаривать с системным администратором, чтобы изменить что-то вроде SPN, поэтому мы идем вперед и назад ... Насколько я понимаю, он установил SPN на учетная запись домена, под которой работает удаленная служба... Однако IIS по-прежнему использует свою локальную учетную запись на удаленном ПК... Меня беспокоит, есть ли какие-либо нарушения, если я попытаюсь запустить IIS под учетной записью домена. так как этот компьютер используется совместно с другими службами.   -  person TheWommies    schedule 12.11.2013
comment
Я сделал клиентское приложение WCF, чтобы попытаться решить эту проблему в службе, которая в настоящее время не работает... Я получаю сообщение об ошибке System.ServiceModel.Security.MessageSecurityException = HTTP-запрос неавторизован со схемой аутентификации клиента «Согласование». Заголовок проверки подлинности .. Message=Неверное имя целевого принципала Что подсказывает мне, что что-то не так с именами участников-служб??? Не уверен, почему это может привести к случайному сбою некоторых служб... Может быть трудно диагностировать, но если это причина, по крайней мере, у меня может быть какое-то направление сейчас   -  person TheWommies    schedule 13.11.2013
comment
Я просто читаю эту статью сейчас blogs.msdn.com/b/webtopics/archive/2009/01/19/ Просто подумайте, может быть, это как-то связано с тем, как SPN настроен   -  person TheWommies    schedule 13.11.2013