У меня есть просьба от клиента, которая выглядит примерно так:
Это публичный веб-сайт снекоторыйинформация для сотрудников агентства. Мой клиент хочет иметь всплывающее окно на главной странице, которое будет показываться только для сотрудников.
Агентство использует карты CAC для аутентификации, на этих картах есть несколько сертификатов. На внутренних сайтах это довольно просто, настройте IIS соответствующим образом, а затем сравните с AD.
Однако, поскольку это внешний сайт, я не хочу аутентифицироваться как таковую. Я хочу, чтобы IIS молча проверял наличие CAC/сертификатов, если они есть, то запускал всплывающую логику, если нет, то игнорировал ее. Вторая часть — это все кодирование, но мне нужно знать, может ли IIS молча попытаться найти CAC/сертификаты
Моя первоначальная идея состояла в том, чтобы сравнить IP-адрес запроса с нашими внутренними диапазонами IP-адресов, но мои серверы находятся за балансировщиком нагрузки, и к тому времени, как запрос попадет на мои серверы, у него будет IP-адрес балансировщика нагрузки, и все запросы будут находиться в пределах диапазона.
Это сложная ситуация, и все мои до сих пор проведенные исследования говорят о том, что это невозможно, но я хотел спросить
заранее спасибо
решение1
Веб-сервер не может «заглядывать» в смарт-карты клиентов – этополностьюделается веб-браузером. Единственный способ, которым IIS может повлиять на это, — это отправка списка «приемлемых» DN-идентификаторов издателей сертификатов (и я думаю, что это больше невозможно в TLSv1.3). Но если браузер считает, что ему нужно показать список сертификатов, то онволяпоказать список сертификатов.
Большинство веб-сайтов, даже использующих CAC или другую аутентификацию с помощью клиентского сертификата, имеют выделенный URL-адрес входа, который требует аутентификации с помощью сертификата, но остальная часть системы этого не делает. Вместо этого состояние «входа в систему» передается через традиционные файлы cookie/сеансы. Это позволяет системе предлагать несколько различных методов аутентификации. (Я не знаю, поддерживает ли IIS аутентификацию с помощью сертификата по URL-адресу; возможно, вам придется использовать отдельный поддомен для страницы «входа».)
Одним из примеров является страница «входа» по адресу https://account.cern.ch/account/
, которая, по-видимому, на самом деле обрабатывает все через Microsoft ADFS.
В качестве альтернативы вы можете разместить все веб-приложение на двух разных поддоменах: один для публичного доступа, другой, требующий аутентификации. ( https://public.cyber.mil/
Это один из примеров, который я недавно видел.)