0

У меня в настоящее время есть служба самообслуживания WCF. Используя WebHttpBinding и проверку подлинности Windows, возможно ли вообще получить пароль или я должен использовать обычную проверку подлинности?Есть ли способ захватить пароль с помощью проверки подлинности Windows с помощью webhttpbinding в WCF?

ответ

1

Вы не можете получить пароль пользователя с помощью Windows auth - поскольку аутентификация выполняется через стороннюю организацию (обычно это активный каталог), никакие пароли не обмениваются между клиентом и службой, а только токен, который выдается AD.

Возможность получить пароль с использованием Windows auth также будет представлять собой серьезную угрозу безопасности - в интрасети клиенты (например, браузеры) обычно не запрашивают у пользователя учетные данные при аутентификации на сервере, который требует такой проверки подлинности , Вы не хотите, чтобы ваш пароль был передан службе, которую вы посещаете, и использует такую ​​аутентификацию.

+0

Именно поэтому я правильно понимаю, что некоторые страницы интрасети могут быть доступны за пределами домена (даже ящик с дистрибутивом Linux). В этом случае вам необходимо передать пароль. Как вы могли бы подтвердить подлинность, если вы не отправили свой пароль? – ymerej

+0

В этом случае обычно случается, что машина используется как «шлюз» или прокси для машины вне домена (машина должна находиться в домене). Прокси-сервер запускает службу, которая требует некоторой аутентификации, которая требует имени пользователя/пароля, который затем * олицетворяет * вызывающего абонента, а затем вызывает «окончательную» страницу с использованием этих учетных данных. Опять же, от прокси до последней страницы пароли не обмениваются. – carlosfigueira

+0

Я вижу, что вы говорите. К сожалению, я пытаюсь сделать это настолько же интрузивным для пользователя, насколько это невозможно. Моя цель состояла в том, чтобы делегировать (vs impersonate) код под свою учетную запись. Я хотел сделать это достаточно простым для пользователя, чтобы не беспокоить ИТ-администратора, позволяющего им делегировать, и вместо этого использовать API LogonUser. Похоже, я должен придерживаться базовой аутентификации. Я отвечу на ваш ответ как ответ, так как кажется невозможным захватить пароль. – ymerej

Смежные вопросы