Как предотвратить переопределение кода, который захватывает проверку подлинности Windows и использует имя пользователя для выполнения вызовов wcf? - PullRequest
1 голос
/ 12 ноября 2011

Обычно, если вы используете WindowsAuthentication для захвата имени пользователя, сохранения в переменной и передачи его любым используемым вами службам, что может помешать кому-то взломать ваш код и передать другое имя пользователя?

На стороне клиента вы можете проверить IsAuthenticated, но после этого он позволяет получить только имя пользователя Windows, а не пароль Windows.

Есть ли какой-нибудь способ просто передать сам объект аутентификации, не позволяя ему взломать? В противном случае мне, возможно, придется переключиться обратно, чтобы не использовать проверку подлинности Windows в качестве своей проверки подлинности и настраивать переход пользователя / прохода с помощью таблицы db.

1 Ответ

1 голос
/ 12 ноября 2011

Вы не можете передавать учетные данные пользователя за пределы вашего сервера из-за поведения "NTLM one hop". Вы можете настроить аутентификацию Kerberos для обработки случаев, когда вам нужен поток учетных данных пользователя между интерфейсным и внутренним серверами.

Другим вариантом является установление доверия между серверами (т. Е. HTTPS с клиентским сертификатом), чтобы внутренний сервер мог доверять имени пользователя, полученному с вашего сервера (так как он будет единственным с правильным клиентским сертификатом). Вы не сможете выдать себя за пользователя на бэкэнд-сервере, так как у вас будет только имя.

...