2014-01-15 3 views
0

Вот мой сценарий:Как использовать WCF Message Security с внешними клиентами

Мне нужно разместить приложение WCF веб-службы, которая будет потребляться несколькими клиентами. Каждый клиент несет ответственность за свое собственное клиентское приложение, и они будут создавать свои клиентские приложения с различными технологиями. Вероятно, ни один из их клиентов не будет .Net (вероятно, это Java или что-то еще).

Мне нужно реализовать уровень безопасности сообщений, чтобы соблюдать их политики (недостаточно безопасности транспорта).

Учитывая вышеуказанные требования, мне трудно понять, как реализовать Message Security в WCF, которые могут использоваться клиентами, которых я не контролирую. Все, что я прочитал, обсуждает сценарий, в котором я буду строить свой собственный клиент, и что клиент будет даже находиться в домене моей сети.

Если я внедряю защиту сообщений с сертификатом, могу ли я установить один сертификат на свой сервер и каждый клиент должен отвечать за установку своих собственных сертификатов на своих серверах? Можем ли мы затем использовать Message Security, просто поделившись открытыми ключами?

ответ

1

В общем, то, что вы говорите здесь в своем последнем абзаце, верно. Вы должны предоставить подписчикам вашей службы WCF файл с открытым ключом (.cer), который они должны установить и зарегистрировать в локальном компьютере/My store своих клиентских компьютеров.

На стороне хоста вы должны установить открытый ключ сертификата в свой магазин LocalMachine/TrustedPeople и закрытый ключ (.pfx или .pvk) в локальном хранилище LocalMachine/Personal.

Вы можете поменять место, где вы устанавливаете/регистрируете открытый и закрытый ключи, но тогда вам придется настроить службу WCF, чтобы найти эти элементы cert на вашем сервере. Клиенты должны будут сделать то же самое.

Это действительно работает. Я сделал это.

Вы можете автоматизировать некоторые из них с использованием .bat-файла и команд dOS makecert.exe и certmgr.exe для обеспечения того, чтобы все было установлено в правильных местах.

+0

Похоже, я на правильном пути, и здорово слышать, что вы сделали именно это. Я просто хочу прояснить одно: мне нужно экспортировать открытый ключ моего сертификата и передать его каждому клиенту, и им нужно импортировать этот сертификат на свою сторону. В свою очередь, им нужно экспортировать открытые ключи своих отдельных сертификатов, и мне нужно импортировать их на мою сторону. Верный? – Stoop

+1

Вам нужно только отправить свой открытый ключ (.cer) им, поскольку вы являетесь хостом. Вам от них не требуется никакого сертификата. Им нужно будет установить ваш сертификат на любых машинах, которые будут служить клиентами вашего хоста. В целях тестирования вы можете использовать сертификаты, которые вы создаете, используя функцию makecert в окнах. Это спасет вас и вашего клиента за деньги, но когда придет время производства ... ну, вы знаете. – Brian

Смежные вопросы