Для увеличения безопасности в системе многие организации, а особенно банки, вводят сервисы идентификации пользователей по кодовым словам, при обращении их в службу поддержки. Кодовое слово запоминается в карточке пользователя (в защищенной базе данных), а сотрудники службы поддержки имеют доступ к этой информации. Для выбора кодового слова обычно предлагается перечень ключевых вопросов, ответ на который и будет являться кодовым словом.
В этой статье я расскажу, как создать простой сервис идентификации пользователей, который так же включает в себя небольшой сервис самообслуживания.
Последовательность работы сервиса по идентификации пользователя
Необходимая инфраструктура:
- служба каталогов Microsoft Active Directory с уровнем работы домена Windows Server 2003 или выше,
- сервер с операционной системой Microsoft Windows Server 2003 с ролью IIS или выше,
- база данных Microsoft SQL Server 2000 или выше,
- почтовый сервер с возможностью отправлять письма через SMTP порт.
Для установки сервиса необходимо выполнить следующие действия:
1. Создать базу данных на сервере SQL (структуру базы можно найти в приложении).
2. Создать папку сайта перенапраления с HTTP на HTTPS, в которой разместить команду перенаправления на HTTPS ресурс. (файл перенаправления можно найти в приложении).
3. Создать папку сайта с основным кодом сервиса (листинг кода можно найти во вложении).
4. В IIS cоздать сайт для протокола HTTP, который указывает на папку перенаправления, созданную в пункте 2.
5. Создать отдельный пул приложений для сервиса.
6. Сформировать сертификат подписи HTTPS сессий для сервера и привязать его IIS.
7. В IIS создать сайт для протокола HTTPS, который указывает на папку с основным кодом программы, созданную в пункте 3. Выбрать созданный в пункте 5 пул приложений для работы сервиса. Выбрать протокол HTTPS и сертификат подписи сессий, созданный в пункте 6.
8. В папке с основным кодом сервиса найти подпапку App_Data и в ней отредактировать файл конфигурации Configuration.xml, указав все необходимые параметры ИТ-инфраструктуры компании.
9. Установить в расписание сервера скрипт NetworkStructure.cmd из папки App_Data, который будет регулярно сканировать структуру домена и обновлять подсети и доменные контроллеры для сайта - файл NetworkStructure.xml.
10. В папке с основным кодом сервиса найти подпапку App_Data и в ней отредактировать файл возможных контрольных вопросов Questions.xml, которые сервис будет предлагать пользователям в момент конфигурации профиля.
Как только сайт настроен, необходимо открыть его в браузере и протестировать на тестовом пользователе, на себе, на тестовой группе пользователей, после чего сервис можно публиковать для всей компании.
Для управления сервисом пользователям предлагается веб-интерфейс, который выполняется на сервере компании по протоколу HTTPS.
Первая страница сервиса состоит из 2 частей:
- самостоятельная разблокировка учетной записи,
- вход в систему для управления сервисом.
Чтобы разблокировать учетную запись, необходимо нажать на соответствующую кнопку первой страницы, система перенаправит пользователя на страницу идентификации по контрольным вопросам.
Чтобы войти в систему для управления сервисом, пользователю необходимо ввести учетные данные для входа в домен и нажать кнопку входа. Система сверит введенные учетные данные с данными в Active Directory и пропустит пользователя на следующую страницу в случае удачной проверки.
Страница выбора сервиса
На страницу управления сервисом пользователь может получить информацию о состоянии его учетной записи, а так же о состоянии сервиса. Чтобы изменить контрольные вопросы, необходимо нажать на кнопку изменения состояния сервиса, в этом случае система перенаправит пользователя на страницу управления секретными вопросами.
Страница свойств учетной записи
На странице управления состоянием сервиса пользователь может указать контрольные вопросы для его идентификации сервисом и службой ИТ-поддержки компании.
Страница управления секретными вопросами
Второй раздел сервиса предполагает самостоятельную разблокировку учетной записи или смену пароля. На первой странице сервиса самообслуживания необходимо указать учетную запись пользователя, которого нужно разблокировать, и его расположение, чтобы разблокировка произошла на ближайшем доменном контроллере.
Страница входа в сервис самообслуживания
На странице идентификации пользователя необходимо ответить на 2 из 3 случайных вопроса, которые пользователь задал на странице конфигурации сервиса.
Страница идентификации пользователя в сервисе самообслуживания
При успешной идентификации пользователя сервис перенаправит его на страницу управления пользователем, где можно задать новый пароль и разблокировать учетную запись в домене.
Страница управления состоянием учетной записи в сервисе самообслуживания
Для службы ИТ-поддержки используется специальная страница, на которой оператор службы поддержки может ввести учетную запись звонящего пользователя и задать ему вопрос из базы данных контрольных вопросов. При верном ответе на контрольный вопрос, оператор службы поддержки может продолжать работу с пользователем и выполнять его запрос.
Страница идентификации пользователя службой поддержки