#asp.net-mvc #ssl
#asp.net-mvc #ssl
Вопрос:
Я ищу, чтобы обеспечить ASP.NET Приложение MVC с аутентификацией по протоколу SSL и клиентскому сертификату. Я использую IIS 7.5, Windows Server 2008 R2.
Я хотел бы знать, возможно ли выполнить следующее через Web.config (это должно быть там!)
- Требуется связь по протоколу SSL для всех запросов
- Сопоставьте несколько клиентских сертификатов одному пользователю
- Требуется, чтобы пользователь прошел проверку подлинности
Кроме того, любые указания о том, как это сделать, любые учебные пособия или другие соответствующие ресурсы будут высоко оценены, поскольку я новичок практически во всех этих вещах.
Комментарии:
1. IIS 6.1 и Windows Server 2008 R2? Как происходит?
2. Извините! Это было очень глупо с моей стороны! Я имел в виду 7.5! Будет обновляться
Ответ №1:
Итак, чтобы ответить на мои собственные вопросы.. все вышеперечисленное может быть достигнуто с помощью Web.config. Следующий раздел Web.config требует SSL через раздел system / access и настраивает сопоставление сертификатов многих клиентов к одному. Эти разделы заблокированы в файле applicationHost.config, поэтому любому, кто хочет отредактировать их в Web.config, потребуется их разблокировать. Есть много руководств по этому вопросу, поэтому я не буду вдаваться в подробности.
<security>
<access sslFlags="Ssl, SslNegotiateCert" />
<authentication>
<anonymousAuthentication enabled="false" />
<iisClientCertificateMappingAuthentication enabled="true" manyToOneCertificateMappingsEnabled="true">
<manyToOneMappings>
<add name="Authentication Certificate"
enabled="true"
permissionMode="Allow"
userName="foo"
password="bar">
<rules>
<add certificateField="Issuer" certificateSubField="CN" matchCriteria="*.stackoverflow.com" compareCaseSensitive="false" />
</rules>
</add>
</manyToOneMappings>
</iisClientCertificateMappingAuthentication>
</authentication>
</security>
Ответ №2:
Идем по порядку:
-
Требовать SSL-связи для всех запросов — Да. В IIS установите для сайта только
https
привязку и удалитеhttp
привязку. Сайт не будет отвечать на http-запросы. Если вы сделаете это, вам следует создать скрипт для перенаправления ошибок 403.4 сhttp://mysite.com
наhttps://mysite.com
. Вы можете найти много примеров того, как это сделать, используя различные инструменты. -
Сопоставьте несколько клиентских сертификатов одному пользователю — я не знаю. Я передам это.
-
Требовать аутентификации пользователя — Да. В файле web.config в
<system.web>
элементе добавьте следующее:<authorization> <deny users="?"/> </authorization>
Комментарии:
1. Спасибо — это было полезно. Просто в итоге я сделал это по-другому.