Статья предназначена для технических специалистов или архитекторов систем безопасности, которые хотят внедрить второй фактор аутентификации (2FA) в систему управления доступом для повышения безопасности учетных записей пользователей.
Добавление второго фактора существенно усложняет задачу компрометации учетных записей для злоумышленников.
OpenAM - система управления доступом с открытым исходным кодом. Предназначена для централизованного управления аутентификацией, авторизацией и учетными записями пользователей.
Microsoft Authenticator - мобильное приложение, предназначенное для использования в качестве дополнительного фактора аутентификации. Поддерживает PUSH уведомления, одноразовые пароли (TOTP), биометрическую аутентификацию.
В статье мы развернем OpenAM, настроим модули и цепочки аутентификации для использования совместно с Microsoft Authenticator или Google Authenticator и покажем как использовать.
Будем использовать аутентификацию с помощью одноразовых паролей, сгенерированных по протоколу TOTP (time based one-time password). Такие пароли не нужно отправлять на клиентское устройство через SMS или PUSH уведомления. Они генерируются по определенному криптографическому алгоритму непосредственно на устройстве.
Если у вас еще не установлен OpenAM, вы можете развернуть Docker контейнер, как описано по адресу.
Мы настроим модуль и цепочку аутентификации.
Модуль аутентификации в OpenAM отвечает за определенный способ аутентификации. Это может быть аутентификация с логином и паролем, по протоколу Kerberos или с использованием биометрии. Модули можно выстраивать в цепочки. Таким образом, вы можете выстраивать цепочки из модулей, чтобы аутентифицировать пользователей в несколько этапов или разными способами. Например, если не прошла бесшовная аутентификация по протоколу Kerberos, запросить у пользователя его логин и пароль.
Откройте консоль администратора по ссылке http://openam.example.org:8080/openam/console
В поле логин введите значение amadmin
в поле пароль введите пароль администратора, указанный при установке.
Откройте корневой realm, в меню слева выберите Authentication → Modules и нажмите кнопку Add Module
. В появившейся форме введите имя модуля, например totp
и тип модуля - Authenticator (OATH)
. Нажмите кнопку Create
.
Установите настройку OATH Algorithm to Use
в TOTP
, в поле Name of the Issuer
любое не пустое значение, например OpenAM
и нажмите Save Changes
.
Цепочка регистрации нужна для того, чтобы аутентифицированный пользователь мог подключить себе аутентификацию при помощи Microsoft Authenticator.
В консоли администратора в настройках realm в меню слева выберите Authentication → Chains и в открывшемся списке нажмите кнопку Add Chain
.
Введите имя цепочки totp-register
и нажмите кнопку Create
.
В настройках цепочки нажмите кнопку Add a Module
и добавьте созданный модуль аутентификации totp
как показано на рисунке. Нажмите кнопку OK
, а затем Save Changes
В этой цепочке мы уже настроим аутентификацию таким образом, чтобы после аутентификации с логином и паролем пользователь вводил одноразовый код из мобильного приложения Microsoft Authenticator.
В консоли администратора в настройках realm в меню слева выберите Authentication → Chains и в открывшемся списке нажмите кнопку Add Chain
.
Введите имя цепочки totp-login
и нажмите кнопку Create
. Первым добавьте модуль аутентификации с логином и паролем DataStore
. Потом добавьте модуль аутентификации с одноразовым кодом totp
.
Нажмите Save Changes
Скачайте приложение Microsoft Authenticator из магазина приложений, подходящего для вашего устройства.
Войдите в консоль с учетной записью тестового пользователя. Для этого выйдите из консоли администратора или откройте браузер в режиме “Инкогнито”. Перейдите по ссылке http://openam.example.org:8080/openam/XUI/#login/ и войдите в OpenAM с учетной записью demo
. Пароль по умолчанию changeit
.
После успешной аутентификации откройте в браузере ссылку цепочки регистрации устройства. http://openam.example.org:8080/openam/XUI/#login&service=totp-register.
Откройте приложение Microsoft Authenticator, нажмите кнопку Add account
Выберите Other account
Вам будет предложено сканировать QR код. Сканируйте его с экрана браузера с OpenAM. После сканирования в приложение Microsoft Authenticator будет добавлена учетная запись OpenAM.
Откройте добавленную учетную запись. Вам будет показан одноразовый пароль.
В браузере нажмите кнопку Login Using Verification Code
.
Введите одноразовый пароль из мобильного приложения и нажмите кнопку Submit
.
Выйдите из консоли OpenAM или откройте браузер в режиме “Инкогнито”. Перейдите по ссылке http://openam.example.org:8080/openam/XUI/#login&service=totp-login.
Введите логин и пароль пользователя demo
. После ввода логина и пароля OpenAM запросит одноразовый пароль из мобильного приложения. Откройте мобильное приложение выберите аккаунт пользователя demo
и введите в браузере одноразовый пароль из мобильного приложения и нажмите кнопку Submit
. После ввода корректного одноразового пароля аутентификация будет успешно завершена.