ASP.NET -> WCF служба требует проверки подлинности Windows - PullRequest
2 голосов
/ 28 января 2009

Мне было поручено создать базовое приложение администратора. Приложению необходим внешний интерфейс ASP.NET, который взаимодействует с несколькими внутренними службами с использованием WCF.

Одно требование состоит в том, что пользователи приложения проходят проверку подлинности с использованием проверки подлинности Windows. Я могу сделать это без проблем, если логика приложения содержалась в приложении ASP.NET, но я понятия не имею, как выполнить аутентификацию внутри внутренних служб WCF?

  • Можно ли передать учетные данные службе WCF и выполнить ее проверку подлинности?

Ответы [ 2 ]

3 голосов
/ 28 января 2009

Это зависит ... (Обратите внимание, что большая часть этого основана на HTTP / IIS как транспорт, может отличаться при использовании TCP или других привязок)

Сам WCF можно настроить на использование безопасности транспорта или сообщений с использованием текущих текущих учетных данных.

Если служба WCF (и все, с чем ей нужно общаться с использованием текущих учетных данных) находится в том же окне, что и интерфейс ASP> NET, вы, вероятно, будете в порядке

... в противном случае вы можете столкнуться с проблемой " Double Hop Authentication". По сути, Windows Auth получает идентификацию «олицетворения» на веб-сервере, что хорошо локально, но у него нет разрешения на аутентификацию с веб-сервера. Для этого вам нужно удостоверение личности делегирования.

Варианты получения идентификатора делегирования, которые мне известны, - это Kerberos и Basic Authentication.

Так что, если вы говорите «проверка подлинности Windows», вы на самом деле подразумеваете, что все (клиент и все серверы) находятся в одном домене AD, и вы, возможно, в порядке.

0 голосов
/ 21 октября 2013

У меня есть сайт ASP.NET, использующий проверку подлинности Windows, который должен был вызвать службу WCF, для которой включена анонимная проверка подлинности и проверка подлинности Windows У меня была проблема с передачей учетных данных Windows службе WCF.

Для этого я сделал следующее

  1. В Web.config сайта я убедился, что в моих привязках WCF используется проверка подлинности Windows: режим безопасности = "TransportCredentialOnly"

    transport clientCredentialType = "Windows"

  2. В IIS я создал пул приложений, используя .Net 4 и классический управляемый режим конвейера

  3. В настройках аутентификации моего сайта

    Анонимная аутентификация - отключено

    Олицетворение ASP.NET - включено

    Windows Auth - Включено

Вот что у меня сработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...