#wcf #windows-services #wcf-security #nettcpbinding #dmz
#wcf #windows-службы #wcf-безопасность #nettcpbinding #dmz
Вопрос:
У нас есть служба WCF с NetTcpBinding, размещенная в службе Windows, эта служба подключается к серверу ContentManager для загрузки документов и добавления некоторых метаданных, извлечения идентификатора документа и передачи его в .Сетевое приложение, клиенты проходят проверку подлинности с использованием аутентификации Windows. Мы написали клиентскую библиотеку WCF для использования в качестве прокси другими бизнес-приложениями, которые хотят загружать документы, просто ссылаясь на эту dll. Все это работает нормально, пока клиентские приложения находятся в домене интрасети.
Теперь требуется использовать эту службу с помощью веб-приложения, доступ к которому осуществляется через мобильные телефоны. мобильное приложение обращается к устаревшему веб-сервису asmx, который ссылается на прокси-сервер для подключения к службе WCF, которая, в свою очередь, взаимодействует с другой внутренней службой wcf и загружается в content manager. веб-сервис asmx размещен на серверах за пределамитекущий домен в DMZ, и между корпоративным доменом и DMZ нет доверия, мы открыли необходимые порты на обоих серверах, но поскольку тип учетных данных клиента — windows, он выдает сообщение «Удаленный сервер не удовлетворил требованиям взаимной аутентификации». что и ожидалось. Теперь мы хотим использовать привязку nettcpbinding по очевидным причинам производительности, поскольку документы сканируются и отправляются по мобильным телефонам из удаленных мест, а также с очень небольшим временем перезаписи, это не вариант. В статьях, которые я прочитал, и в обсуждениях здесь большинство из них предлагают не использовать NetTcpBinding для этого сценария, а некоторые попробовали и реализовали это с помощью сертификатов,
мои вопросы
- Для сценариев, о которых я упоминал выше, является ли использование сертификатов для аутентификации клиентов правильным подходом?
- Как я должен обращаться с безопасностью, прямо сейчас декларативное олицетворение используется практически во всех операциях, если мне нужно изменить безопасность, как я могу это сделать, не влияя на другие приложения, использующие службу.
Я раньше не работал с сертификатами, поэтому руководство по сценарию также будет очень полезным.
Комментарии:
1. Итак, вы хотите «олицетворять» клиентов с мобильных устройств или достаточно иметь единый идентификатор для всех из них (= идентификатор для веб-приложения)? Первый вариант, вероятно, означает действительно большие изменения либо в вашем приложении, либо в сетевой архитектуре.
2. мобильные клиенты взаимодействуют с веб-сервисом, который взаимодействует с другим приложением, поддерживаемым поставщиком, для их входа в систему, у нас нет никаких проблем, веб-сервис, который находится в DMZ, должен взаимодействовать со службой WCF в корпоративном домене, в котором и возникает проблема, очевидно, что аутентификация Windows здесь не предусмотрена, и WCF отключен.написано только для этого.
3. Зачем вам нужно что-то переписывать? Вы можете добавить другую привязку к той же службе, просто выполнив настройку.
4. да, это тоже мой мыслительный процесс, я бы добавил другую конечную точку к той же службе, но вместо проверки подлинности Windows используйте сертификаты для аутентификации клиентов, но будет ли это работать с NetTcpBinding и транспортной безопасностью, я предполагаю, что мне нужно создать сертификат в конце службы, как насчет клиента?
5. Я немного запутался в том, где настраивать сертификаты, должен ли я настраивать порт или настраивать IIS, поскольку служба самостоятельно размещается в службе Windows, я считаю, что это должны быть порты, как мне настроить сертификаты на стороне службы и как загрузить сертификаты на стороне клиента, каковы конфигурации на стороне сервиса и клиента, вот некоторые из вопросов, на которые у меня нет четких ответов или рекомендаций