Определение учетных данных пользователя с использованием смарт-карты (X.509) и PKI в ASP.NET (MVC 5)

Я создаю приложение с использованием платформы ASP.NET, реализую шаблон MVC 5 с Identity 2.0, на новой версии IIS и новой версии M$ SQL.

Предположим, вы находитесь в интрасети, где пользователям назначается смарт-карта (X.509) с их учетными данными. Цель состоит в том, чтобы иметь локальный экземпляр идентификатора пользователя в вашем приложении, просто проверяя, что смарт-карта может быть разблокирована пользователем (используя его PIN-код) без пароля.

IIS позаботится об аспекте аутентификации веб-приложения, проверив цепочку сертификатов на смарт-карте, предоставив переменные для каждого сеанса (например, их UPN), которые затем можно использовать для запроса на указанном сервере LDAP их электронной почты, полного имени, псевдонима. и т. д., создавая свою идентичность. По сути, он настроен на выполнение функции PKI.

Мой вопрос: каков подходящий способ хранения, поиска и обработки сеанса? Прямо сейчас я сохранил UPN как имя пользователя, а детали LDAP - как другие атрибуты их личности. Используя UPN, приложение регистрирует их без пароля.

Если я предполагаю, что IIS проверил, кто они, как они говорят, с помощью смарт-карты /PIN-кода (аутентификация), и у меня есть администраторы, назначающие этим пользователям роль после регистрации (авторизация), уязвим ли мой сайт?

Можно ли подделать учетные данные смарт-карты, предоставив IIS UPN, который не принадлежит им? Я полагаю, что это будет очень плохая дыра в безопасности, если это возможно.

0 ответов

Другие вопросы по тегам