[ ] [ Общие сведения ] [ Методика первичной кастомизации шаблонов для версий 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 = "Свой вариант сообщения"
.
