Служба WCF с клиентами NetTCPbinding и DMZ - PullRequest
1 голос
/ 26 октября 2011

У нас есть служба WCF с netTCPBinding, размещенная в службе Windows, эта служба подключается к серверу ContentManager для загрузки документов и добавления некоторых метаданных, получения documentID и передачи его в приложение .Net, клиенты аутентифицируются с использованием аутентификации Windows. Мы написали клиентскую библиотеку WCF для использования в качестве прокси-сервера другими бизнес-приложениями, которые хотят загружать документы, просто ссылаясь на эту DLL. Все это прекрасно работает, если клиентские приложения находятся в домене интрасети.

Теперь существует требование использовать эту службу веб-приложением, доступ к которому осуществляется через мобильные телефоны. Мобильное приложение обращается к устаревшему веб-сервису asmx, который ссылается на прокси-сервер для подключения к службе WCF, которая, в свою очередь, обращается к другой серверной wcf-службе и загружает ее. для менеджера контента веб-сервис asmx размещается на серверах вне текущего домена в DMZ, и нет доверия между корпоративным доменом и DMZ, мы открыли необходимые порты на обоих серверах, но, поскольку тип учетной записи клиента - windows, он выбрасывает " Удаленный сервер не удовлетворял требованию взаимной аутентификации. " что ожидается. Теперь мы хотим использовать nettcpbinding по очевидным причинам производительности, так как документы сканируются и отправляются через мобильные телефоны из удаленных мест, а также с очень небольшим количеством времени перезаписи это не вариант. В статьях, которые я прочитал, и в обсуждениях, которые здесь представлены, большинство из них предлагают не использовать netTCPBinding для этого сценария, а некоторые пытались и реализовывали это с использованием сертификатов

мои вопросы

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

До этого я не работал над сертификатами, так что руководство по сценарию также очень поможет.

...