Подтвердить что ты не робот

Служба WCF - сертификаты и безопасность сообщений с аутентификацией UserName

Я собираюсь создать службу WCF, которую наши клиенты могут использовать для обновления данных в нашей системе. Поэтому он должен быть доступен через Интернет. У меня есть книга о WCF, из которой я знаю, что Message Security - это путь, когда вы делаете службу WCF доступной через Интернет. Это связано с тем, что вы не должны использовать транспортную безопасность, потому что ее следует использовать только в средах, где вы можете гарантировать, что между сервисом и клиентом существует соединение точка-точка. Правильно ли я понял? Поэтому я хочу использовать Message Security в сочетании с пользовательской аутентификацией UserName. Я понимаю, что для этого мне нужно получить сертификат. Наша компания уже владеет SSL-сертификатом, который используется для наших веб-сайтов.

  • Можно ли использовать тот же сертификат для безопасности сообщений службы WCF?

и

  • Является ли способ защиты сообщений взаимодействующим с клиентами, ожидающими веб-службы ASMX?

В целях тестирования я создал свой собственный сертификат с помощью Makecert. Он работал нормально, но мне всегда приходилось добавлять сертификат на Trusted Persons на клиентской машине.

  • Возможно ли включить Message Security с вышеупомянутым сертификатом, не заставляя клиента добавлять сертификат в Trusted Persons вручную?

Теперь предположим следующий сценарий:

Company Infrastructure

За ISA-сервером/брандмауэром существует два Web-сервера. Этот ISA-сервер содержит сертификат для адреса www.company.com. Таким образом, все материалы SSL обрабатываются им. Он также направляет входящие запросы в веб-серверы соответственно. Недавно созданная служба WCF должна работать на втором веб-сервере.

  • Нужно ли мне копировать сертификат на веб-сервер, чтобы иметь возможность использовать Message Security?

Если да, я слышал, что копирование сертификатов не является хорошей практикой, потому что это снижает уровень безопасности. Перемещение сертификата на веб-сервер не является вариантом, так как это необходимо для веб-сайтов на Web-сервере1.

  • Каковы мои варианты в этом случае?

и

  • Какова была бы лучшая практика для этого сценария, независимо от данных требований?

Спасибо...

4b9b3361

Ответ 1

Хорошо подготовленный вопрос. Прежде всего, я, вероятно, прочитал ту же книгу, и я хотел бы прояснить это утверждение:

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

Да. HTTPS (безопасность на транспорте) предлагает только двухточечную защиту, но люди ИМО не понимают этот сценарий правильно. Считаете ли вы, что если вы подключитесь к интернет-банкингу через HTTP-сервер, он будет случайно находиться где-то посреди обмена обмена через Интернет с HTTPS на HTTP? НЕТ! Соединение точка-точка означает защищенный транспортный канал между клиентом и доступным шлюзом, обеспечивающим запрашиваемый URL-адрес. В вашем сценарии это означает обеспеченный транспортный канал между клиентом и вашим ISA-сервером. Коммуникация не будет защищена между вашим ISA и веб-сервером 2. Если вы хотите, чтобы сквозной интерфейс обеспечивал безопасный канал между клиентом и веб-сервером 2 (ISA не сможет перехватывать сообщения), вам нужна безопасность сообщений.

Теперь к вашим другим вопросам:

Можно ли использовать тот же сертификат для безопасности сообщений службы WCF?

Да, вы можете, но вам нужно скопировать закрытый ключ на ваш веб-сервер 2.

Является ли способ защиты сообщений совместимы с клиентами, которые ожидают ASMX Webservice?

Нет. Чистый клиент ASMX не может использовать защиту сообщений, если вы не кодируете множество настраиваемых заголовков и расширений SOAP или не устанавливаете WSE 3.0.

Можно ли включить сообщение Безопасность с вышеупомянутым сертификат без принуждения клиента для добавления сертификата в доверенное Лица вручную?

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

Нужно ли копировать сертификат веб-сервер, чтобы иметь возможность использовать Безопасность сообщений?

Да, вы должны. Но это может быть проблемой, потому что сертификат безопасности может быть помечен как не экспортируемый. Лучшим решением является запрос нового сертификата только для этой цели.