Действительно ли нужен пользователь Windows для авторизации сертификата клиента IIS, и если да, то как установить права этого пользователя?
Первоначально я разместил этот вопрос в securitystackexchange, но я не получил ожидаемого ответа, и я вижу, что эта тема тоже подходит.
Мне нужно соединить два сервера в разных местах, чтобы один из них (стек Linux) периодически отправлял HTTP-запросы другому (стек Windows) -Windows Server 2008 R2- с использованием заданий на основе cron.
На компьютере с Windows я собираюсь настроить IIS с самозаверяющим сертификатом для аутентификации клиента (путем закрепления сертификата) и шифрования соединения по SSL.
Я также собираюсь настроить IIS для запроса сертификата клиента для аутентификации сервера Linux. Я прошел учебник по настройке проверки подлинности сертификата, который включает сопоставление сертификата с учетной записью пользователя.
Меня не устраивает идея создания учетной записи пользователя для удаленного сервера, потому что я не хотел бы, чтобы кто-нибудь входил на сервер (Windows) с этой учетной записью.
Имея это в виду:
1) Мне действительно нужно создать пользователя на сервере Windows, чтобы включить авторизацию сертификата клиента?
2) если мне действительно нужно создать учетную запись на компьютере с Windows, что мне нужно настроить, чтобы этот пользователь не мог входить на сервер Windows и ничего не делать, кроме как аутентифицироваться в IIS?
Примечание: тег active-directory был добавлен @Lex Li. Я оставлю это, но я понимаю (и я могу ошибаться), что существуют проблемы безопасности с наличием активного каталога на интернет-серверах.
1 ответ
Я предполагаю, что нет другого способа, кроме как использовать http для вашей конкретной задачи, потому что я не знаю, какова цель этих запросов https (в противном случае приятно знать, что Windows 10 и Server 2016 наконец-то имеют поддержку SSH).
Я не знаю, какую версию IIS/Windows вы используете, поэтому я дам вам общее описание:
1) Да, и это является причиной:
Клиентские сертификаты предназначены для аутентификации, а не для авторизации, не путайте эти два. Авторизация - это то, что вы делаете с ролями / правилами / разрешениями и т. Д., Аутентификация позволяет серверу узнать, кто вы, и подтверждает вашу личность (сертификат клиента похож на идентификатор).
Также ответ - да, сертификат всегда связан с какой-то учетной записью. Это ничем не отличается от того, как Linux подходит к этому. Сразу после завершения аутентификации можно применить авторизацию. Или в общих чертах: просто потому, что я знаю, кто вы, не значит, что я позволю вам войти в мою спальню. Это зависит от того, являетесь ли вы сотрудником или членом семьи.
Если запрос к IIS представляет какую-либо проблему безопасности (которую я предполагаю), также должны быть установлены правила брандмауэра, VPN и т. Д., А также вы не хотите, чтобы неаутентифицированный пользователь инициировал какой-либо ответ на вашем сервере.,
2) Не разрешать доступ к серверу извне.
Если у вас есть Windows Server в Интернете, вы обязательно должны убедиться, что никто, к кому вы не хотите, имеет доступ к нему, брандмауэр обязателен! Таким образом, ваш вопрос о невозможности "войти на сервер Windows" вводит в заблуждение. IIS является частью сервера Windows и использует свою систему пользователя / группы / разрешения. Например, если вы посмотрите на группу Windows "Пользователи", вы увидите, что
Что вы хотите сделать, это:
Создайте пользователя для этой задачи и удалите ВСЕ пользовательские группы / роли. Пользователь не имеет абсолютно никаких разрешений. Затем в IIS предоставьте ему доступ на чтение к каталогу, доступ к которому вы хотите иметь только. Ваш гид должен охватить эту часть, я думаю.
На заметку: AD и IIS могут обрабатывать сертификаты клиентов. Если вы используете автономный IIS, ваш подход правильный, в среде AD вы настраиваете клиентские сертификаты в AD, а не в IIS.