FreeIPA/OTP: различия между версиями
(Новая страница: «{{Stub}} Использование двухфакторной аутентификации (2FA) — это один из способов повысить безопасность аутентификации. Одним из наиболее популярных вариантов является использование одноразовых паролей (OTP). Существуют открытые стандарты механизмов OTP: *HO...») |
|||
Строка 175: | Строка 175: | ||
#: [[Изображение:Freeipa-OTP-08.png|FreeIPA. Добавление токена OTP для пользователя]] | #: [[Изображение:Freeipa-OTP-08.png|FreeIPA. Добавление токена OTP для пользователя]] | ||
#: [[Изображение:Freeipa-OTP-09.png|border|FreeIPA. Добавление токена OTP]] | #: [[Изображение:Freeipa-OTP-09.png|border|FreeIPA. Добавление токена OTP]] | ||
# Настроить токен, отсканировав полученный QR-код, например, с помощью FreeOTP. | # Настроить токен, отсканировав полученный QR-код, например, с помощью FreeOTP. | ||
{{Note|Окно добавления токена под учётной записью администратора («Аутентификация» -> «Токены OTP» -> «Добавить»): | |||
[[Изображение:Freeipa-OTP-10.png|border|FreeIPA. Добавление токена OTP под учётной записью администратора]]}} | |||
== Аутентификация == | == Аутентификация == |
Версия от 16:42, 9 февраля 2023
Использование двухфакторной аутентификации (2FA) — это один из способов повысить безопасность аутентификации. Одним из наиболее популярных вариантов является использование одноразовых паролей (OTP). Существуют открытые стандарты механизмов OTP:
- HOTP (на основе счётчика): RFC 4226
- TOTP (на основе времени): RFC 6238
Методы аутентификации
Во FreeIPA способы аутентификации пользователей могут быть установлены глобально или отдельно для каждого пользователя. Установка нескольких способов аутентификации позволяет использовать любой из указанных методов (логическое ИЛИ).
Определены следующие методы аутентификации пользователей (но не все могут быть реализованы):
- Пароль
- RADIUS
- Двухфакторная аутентификация (пароль + OTP)
- PKINIT
- Пароль с усиленной защитой (SPAKE или FAST)
- External Identity Provider
- Отключить переопределение на уровне пользователя (только в глобальной конфигурации)
Если значение не задано, используется парольная аутентификация.
Только администраторы могут изменять тип аутентификации пользователя (глобально или для каждого пользователя).
Разрешения (Permissions)
У токена может быть либо ноль, либо один владелец. Если у токена нет владельца, он считается не назначенным. У владелеца токена есть следующие права:
- чтение (read)
- аутентификация (authenticate)
- синхронизация (synchronize)
У токенов может быть ноль или более менеджеров. У менеджера токена есть следующие права:
- чтение (read)
- изменение (write)
- удаление (delete)
Администраторы могут создавать токены, которые либо не назначены/не управляемы, либо принадлежат и/или управляются любым пользователем. Пользователи могут создавать токены только себе (при этом они становятся владельцами и менеджерами созданного токена).
Управление функциями
Веб-интерфейс
Методы аутентификации
Глобальные методы аутентификации доступны на вкладке настроек сервера («IPA-сервер» -> «Конфигурация» -> «Стандартные типы аутентификации пользователей»).
Методы аутентификации для каждого пользователя будут доступны на странице пользователя («Идентификация» -> «Пользователи» -> «Пользователь» -> «Типы аутентификации пользователей»).
Конфигурация прокси-сервера RADIUS
Администраторам доступна вкладка «Аутентификация» -> «Серверы RADIUS» для управления прокси-серверами RADIUS. Эти серверы могут быть назначены отдельным пользователям на странице конкретного пользователя.
OTP-токены
Пользователям доступна вкладка для управления токенами («Токены OTP»), где можно добавлять, удалять и редактировать самоназначаемые/управляемые токены:
Администраторы на вкладке «Токены OTP» могут управлять токенами всех пользователей.
Ссылка на страницу синхронизации предоставляется на странице входа в систему FreeIPA.
Командная строка
Методы аутентификации
Изменение глобальных методов аутентификации:
ipa config-mod --user-auth-type=password/otp/radius
Изменение метода аутентификации пользователя:
ipa user-mod <user> --user-auth-type=password/otp/radius --radius=STR --radius-username=STR
Пример настройки
Командная строка
Создать нового пользователя:
$ kinit admin
Password for admin@EXAMPLE.TEST:
$ ipa user-add otptest
Имя: OTP
Фамилия: test
-------------------------------
Добавлен пользователь "otptest"
-------------------------------
Имя учётной записи пользователя: otptest
Имя: OTP
Фамилия: test
Полное имя: OTP test
Отображаемое имя: OTP test
Инициалы: Ot
Домашний каталог: /home/otptest
GECOS: OTP test
Оболочка входа: /bin/bash
Имя учётной записи: otptest@EXAMPLE.TEST
Псевдоним учётной записи: otptest@EXAMPLE.TEST
Адрес электронной почты: otptest@example.test
UID: 587200007
ID группы: 587200007
Пароль: False
Участник групп: ipausers
Доступные ключи Kerberos: False
$ ipa passwd otptest
Новый пароль:
Введите Новый пароль ещё раз для проверки:
-------------------------------------
Изменён пароль "otptest@EXAMPLE.TEST"
-------------------------------------
$ kinit otptest
Password for otptest@EXAMPLE.TEST:
Password expired. You must change it now.
Enter new password:
Enter it again:
Включить тип аутентификации «Двухфакторная аутентификация» для созданного пользователя:
$ kinit admin
Password for admin@EXAMPLE.TEST:
$ ipa user-mod otptest --user-auth-type=otp
------------------------------
Изменён пользователь "otptest"
------------------------------
Имя учётной записи пользователя: otptest
Имя: OTP
Фамилия: test
Домашний каталог: /home/otptest
Оболочка входа: /bin/bash
Имя учётной записи: otptest@EXAMPLE.TEST
Псевдоним учётной записи: otptest@EXAMPLE.TEST
Адрес электронной почты: otptest@example.test
UID: 587200007
ID группы: 587200007
Типы аутентификации пользователей: otp
Учётная запись отключена: False
Пароль: True
Участник групп: ipausers
Доступные ключи Kerberos: True
Добавить токен:
$ ipa otptoken-add --type=TOTP --desc=otptest_token --owner=otptest --algo=sha1 --digits=6 --interval=30
---------------------
Добавлен токен OTP ""
---------------------
Уникальный идентификатор: 33014fa0-0d7f-4775-a05c-05f09c6ff8e6
Тип: TOTP
Описание: otptest_token
Владелец: otptest
Ключ: hzNKJClpoG/nB0aer4/XQRfh7deLpTj0WKvaxNcZqAWX9SY=
Алгоритм: sha1
Цифры: 6
Смещение времени: 0
Временной интервал: 30
Универсальный код ресурса (URI): otpauth://totp/otptest@EXAMPLE.TEST:33014fa0-0d7f-4775-a05c-05f09c6ff8e6?issuer=otptest%40EXAMPLE.TEST&secret=Q4ZUUJBJNGQG7ZYHI2PK7D6XIEL6D3OXROSTR5CYVPNMJVYZVACZP5JG&digits=6&algorithm=SHA1&period=30
Отсканировать полученный QR-код с помощью FreeOTP.
Веб-интерфейс
Для добавления новых пользователей можно воспользоваться веб-интерфейсом FreeIPA:
- Открыть в веб-браузере адрес https://ipa.example.test/ipa/ui/ и ввести данные администратора для входа в систему.
- В окне «Активные пользователи» нажать кнопку «Добавить»:
- В открывшемся окне ввести данные пользователя и нажать кнопку «Добавить»:
- Выбрать созданного пользователя в списке пользователей и установить отметку в поле «Двухфакторная аутентификация (пароль + OTP)»:
- Создать токен OTP. Это можно сделать, как под учётной записью администратора, так и авторизовавшись в веб-интерфейсе под учётной записью пользователя.
- Настроить токен, отсканировав полученный QR-код, например, с помощью FreeOTP.
Аутентификация
При аутентификации на клиенте после ввода логина учетной записи пользователя FreeIPA необходимо последовательно ввести пароль (первый фактор) и код токена (второй фактор):
При аутентификации в веб-интерфейсе FreeIPA в поле «Пароль» необходимо ввести пароль и код токена (в форме <пароль><код токена>):