Безопасность сообщений маршрутизации WCF - PullRequest
1 голос
/ 23 сентября 2008

Я создаю некоторую функциональность маршрутизации между сервисами. Исходный сервис и сервис, который выполняет маршрутизацию, имеют одинаковую конфигурацию; оба используют netTcpBinding со следующей конфигурацией привязки:

NetTcpBinding

security mode = "Сообщение"

message clientCredentialType = "Имя пользователя"

В поведении службы используется поставщик членства в AspNet и сертификат клиента, который мы установили на компьютере.

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

"Сообщение не может быть обработано. Это, скорее всего, из-за того, что действие 'http://foo/Whatever' является неправильным, или потому что сообщение содержит недопустимый или просроченный токен контекста безопасности или из-за несоответствия между привязками *. Маркер контекста безопасности был бы недействительным, если бы служба прервала канал из-за неактивности. Чтобы предотвратить прерывание бездействующими сеансами службы, преждевременно увеличьте время ожидания приема для привязки конечной точки службы. " (Акцент мой)

Я думаю, что сертификат работает с сообщением дважды (один раз при исходном вызове, а затем при ретрансляции), и именно это портит маркер безопасности сообщения.

Вопросы:

  1. Мое мышление на цели?

  2. Есть ли способ продолжить использовать безопасность сообщений для маршрутизации, не имея сложности службы токенов?

1 Ответ

1 голос
/ 24 сентября 2008

Вы упомянули переключение между отсутствием защиты и защитой сообщений. Убедитесь, что вы изменили как конечные точки службы WCF, так и конечную точку на принимающей стороне? Если нет, и два не совпадают, вы получите ошибку. Это то, что мне говорит эта ошибка.

Для Вопроса 2, в какой среде вы работаете? Закрытая система, где вы можете использовать шифрование и подпись, или общедоступная среда, где вам может понадобиться специальный ключ?

...