[ ] [ Общие сведения ] [ Методика первичной кастомизации шаблонов для версий FAM 1.7 и младше ] [ Методика первичной кастомизации шаблонов для версий FAM 1.8 и старше ] [ Методика обновления кастомизированных шаблонов при обновлении системы ] [ Перечень шаблонов ] [ Изменение отдельных страниц ] [ Изменение шаблона формы самостоятельной регистрации ] [ Изменение страницы, отображаемой пользователю при выполнении успешной регистрации ] [ Изменение страниц аутентификации по факторам ] [ Изменение писем восстановления доступа ] [ Переопределение сообщений локализации ]
Общие сведения
Страницы, отображаемые не аутентифицированному пользователю, могут быть кастомизированы и стилизованы. Кастомизация доступна для следующих элементов интерфейса:
- Страницы аутентификации с использованием различных методов и факторов аутентификации.
- Страницы регистрации.
- Страницы и письма восстановления доступа.
- Страницы аутентификации посредством доверенных провайдеров.
- Страницы инициализации аутентификаторов.
- Страницы ошибок.
- Шаблоны писем.
- Системные сообщения в части локализации.
Весь перечень доступных для кастомизации шаблонов доступен в Таблице. Для версии FAM 1.7 или младше, шаблоны страниц по умолчанию размещены по пути: public/templates/default
относительно базового каталога /opt/idp (/opt/idp/public/templates/default)
. Путь /opt/idp
зависит от места установки файлов системы и может отличаться в различных развёртываниях системы.
Не следует редактировать и заменять служебные файлы шаблонов, размещённые по пути public/templates/*.html
.
Путь к файлам шаблона задаётся в конфигурационном файле системы config.toml
(config.toml
используется вместо конфигурационного файла config.json
с версии FAM v1.8.7.346) в параметре templates
секции templates
:
"templates": { "templates": "public/templates/default", ... },
Для версии FAM 1.8 или старше, шаблоны расположены по пути /opt/idp/public/views/standard
.
Не следует редактировать и заменять служебные файлы шаблонов, размещённые по пути public/views/standard/*.html.
Путь к файлам шаблона задаётся в конфигурационном файле системы config.toml
в секции ui-templates
(для версий FAM от 1.9 и старше):
[ui-templates] dir = '/opt/idp/public/views' bundle = 'custom'
Методика первичной кастомизации шаблонов для версий FAM 1.7 и младше
При кастомизации шаблонов стоит придерживаться следующих рекомендаций:
- Не рекомендуется вносить изменения в файлы, расположенные по пути
public/templates/default
. - Для проверки шаблонов нужно использовать развёрнутый экземпляр продукта. Поэтому рекомендуется проверять шаблоны на тестовой среде с Avanpost FAM перед внесением изменений в шаблоны на продуктивном сервере.
- Чтобы контролировать изменения, следует использовать систему управления версиями (например, Git). Для этого в системе управления версиями необходимо инициализировать репозиторий.
- Рекомендуется хранить актуальную копию репозитория системы управления версиями отдельно от сервера с развёрнутым Avanpost FAM.
Для кастомизации шаблонов необходимо совершить следующие действия:
Скопировать файлы из каталога
public/templates/default
в новый каталог. Например, администратор может создать каталогpublic/templates/custom1
(гдеcustom1
- произвольное имя каталога для кастомизируемых шаблонов) и переместить файлы в него:cp -R /opt/idp/public/templates/default /opt/idp/public/templates/custom
- Инициализировать репозиторий в созданном каталоге (в рассматриваемом примере по пути
/opt/idp/public/templates/custom1
). Добавить файлы из каталога/opt/idp/public/templates/custom
в репозиторий системы управления версиями и выполнить отправку изменений в удалённый репозиторий (remote
в терминологии Git). В конфигурационном файле системы
config.json
внести изменения в параметрtemplates
в секцииtemplates
, указав новый путь к каталогу с шаблонами (в рассматриваемом примере:public/templates/custom
):"templates": { "templates": "public/templates/custom", ... },
- Выполнить перезапуск службы системы (команда зависит от ОС).
Методика первичной кастомизации шаблонов для версий FAM 1.8 и старше
При кастомизации шаблонов стоит придерживаться следующих рекомендаций:
- Не рекомендуется вносить изменения в файлы, расположенные по пути
public/views/standard
. - Для проверки шаблонов нужно использовать развёрнутый экземпляр продукта. Поэтому рекомендуется проверять шаблоны на тестовой среде с Avanpost FAM перед внесением изменений в шаблоны на продуктивном сервере.
- Чтобы контролировать изменения, следует использовать систему управления версиями (например, Git). Для этого в системе управления версиями необходимо инициализировать репозиторий.
- Рекомендуется хранить актуальную копию репозитория системы управления версиями отдельно от сервера с развёрнутым Avanpost FAM.
Для кастомизации шаблонов необходимо совершить следующие действия:
Скопировать файлы из каталога
public/views/standard
в новый каталог. Для версии 1.8 следует скопировать отдельно каталогpublic/views/standard
и переименовать (например,origin
), а в папкеstandard
вносить правки по шаблонам. Для версии 1.9 и выше необходимо создать каталогpublic/views/custom
, гдеcustom
- произвольное имя каталога для кастомизируемых шаблонов, и переместить файлы в него:cp -R /opt/idp/public/views/standard /opt/idp/public/views/custom
- Инициализировать репозиторий в созданном каталоге (в рассматриваемом случае по пути
/opt/idp/public/views/custom
). Добавить все файлы из каталога/opt/idp/public/views/custom
в репозиторий системы управления версиями и выполнить отправку изменений в удалённый репозиторий (remote
в терминологии Git). В конфигурационном файле системы
config.toml
внести изменения в секцииui-templates
(для версий FAM от 1.9 и старше), указав новый путь к каталогу с шаблонами (в рассматриваемом примере путь/opt/idp/public/views/custom
):[ui-templates] dir = '/opt/idp/public/views' bundle = 'custom'
- Выполнить перезапуск службы системы (команда зависит от ОС).
Методика обновления кастомизированных шаблонов при обновлении системы
При обновлении системы следует пользоваться инструментарием системы управления версиями, который позволяет сравнить и выполнить слияние (merge
в терминологии Git) двух каталогов.
Перечень шаблонов
Таблица шаблонов, доступных для кастомизации:
Файл шаблона | Файл шаблона, версия FAM 1.8 | Назначение |
---|---|---|
403.esia.html | Актуально до версии 1.5.1 | Страница "Ошибка доступа" при аутентификации через ЕСИА |
403.html | Актуально до версии 1.5.1 | Страница "Ошибка доступа" для стандартных сценариев аутентификации |
500.esia.html | 500.html | Страница "Внутренняя ошибка сервера" при аутентификации через ЕСИА |
500.html | 500.html | Страница "Внутренняя ошибка сервера" для стандартных сценариев аутентификации |
badrequest.html | blocked.html | Страница "Некорректный запрос" для стандартных сценариев аутентификации |
certfactor.html | certfactor.gohtml | Страница аутентификации по сертификату |
changepassword.badrequest.html | blocked.html | Страница с ошибкой "Некорректный запрос" при выполнении смены пароля |
changepassword.html | Не актуален. | Страница смены пароля |
changepassword.invalidtoken.html | blocked.html | Страница с ошибкой "Некорректный токен" при выполнении смены пароля |
changepasswordlink.html | Не актуально. | Страница со ссылкой на смену пароля |
changepassword.ok.html | restorepassword-change.html | Страница с сообщением об успешной смене пароля |
changepassword.usernotfound.html | Не актуально. | Страница с ошибкой о том, что не удалось найти пользователя при смене пароля |
factorblockederror.html | blocked.html | Страница с ошибкой "Фактор заблокирован" |
Не используется. Основная страница login.password.html | identification.html | Страница идентификации |
kerberos.skip.html | kerberos.skip.html | Страница пропуска Kerberos-аутентификации |
login.emailOtp.codeForm.html | email-otp.html | Страница аутентификации по одноразовому коду, шаг запроса кода |
login.emailOtp.initialForm.html | email-otp-set-address.html | Страница аутентификации по одноразовому коду, шаг инициализации запроса |
login.external-provider.infoconfirmation.html | webauthn-login.html | Страница подтверждения данных пользователя при аутентификации через внешний провайдер аутентификации |
login.password.from.esia.html | webauthn-registration.html | Страница привязки учётной записи ЕСИА к пользователю, аутентифицированному через ЕСИА, посредством дополнительной аутентификации |
login.password.html | Не используется. Основная страница identification.html. | Страница аутентификации по паролю |
login.password.without-username.html | password-login-without-username.html | Страница аутентификации по паролю без ввода имени пользователя |
login.paycontrol.prompt.html | paycontrol.gohtml | Страница запроса аутентификации по PayControl |
login.totp.init.html | initflow-totp.html | Страница инициализации TOTP |
login.totp.init.with-password.html | initflow-totp.html | Страница инициализации TOTP с вводом пароля |
login.totp.passcode.html | totp-passcode.html | Страница запроса одноразового кода TOTP |
login.totp.welcome.html | totp-bind.html | Страница привязки TOTP-аутентификатора |
logout.html | logout.html | Страница завершения сессии |
shared/_LogoPartial.html | Страница логотипа | |
mobile.init.html | authenticator-bind.html | Страница привязки мобильного аутентификатора Avanpost Authenticator |
mobile.password.html | authenticator-wait-approve.html | Страница аутентификации посредством мобильного аутентификатора Avanpost Authenticator с возможностью ввода OTP |
new.password.html | password-change-on-logon.html | Страница замены пароля в случае его истечения |
notavailable.html | blocked.html | Страница с ошибкой "Нет доступа" |
oauth2-required-claims.html | oauth2-required-claims.html | Страница с ожиданием появления значения дополнительного claim |
pickfactor.html | select-factor.html | Страница выбора фактора аутентификации |
pickfactor.username.html | Не используется. Основная страница select-factor.html | Страница выбора фактора аутентификации с идентификацией по имени пользователя |
restorepassword.change.html | restorepassword-change.html | Страница замены пароля в сценарии восстановления доступа |
restorepassword.email.html |
| Шаблон письма для восстановления пароля |
restorepassword.error.html | Не актуально. | Страница ошибки в сценарии восстановления доступа |
restorepassword.sendlink.html | restorepassword-by-email-code.html | Страница отправки письма на почту с идентификацией по логину |
restorepassword.sendlink.withoutlogin.html | restorepassword-by-email-captcha.html | Страница отправки письма на почту без запроса логина |
restorepassword.verifycode.html | Шаблоны писем остались по прежнему адресу с таким же именем, как и раньше. | Шаблон письма с кодом верификации |
reverseproxy.accountregistration.html | select-factor.html | Страница добавления учётной записи Reverse Proxy-приложения в аккаунт пользователя, у которого не привязан ни один аккаунт RP-приложения |
reverseproxy.changepassword.html | password-change-on-logon.html | Страница замены пароля Reverse Proxy-приложения в случае если пароль истёк или не подходит |
selfregistration-emailmessage.html | Шаблоны писем остались по прежнему адресу с таким же именем, как и раньше. | Шаблон письма об успешной регистрации |
selfregistration.html | registration.html | Страница с формой самостоятельной регистрации |
selfregistration-invalidtoken.html | registration.html | Страница с ошибкой о некорректном токене в сценарии самостоятельной регистрации |
selfregistration-successed.html | registration-result.html | Страница с сообщением об успешной самостоятельной регистрации |
selfregistration-verifycannotunlock.html | wrong-password-captcha.html | Страница с сообщением о не пройденной проверке капчи |
selfregistration-verifysuccessed.html | wrong-password-captcha.html | Страница с сообщением о пройденной проверке капчи |
session-limitexceeded.html | session-limitexceeded.html | Страница с сообщением о превышении числа доступных сессий для приложения |
sms.html | sms-otp.html | Страница аутентификации посредством SMS OTP |
sms.init.html | initflow-sms.html | Страница привязки SMS OTP-аутентификатора |
sms.phone.html | initflow-sms.html | Страница ввода номера телефона для привязки SMS OTP-аутентификатора |
step.activate-by-email.html | registration-result.html | Страница с активацией аккаунта пользователя, прошедшего самостоятельную регистрацию, по E-mail |
step.sms.html | initflow-sms.html | Страница с привязкой SMS-аутентификатора в процессе сценария инициализации |
step.telegram.html | initflow-telegram.html | Страница с привязкой Telegram-аутентификатора в процессе сценария инициализации |
step.totp.html | initflow-totp.html | Страница с привязкой TOTP-аутентификатора в процессе сценария инициализации |
telegram.html | telegram.html | Страница с аутентификацией посредством Telegram |
telegram.init.html | telegram-bind.html | Страница с инициализацией Telegram-аутентификатора в процессе аутентификации |
webauthn.html | webauthn-login.html | Страница с аутентификацией посредством WebAuthn-аутентификатора в процессе аутентификации |
webauthn.registration.html | webauthn.registration.html | Страница с привязкой WebAuthn-аутентификатора в процессе аутентификации |
Изменение отдельных страниц
Изменение шаблона формы самостоятельной регистрации
Для интерфейса формы самостоятельной регистрации, отображаемой пользователям Avanpost FAM, доступны следующие настройки:
- настройка состава и расположения полей формы регистрации;
- кастомизация с учётом корпоративного стиля.
Для изменения шаблона самостоятельной регистрации следует выполнить следующие действия:
- Открыть каталог с шаблонами (указан в значении параметра
dir
секцииtemplates
в конфигурационном файле Серверного компонента; по умолчанию он содержит значение «public/templates/default
»). - Найти файл шаблона
selfregistration.html.
- Отредактировать текст шаблона, используя любой текстовый редактор.
Изменение страницы, отображаемой пользователю при выполнении успешной регистрации
По умолчанию отображается шаблон selfregistration-successed.html
, расположенный в каталоге, указанном в параметре dir
секции templates
в конфигурационном файле Серверного компонента.
Для кастомизации страницы с сообщением об успешной регистрации следует выполнить следующие действия:
- Открыть каталог с шаблонами (указанный в значении параметра
dir
секцииtemplates
в конфигурационном файле Серверного компонента; по умолчанию он содержит значение «public/templates/default
») и - Найти файл шаблона
selfregistration-successed.html
.
- Отредактировать текст шаблона, используя любой текстовый редактор.
При выполнении успешной регистрации пользователь может быть перенаправлен на произвольную страницу, указанную в значении параметра redirectUrl
секции selfregistration
в конфигурационном файле Серверного компонента. Если этот параметр задан, пользователю не будет показан шаблон страницы с сообщением об успешной регистрации, и пользователь будет сразу перенаправлен на указанный redirectUrl
.
Изменение страниц аутентификации по факторам
Все файлы шаблонов в каталоге public/templates/default
могут быть заменены на требуемые HTML-шаблоны в корпоративном стиле.
В случае выполнения замены рекомендуется скопировать содержимое каталога public/templates/default
в каталог соответствующей кастомизации public/templates/<custom>
и затем выполнять внесение изменений для кастомизации.
Изменение писем восстановления доступа
Для редактирования тела письма восстановления необходимо в файле локализации /opt/idp/public/templates/localization/active.ru.toml
отредактировать раздел [RestorePasswordMailBody]
.
[RestorePasswordMailBody] description = "Restore password mail body" other = "Вы запросили восстановление вашего пароля. Код для восстановления -" [PasswordRestoreMessage] description = "Password restore" other = "Восстановление пароля"
Для редактирования письма Email OTP следует отредактировать следующие разделы:
[EmailOTPMessageTitle] description = "Title of the email with a passcode and(or) a link" other = "Подтвердите вход в систему" [EmailOTPPasscodeAndLinkMessage] description = "Passcode to enter the system" other = "Для входа в систему воспользуйтесь кодом %s или перейдите <a href=\"%s\">по ссылке</a>" [EmailOTPPasscodeMessage] description = "Passcode to enter the system" other = "Для входа в систему воспользуйтесь кодом %s"
После внесения изменений в файл локализации необходимо перезапустить сервис idp:
sudo systemctl restart idp
Переопределение сообщений локализации
Avanpost FAM позволяет проводить кастомизацию текстов, отображающихся в приложении (например, в административной консоли), посредством внесения изменений в .extension.toml-файлы. Файлы extension.[lang].toml
имеют формат соответствия ключа и значения сообщения. Пример файла для локализации приведен ниже.
Файлы локализации располагаются по следующему пути:
- для шаблонов:
public/templates/localization/active.{lang}.toml
; - для системных сообщений:
public/messages/active.{lang}.toml
где {lang}
- язык (например, для русского языка файл будет носить имя active.ru.toml
)
Необходимо учитывать, что изменения, внесенные в данный файл, будут удалены и заменены на стандартные при очередном обновлении продукта. Чтобы избежать утраты изменений следует:
- Вручную создать файл
extension.{lang}.toml
, расположив его по тому же пути, что иactive.{lang}.toml
. - Найти сообщение, которое требуется исправить, исходном файле
active.{lang}.toml.
- Создать аналогичную запись в
extension.{lang}.toml
.
Кастомизированные сообщения, содержащиеся в extension.{lang}.toml
обладают приоритетом над стандартными сообщениями из active.{lang}.toml.
Сценарий использования
Администратор хочет заменить сообщение, выводящееся пользователю при неудачной попытке входа в приложение посредством FAM. Для этого администратор переопределяет в файле extension.{lang}.toml
сообщение [ApplicationAccessError]
, копируя исходное из active.{lang}.toml
:
[ApplicationAccessError]
description = ""
other = "Свой вариант сообщения"
.