Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Службы федерации Active Directory (AD FS) в Windows Server 2012 R2 и более поздних версий поддерживают настройку процесса входа пользователя. Для большинства сценариев можно использовать встроенные командлеты Windows PowerShell для настройки страниц входа AD FS. Рекомендуемый подход — использовать встроенные команды Windows PowerShell для настройки по возможности. Дополнительные сведения см. в разделеAD-FS настройка входа пользователя.
Иногда может потребоваться предоставить интерфейс входа, который не может быть включен с помощью команд PowerShell, которые входят в AD FS. Вы можете настроить интерфейс входа, добавив пользовательский код в файл onload.js , предоставленный AD FS. Код файла выполняется на всех страницах AD FS.
Considerations
Прежде чем приступить к настройке страниц входа AD FS, ознакомьтесь со следующими важными рекомендациями.
Important
Любые изменения настройки, влияющие на потоки перенаправления или модифицируют параметры протокола, используемые AD FS, не поддерживаются.
Файл onload.js выполняется на всех страницах AD FS, включая страницы входа формы, страницы определения домашней области и т. д. Всегда убеждайтесь, что пользовательский код выполняется только так, как задумано, и не вызывает неожиданных ситуаций.
AD FS поставляется со встроенной веб-темой, называемой по умолчанию. Невозможно изменить содержимое onload.js, создающее веб-тему по умолчанию. Чтобы обновить файл onload.js, создайте и используйте настраиваемую веб-тему для страниц входа AD FS. Дополнительные сведения см. в разделеAD-FS настройка входа пользователя.
Исходный файл onload.js для веб-темы по умолчанию также содержит код для обработки отрисовки страниц для различных форм-факторов. Рекомендуемый подход к настройке — добавить пользовательский код логики в существующий файл onload.js. Не изменяйте исходное содержимое файла onload.js.
При обращении к HTML-элементам всегда убедитесь в существовании элемента, прежде чем выполнять с ним какие-либо действия. Этот шаг обеспечивает надежность и гарантирует, что пользовательская логика не выполняется на страницах, не содержащих этот элемент. Чтобы определить существующие элементы HTML, просмотрите html-источник на страницах входа AD FS.
Рекомендуется проверить настройки в альтернативной среде и выполнить тесты перед перемещением настроек на рабочие серверы AD FS. Этот шаг снижает вероятность предоставления конечным пользователям настроек перед проверкой.
Действия по настройке
В следующих разделах приведены действия по настройке содержимого файла onload.js для страниц входа в AD FS.
Создание пользовательской веб-темы
Чтобы добавить пользовательскую логику в файл onload.js, первым шагом является создание пользовательской веб-темы. Быстрый способ — экспортировать веб-тему по умолчанию, а затем использовать исходный код в качестве основы для настроек.
Выполните следующий командлет, чтобы создать пользовательскую веб-тему, дублируя веб-тему по умолчанию:
New-AdfsWebTheme –Name custom –SourceName default
Создание файла onload.js
Следующий шаг — экспортировать настраиваемую веб-тему, чтобы у вас был onload.js файл, который можно обновить.
Выполните следующий командлет, чтобы экспортировать настраиваемую веб-тему и создать файл onload.js:
Export-AdfsWebTheme –Name default –DirectoryPath c:\theme
Файл onload.js помещается в папку скрипта в каталоге, указанном в командлете. В примере указанная папка c:\theme.
Добавление настроек
Теперь вы готовы изменить содержимое onload.js и добавить пользовательский код логики для ваших сценариев. Как упоминалось, обязательно добавьте пользовательский код в конец файла onload.js.
См. следующий раздел "Примеры" для фрагментов кода, демонстрирующих распространенные настройки.
Изменение целевого файла onload.js
После добавления настроек необходимо обновить веб-тему AD FS, чтобы использовать файл onload.js, а не исходный файл onload.js.
Выполните следующий командлет, чтобы задать файл onload.js в качестве целевого объекта для определений веб-темы:
Для AD FS в Windows Server 2016 и более поздних версиях:
Set-AdfsWebTheme -TargetName custom -OnLoadScriptPath "c:\theme\script\onload.js"Для AD FS в Windows Server 2012 R2:
Set-AdfsWebTheme -TargetName custom -AdditionalFileResource @{Uri='/adfs/portal/script/onload.js';path="c:\theme\script\onload.js"}
Применение настроек к AD FS
Последним шагом является применение настроек к страницам входа AD FS.
Выполните следующий командлет, чтобы обновить AD FS с вашими кастомизациями.
Set-AdfsWebConfig -ActiveThemeName custom
Examples
В следующих примерах приведен пользовательский код, который можно добавить в файл onload.js для настройки страниц входа AD FS.
Note
Всегда добавляйте пользовательский код в конец файла onload.js.
Изменение строки заголовка страницы входа
На странице входа на основе форм AD FS отображается заголовок над полями ввода пользователя. Значение заголовка по умолчанию — "Вход с помощью учетной записи организации".
Замените строковое значение по умолчанию настраиваемой строкой, добавив следующий код в файл onload.js. В коде задайте для loginMessage.innerHTML параметра настраиваемую строку, которая будет использоваться для заголовка.
// Sample code to change page title string
// Check if loginMessage element is present
var loginMessage = document.getElementById('loginMessage');
if (loginMessage)
{
// If loginMessage element is present, change title to custom value
loginMessage.innerHTML = 'Custom title string value';
}
Принять вход в систему с именем учетной записи SAM
Страница входа на основе форм AD FS поддерживает два метода входа по умолчанию:
-
userPrincipalName": A user principal name (UPN), such asuser@contoso.com`. -
samAccountName: доменное имя учетной записи диспетчера учетных записей безопасности (SAM), напримерcontoso\userилиcontoso.com\user.
Рассмотрим сценарий, в котором все пользователи находятся в одном домене, и пользователи знают только имя учетной записи SAM. Вы можете обновить страницу входа, чтобы пользователи могли войти только с помощью имени учетной записи SAM.
Добавьте следующий код в файл onload.js, чтобы включить вход только из учетных записей SAM. В коде задайте для userNameValue параметра нужный домен.
// Sample code to enable user login from SAM account name only
if (typeof Login != 'undefined'){
Login.submitLoginRequest = function () {
var u = new InputUtil();
var e = new LoginErrors();
var userName = document.getElementById(Login.userNameInput);
var password = document.getElementById(Login.passwordInput);
// Update login method with desired domain value
if (userName.value && !userName.value.match('[@\\\\]'))
{
var userNameValue = 'contoso.com\\' + userName.value;
document.forms['loginForm'].UserName.value = userNameValue;
}
// Check for user name errors
if (!userName.value) {
u.setError(userName, e.userNameFormatError);
return false;
}
// Check for password errors
if (!password.value)
{
u.setError(password, e.passwordEmpty);
return false;
}
// Update the form page
document.forms['loginForm'].submit();
return false;
};
}