Сервис идентификации пользователей

23.02.2014
Содержание
Введение

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

В этой статье я расскажу, как создать простой сервис идентификации пользователей, который так же включает в себя небольшой сервис самообслуживания.

User identification service
Последовательность работы сервиса по идентификации пользователя
Установка и настройка веб-сайта

Необходимая инфраструктура:
- служба каталогов 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 и пропустит пользователя на следующую страницу в случае удачной проверки.

User identification service
Страница выбора сервиса

На страницу управления сервисом пользователь может получить информацию о состоянии его учетной записи, а так же о состоянии сервиса. Чтобы изменить контрольные вопросы, необходимо нажать на кнопку изменения состояния сервиса, в этом случае система перенаправит пользователя на страницу управления секретными вопросами.

User identification service
Страница свойств учетной записи

На странице управления состоянием сервиса пользователь может указать контрольные вопросы для его идентификации сервисом и службой ИТ-поддержки компании.

User identification service
Страница управления секретными вопросами

Второй раздел сервиса предполагает самостоятельную разблокировку учетной записи или смену пароля. На первой странице сервиса самообслуживания необходимо указать учетную запись пользователя, которого нужно разблокировать, и его расположение, чтобы разблокировка произошла на ближайшем доменном контроллере.

User identification service
Страница входа в сервис самообслуживания

На странице идентификации пользователя необходимо ответить на 2 из 3 случайных вопроса, которые пользователь задал на странице конфигурации сервиса.

User identification service
Страница идентификации пользователя в сервисе самообслуживания

При успешной идентификации пользователя сервис перенаправит его на страницу управления пользователем, где можно задать новый пароль и разблокировать учетную запись в домене.

User identification service
Страница управления состоянием учетной записи в сервисе самообслуживания

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

User identification service
Страница идентификации пользователя службой поддержки
Виталий Бочкарев