Я работаю в небольшой компании по разработке программного обеспечения (50 сотрудников), и недавно мне было поручено поэкспериментировать с веб-сервисами. Поскольку мы в основном предлагаем решения для Windows, Я начал возиться с Microsoft WCF 4 (.NET 4.0). По сути, эти веб-сервисы в конечном итоге будут потребляться нашими клиентами через Интернет. Мы также будем использовать их для внутренних целей через нашу интранет.
Защита этих веб-сервисов - вот где я сейчас в растерянности. Я хочу использовать схему, которая вызовет наименьшие трудности с точки зрения поддержки / обслуживания. По сути, я хочу убедиться, что только клиенты, «сертифицированные» нами (например, клиенты, которые нам заплатили), могут использовать наши веб-службы.
Федеративная аутентификация с использованием Windows Identity Foundation (WIF) выглядит довольно аккуратно, и у меня есть несколько рабочих примеров с использованием самозаверяющих сертификатов и служб самостоятельного размещения (веб-службы и STS). В конечном итоге они будут размещены в IIS, если я выберу федеративную схему. Насколько я понимаю, у STS будет сертификат, выданный корневым центром сертификации. Веб-службы и клиенты также будут иметь сертификаты, выданные одним и тем же корневым центром сертификации. После этого клиенты смогут использовать веб-службы путем аутентификации сертификата через STS.
Теперь мой вопрос:
В нашей компании нет PKI. Если бы у нас был ЦС (и все, что необходимо для работающей PKI), смогли бы клиенты за пределами нашего домена использовать наши веб-службы с сертификатами, выданными нашим ЦС? Вот где мне до сих пор мутно. Как это будет работать? Как клиенты будут запрашивать сертификаты? Смогут ли они добавить наш центр сертификации в свои доверенные центры сертификации? Как они получат доступ к нашему CRL? Я думаю о Windows Server 2008 R2 со службами сертификации Active Directory.
Я здесь сбился с курса? Есть что-нибудь попроще?
Спасибо
Вы можете развернуть свой собственный PKI. Ваше основное ограничение будет заключаться в том, чтобы заставить всех ваших клиентов установить ваш CA Cert в качестве доверенного корневого сертификата. То есть заставить их всех доверять, когда вы говорите, что сервер безопасен (это очень широкое утверждение, и большинство ИТ-отделов будут возражать).
В противном случае то, что вы предлагаете, сработает.
Я мог бы предложить изучить использование OpenID, Windows Live ID или аналогичной службы для обработки аутентификации. Вы можете просто отслеживать авторизацию (какие идентификаторы принимаются) и не беспокоиться о сохранении паролей. Шифрование и предотвращение отказа от авторства можно легко обеспечить с помощью базового SSL или TLS и дешевого сертификата из общедоступного центра сертификации. Службы федерации отлично подходят для компаний с тесными партнерами, но обычно не используются для случайных отношений с клиентами.
PKI действительно разработан для безопасного обмена данными через небезопасный канал. Я не думаю, что PKI подойдет для ограничения доступа.
Я действительно ничего не знаю о WIF, но я предполагаю, что сертификаты PKI будут больше для клиентов, которые могут аутентифицировать серверы, как это делается сейчас в браузерах.