Я хотел бы использовать клиентские сертификаты для проверки идентификационных данных административных вызывающих сторон к моему веб-сервису. Затем я могу выпустить сертификаты только людям, которых я хочу назвать своим веб-сервисом, и не быть вполне уверенным никто еще не может назвать его. Это находится в очень управляемом сценарии, где только один или два человека получат клиентский сертификат, таким образом, распределение не будет тяжелой проблемой.
Эта статья предоставляет хороший пример того, как назвать веб-сервис с помощью клиентского сертификата.
Но как я могу проверить детали клиентского сертификата из моего веб-сервиса? Эта старая статья говорит о конфигурировании IIS, чтобы сделать это, но я хотел бы сделать это программно в рамках моего приложения. Я думаю?
спасибо за любые предложения!
Входящий запрос содержит коллекцию ClientCertificates, которую вы можете запросить - вы можете проверить различные поля в сертификате или проверить фактические необработанные байтовые данные (возможно, по хранилищу данных или другому источнику), если вы хочу полностью это проверить.
Обратите внимание: если вы выпускаете сертификаты из своего собственного частного ЦС, вам нужно будет установить сертификат ЦС на своем веб-сервере в хранилище, которое будет видно всем пользователям, иначе IIS не будет запрашивать эти сертификаты у пользователя (из-за к характеру того, как работает взаимодействие сервера и клиента.)