Общие сведения
Страницы, отображаемые не аутентифицированному пользователю, могут быть кастомизированы и стилизованы, а именно, изменить можно следующий перечень:
- Страницы аутентификации по различным методам и факторам аутентификации.
- Страницы регистрации.
- Страницы восстановления доступа.
- Страницы аутентификации посредством доверенных провайдеров.
- Страницы инициализации аутентификаторов.
- Страницы ошибок.
- Шаблоны писем.
- Системные сообщения в части локализации.
Для версии FAM 1.7 или младше, шаблоны страниц по умолчанию размещены по пути: public/templates/default относительно базового каталога /opt/idp (/opt/idp/public/templates/default)
. Путь /opt/idp
зависит от места установки файлов системы и может отличаться в различных развёртываниях системы.
Файлы шаблонов, размещённые по пути public/templates/*.html
являются служебными и не должны быть изменяемы.
Путь к файлам шаблона задаётся в конфигурационном файле системы config.json (начиная с версии FAM v1.8.7.346 меняется конфигурационный файл с config.json на config.toml)
в параметре 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'
Методика первичной кастомизации шаблонов для версий 1.7 и младше
Не рекомендуется вносить изменения в файлы, расположенные по пути public/templates/default.
Общий подход:
- Для проверки шаблонов нужно использовать развёрнутый экземпляр системы. Поэтому рекомендуется проверять шаблоны на тестовой среде с системой перед внесением изменений в шаблоны на продуктивном сервере.
- Для контроля изменений следует использовать систему контроля версий, например, git. Для этого следует инициализировать репозиторий. Также рекомендуется хранить актуальную копию репозитория отдельно от сервера с развёрнутым приложением.
Следует придерживаться следующей методики:
Скопировать файлы из каталога
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", ... },
- Выполнить перезапуск службы системы (команда зависит от ОС).
Методика первичной кастомизации шаблонов для версий 1.8 и старше
Не рекомендуется вносить изменения в файлы, расположенные по пути public/views/standard.
Общий подход:
- Для проверки шаблонов нужно использовать развёрнутый экземпляр системы. Поэтому рекомендуется проверять шаблоны на тестовой среде с системой перед внесением изменений в шаблоны на продуктивном сервере.
- Для контроля изменений следует использовать систему контроля версий, например, git. Для этого следует инициализировать репозиторий. Также рекомендуется хранить актуальную копию репозитория отдельно от сервера с развёрнутым приложением.
Следует придерживаться следующей методики:
Скопировать файлы из каталога 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) двух каталогов.
Перечень шаблонов
Таблица шаблонов, доступных для кастомизации:
Файл шаблона | Файл шаблона, версия 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 | Не актуально. | Страница ввода E-mail в сценарии восстановления доступа |
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-аутентификатора в процессе аутентификации |
Изменение отдельных страниц
Изменение шаблона формы самостоятельной регистрации
Интерфейс формы самостоятельной регистрации, который отображается пользователям Системы, может быть настроен в части состава полей, их расположения, либо кастомизирован с учётом корпоративного стиля.
Для изменения шаблона самостоятельной регистрации выполните следующие действия:
- Откройте указанный каталог с шаблонами (указанный в значении параметра
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> и выполнять внесение изменений в кастомизации.
Локализация шаблонов интерфейса и системных сообщений
Для переопределения языка стандартных локализованных сообщений следует использовать файлы extension.[lang].toml. Настройки локализации для системных сообщений расположены в директории public/messages, в public/templates/localization хранятся локализации шаблонов.
Файлы extension.[lang].toml имеют формат соответствия ключа и значения сообщения. Пример файла для локализации приведен ниже.
.