Группа доступа аутентификации WCF - PullRequest
1 голос
/ 15 сентября 2009

У меня есть 2 службы WCF, (A и B), где A вызывает B.

Служба WCF A работает с использованием удостоверения ServiceUserA (как установлено в пуле приложений). Служба B WCF выполняется с использованием удостоверения ServiceUserB (как установлено в пуле приложений).

Служба B WCF должна разрешить доступ пользователям в группе AD ServiceBAccessGroup. ServiceUserA является частью ServiceBAccessGroup.

Когда служба A пытается подключиться к службе B, она выдает эту ошибку:

SecurityNegotiationException Ошибка вызова SSPI, см. Внутреннее исключение: «Целевое имя участника неверно»

Когда и ServiceA, и Service B работали в качестве сетевой службы, это работало нормально.

Как разрешить пользователям части ServiceBAccessGroup подключаться к ServiceB?

Редактировать: Больше информации об окружающей среде:

.net 3.5, IIS 7.0 (WAS), через netTcpBinding, Windows Server 2008.

Редактировать (2): Да, спасибо за вопрос Тузо. Вот соединение с конечной точкой клиента:

  <client>
      <endpoint address="net.tcp://MyServerName:812/v1_0/ServiceB.svc/ServiceB" binding="netTcpBinding" contract="IServiceB" name="ServiceBEndpoint" >
</endpoint>
 </client>

Редактировать (3):

Спасибо за вашу помощь, это направило меня ближе к направлению моей цели.

Я считаю, что моя проблема связана с авторизацией, а не с аутентификацией. Я не хочу аутентифицироваться как ServiceUserB, потому что это противоречит цели нашей модели безопасности.

Использование следующих работ:

<identity>
  <serviceProviderName value="ServiceB/MyServerName:812" />
</identity>

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

Еще раз спасибо!

1 Ответ

2 голосов
/ 15 сентября 2009

Попробуйте добавить элемент идентификации в конфигурацию ServiceA:

<client>
  <endpoint address="net.tcp://MyServerName:812/v1_0/ServiceB.svc/ServiceB" binding="netTcpBinding" contract="IServiceB" name="ServiceBEndpoint" >
      <identity>
          <userPrincipalName value="user@domain" />
      </identity>
  </endpoint>
</client>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...