ПРАКТИЧЕСКОЕ руководство: Безопасные веб-приложения ASP.NET с помощью клиентских сертификатов

Переводы статьи Переводы статьи
Код статьи: 315588 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

Для повышенной защиты веб-приложений, таких как банковские операции веб-узлов нужно реализовать более безопасным решением для проверки подлинности пользователей, чем комбинация имени пользователя и пароля. С помощью клиентских сертификатов для проверки подлинности пользователя. Кроме того учетные записи Windows на сервере, при необходимости можно сопоставить цифровые сертификаты со стороны клиента.


Требования

В следующем списке представлены оборудования, программного обеспечения, сетевой инфраструктуры и пакетов обновления, необходимо:
  • Сервер под управлением Microsoft Windows 2000 с пакетом обновления 2
  • Обозреватель Microsoft Internet Explorer 6.0
  • Microsoft Visual Studio.NET
  • Службы сертификации (если необходимо создавать свои собственные сертификаты)
Предполагается, что вы знакомы с следующие темы:
  • ASP.NET разработки с использованием Visual Basic или Visual C#
  • Конфигурация служб информации Интернета (IIS) для Microsoft

Создание приложения ASP.NET веб-приложения

В этом разделе создается простая страница ASP.NET приложения. В разделах следовать будет использовать проверку подлинности клиентского сертификата безопасности этого приложения.
  1. Запустите Visual Studio.NET, а затем создать новую страницу ASP.NET веб-приложений проект с именем SecureSite.
  2. Перетаскивание Метка с панели инструментов на форму WebForm1.aspx Web и установите его ИДЕНТИФИКАТОР Свойство greetingLabel.
  3. Перетащите второй Метка управления WebForm1.aspx и установите его ИДЕНТИФИКАТОР Свойство certDataLabel.
  4. Добавьте следующий код для Page_Load Процедура обработки события:
    'Visual Basic
    Dim username As String
    userName = User.Identity.Name
    greetingLabel.Text = "Welcome " & userName
    Dim cert As HttpClientCertificate = Request.ClientCertificate
    If cert.IsPresent Then
    	'Get the Organization (O) field from the Subject section.
    	certDataLabel.Text = cert.Get("Subject O")
    Else
    	certDataLabel.Text = "No certificate was found."
    End If
    					
    //Visual C#
    string userName;
    userName = User.Identity.Name;
    greetingLabel.Text = "Welcome " + userName;
    HttpClientCertificate cert = Request.ClientCertificate;
    if (cert.IsPresent)
        certDataLabel.Text = cert.Get("SUBJECT O");
    else
        certDataLabel.Text="No certificate was found.";
    					
  5. Создать и сохранить проект, а затем закройте Visual Studio.
  6. Запустите обозреватель Internet Explorer и перейдите на следующую страницу:
    http://localhost/SecureSite/WebForm1.aspx
    Обратите внимание на то, что на странице отображается «Добро» и «не найден сертификат» сообщения. Обратите внимание на то, что страницы не отображает имя пользователя, так как пользователь не прошел проверку подлинности.
  7. Закройте обозреватель Internet Explorer.

Настройка веб-сервера для проверки подлинности на основе сертификатов

В этом разделе выполняется настройка проекта SecureSite сертификаты для проверки подлинности. Использование клиентских сертификатов, необходимо установить сертификат на сервере. Можно использовать существующий сертификат сервера из любого центра сертификации или создать сертификат на сервере с помощью служб сертификации Microsoft.


Чтобы создать запрос сертификата на сервере

  1. На Начало Выберите пункт Программы, выберите пункт Администрирование, а затем нажмите кнопку Диспетчер служб Интернета.
  2. Разверните узел для сервера и нажмите кнопку Веб-узел по умолчанию.
  3. На Действие меню, нажмите кнопку Свойства.
  4. На Безопасность каталога Щелкните Сертификат сервера. Выполните следующие действия в мастере.
    1. Нажмите кнопку Далее на первой странице мастера.
    2. На Сертификат сервера Выберите Создать новый сертификат, а затем нажмите кнопку Далее.
    3. На Отложенный или немедленный запрос Выберите Подготовить запрос сейчас, но отправить позже, а затем нажмите кнопку Далее.
    4. На Настройка имени и безопасности страницы, примите параметры по умолчанию и нажмите кнопку Далее.
    5. На Сведения об организации страницы, тип MSDN в организации введите Порядок статей для подразделения, а затем нажмите кнопку Далее.
    6. На Общее имя веб-узла страницы, тип localhost, а затем нажмите кнопку Далее.
    7. На Сведения О местоположении страницы, введите страну, регион и Город сведения и нажмите кнопку Далее.
    8. На Имя файла запроса сертификата страницы, примите имя по умолчанию (обычно c:\certreq.txt) и нажмите кнопку Далее.
    9. На Сведения О файле запроса страницы, убедитесь, что все детали верны и нажмите кнопку Далее.
    10. Нажмите кнопку Окончание Чтобы закрыть мастер.
  5. Откройте созданный файл сертификата и скопируйте все содержимое файла сертификата в буфер обмена.

Чтобы отправить запрос сертификата на сервере

  1. Запустите обозреватель Internet Explorer и перейдите на следующую страницу:
    http://localhost/certsrv
    ПРИМЕЧАНИЕ: Необходимо установить службы сертификации Microsoft.
  2. Выполните следующие действия в мастере.
    1. Нажмите кнопку Запрос сертификата, а затем нажмите кнопку Далее.
    2. На Выбор типа запроса Выберите Расширенный запрос, а затем нажмите кнопку Далее.
    3. На Расширенный запрос сертификата Выберите Запрос сертификата с помощью файла PKCS # 10 в кодировке base64, а затем нажмите кнопку Далее.
    4. На Выдать сохраненный запрос Выберите в Запрос на сертификат закодированные методом base64 (PKCS # 10 или # 7) затем нажмите клавишу CTRL + V комбинация вставить запрос на сертификат, скопированный в буфер обмена ранее. Нажмите кнопку Отправить.
  3. Закройте обозреватель Internet Explorer.

Для выдачи сертификатов на сервере

  1. На Начало Выберите пункт Программы, выберите пункт Администрирование, а затем нажмите кнопку Центр сертификации.
  2. Разверните узел для центра сертификации, а затем выберите Запросы в ожидании.
  3. Выберите запрос сертификата, который только что отправлен. На Действие Выберите пункт Все задачи, а затем нажмите кнопку Проблема.
  4. Убедитесь, что сертификат будет отображен в папке выданные сертификаты и дважды щелкните сертификат, чтобы просмотреть его.
  5. На Подробности Щелкните Копировать файл. Сохраните сертификат как сертификат X.509, C:\Servercert.cer в кодировке Base 64.
  6. Закрыть Свойства диалоговое окно для сертификата.
  7. Закройте средство центром сертификации.

Чтобы установить сертификат на сервере

  1. На Начало Выберите пункт Программы, выберите пункт Администрирование, а затем нажмите кнопку Диспетчер служб Интернета.
  2. Разверните узел для сервера и нажмите кнопку Веб-узел по умолчанию.
  3. На Действие меню, нажмите кнопку Свойства.
  4. На Безопасность каталога Щелкните Сертификат сервера. Выполните следующие действия в мастере.
    1. Нажмите кнопку Далее на первой странице мастера.
    2. Нажмите кнопку Обработка ожидающего запроса Чтобы установить сертификат и нажмите кнопку Далее.
    3. Найдите сохраненный ранее файл сертификата C:\Servercert.cer. Нажмите кнопку Далее два раза нажмите кнопку Окончание.
  5. Нажмите кнопку ОК Чтобы закрыть Свойства диалоговое окно.

Чтобы настроить узел SecureSite для SSL и клиентские сертификаты

  1. В диспетчере служб Интернета выберите дочерний веб-узел SecureSite и просмотреть его свойства.
  2. Выполните следующие действия в мастере.
    1. На Безопасность каталога Щелкните Редактирование В диалоговом окне Безопасные подключения раздел.
    2. Выберите Требуется безопасный канал (SSL) флажок. Это гарантирует шифрование соединений для этого дочернего веб-узла.
    3. Выберите Требовать сертификаты клиентов флажок. Это гарантирует, что веб-узла можно просматривать только пользователи, имеющие установленный клиентский сертификат.
    4. Выберите Включить сопоставление сертификатов клиентов флажок. Используется для сопоставления сертификатов учетным записям пользователей Windows.
    5. Нажмите кнопку Редактирование. Обратите внимание на то, что каждый сертификат можно сопоставить с отдельной учетной записи Windows, или можно сопоставить несколько сертификатов одной учетной записи Windows.
    6. На Многие к одному Щелкните Добавить для добавления нового сопоставления. Имя правила Правило сопоставления, а затем нажмите кнопку Далее.
    7. Нажмите кнопку Новый Чтобы создать новое правило, в котором o дополнительное поле (организации) в разделе субъекта сертификата имеет критерий «msdn». Нажмите кнопку ОК Применение сопоставления для пользователей, чьи сертификаты содержат атрибут организации «msdn». В рабочей среде правило сопоставления более строгие и часто использует для проверки имени поставщика сертификата, а также тема. Нажмите кнопку Далее.
    8. На Сопоставление Страница выбора Принять данный сертификат для проверки подлинности при входе. Нажмите кнопку Обзор Чтобы выбрать учетную запись Windows, которую требуется сопоставить пользователям MSDN. В этом примере с помощью учетной записи администратора. (В реальном приложении, можно создать выделенную учетную запись Windows с ограниченными правами.) Убедитесь, что ввести правильный пароль.
    9. Нажмите кнопку Окончание, а затем подтвердите его.
  3. Нажмите кнопку ОК Чтобы закрыть Сопоставление с учетными записями диалоговое окно.
  4. Нажмите кнопку ОК Чтобы закрыть Безопасные подключения диалоговое окно. Если будет предложено установить параметры для дочерних файлов и папок, нажмите кнопку Выбрать все, а затем нажмите кнопку ОК.
  5. Нажмите кнопку ОК Чтобы закрыть Свойства SecureSite диалоговое окно.

Для проверки подлинности сертификата

  1. Запустите обозреватель Internet Explorer и перейдите на следующую страницу:
    https://localhost/SecureSite/WebForm1.aspx
    Обратите внимание на то, что использование безопасного протокола https.
  2. Убедитесь, что появляется сообщение, что страница требует клиентский сертификат.
  3. Закройте обозреватель Internet Explorer.

Установите сертификат клиента

В этом разделе Установка клиентского сертификата. Использовать сертификат из любого центра сертификации или с помощью службы сертификации для создания собственного сертификата.


Чтобы запросить сертификат со стороны клиента

  1. Запустите обозреватель Internet Explorer и перейдите на следующую страницу:
    http://localhost/certsrv
  2. Выполните следующие действия в мастере.
    1. Нажмите кнопку Запрос сертификата, а затем нажмите кнопку Далее.
    2. На Выбор типа запроса Выберите Сертификат веб-обозревателя, а затем нажмите кнопку Далее.
    3. Введите требуемые сведения. Убедитесь, что при вводе MSDN В диалоговом окне Компания текстовое поле.
    4. Нажмите кнопку Отправить Чтобы выполнить запрос.
  3. Закройте обозреватель Internet Explorer.

Для выдачи клиентских сертификатов

  1. Запустите средство из центра сертификации Администрирование Группа программ.
  2. Разверните узел для центра сертификации, а затем выберите Запросы в ожидании.
  3. Выберите запрос сертификата, который только что отправлен. На Действие Выберите пункт Все задачи, а затем нажмите кнопку Проблема.
  4. Убедитесь, что сертификат будет отображен в папке выданные сертификаты и дважды щелкните сертификат, чтобы просмотреть его.
  5. На Подробности Щелкните Копировать файл. Сохраните сертификат как сертификат X.509, C:\Clientcert.cer в кодировке Base 64.
  6. Закрыть Свойства диалоговое окно для сертификата.
  7. Закройте средство центром сертификации.

Чтобы установить клиентский сертификат

  1. Откройте проводник Windows и дважды щелкните Clientcert.cer, чтобы просмотреть файл сертификата.
  2. Выполните следующие действия в мастере импорта сертификатов.
    1. На первой странице мастера нажмите кнопку Установка сертификата, а затем нажмите кнопку Далее.
    2. Выберите Автоматически выберите хранилище на основе типа сертификата Установите флажок и нажмите кнопку Далее.
    3. Нажмите кнопку Окончание Чтобы завершить работу мастера.
  3. Закрыть диалоговое окно подтверждения и нажмите кнопку ОК Чтобы закрыть сертификат.

Убедитесь, что он работает

В этом разделе Убедитесь, что клиентские приложения с помощью сертификатов, которые определяют «msdn» как компании могут просматривать узел SecureSite. Пользователи сопоставляются учетной записи, указанной в правила сопоставления.
  1. Запустите обозреватель Internet Explorer и перейдите на следующую страницу:
    https://localhost/SecureSite/WebForm1.aspx
  2. Убедитесь, что:
    • Откроется веб-страница.
    • Используется соответствующий учетной записи Windows.
    • Организация «msdn» чтение из сертификата.

Ссылки

Для получения дополнительных сведений об использовании протокола SSL (Secure Sockets Layer) для защиты веб-узла щелкните следующий номер статьи базы знаний Майкрософт:
298805 Включение SSL для всех клиентов, которые взаимодействуют с веб-узла в службах IIS

Свойства

Код статьи: 315588 - Последний отзыв: 7 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
  • Microsoft Internet Information Services 6.0
Ключевые слова: 
kbhowtomaster kbsecurity kbmt KB315588 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:315588

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com