Проблемы и решения
Частые проблемы и как их решить |
- После изменения профиля AD пользователя данные возвращаются в исходное значение
- Для AD-пользователей не работает галка "Запомнить меня на этом компьютере"
- Доступ к разделу Extranet без NTLM
- Ошибка при первой авторизации пользователя из AD на портале
После изменения профиля AD пользователя данные возвращаются в исходное значение |
Профиль пользователей, авторизующихся через Active Directory, при каждом входе синхронизируется с сервером AD, при этом все локально сделанные настройки перезаписываются данными, указанными на сервере. Изменить такое поведение можно:
- либо установив для данного пользователя локальную авторизацию (для этого нужно вручную задать ему тот же пароль, что и в AD и изменить Тип авторизации на Внутренняя проверка на
странице редактирования пользователя
Вкладки
Описание компонента «Создание и редактирование пользователя» в пользовательской документации. ). Тогда авторизация пользователя будет проходить не через AD, а локально; - либо внести изменения данных пользователя не на сайте, а в AD. Тогда на сайте они тоже автоматически изменятся при синхронизации с сервером;
- либо уменьшить количество полей, по которым осуществляется синхронизация, в настройках AD сервера на сайте (Настройки > AD/LDAP, закладка
Настройка полей
). В этом случае можно при
импорте пользователей из AD/LDAP
Для импорта пользователей из Active Directory / LDAP выполните следующее...
Подробнее ... (Настройки > Пользователи > Импорт пользователей), например, указать нужные нам поля, а потом в настройках AD сервера на сайте удалить все поля. Тогда у пользователя будут первоначально заданы все необходимые данные, и впоследствии, он сможет менять их.
Для AD-пользователей не работает опция "Запомнить меня на этом компьютере" |
Запомнить пароль невозможно, т.к. при авторизации AD-пользователей система обращается к указанному в настройках AD/LDAP серверу и проверяет наличие пользователя с указанными логином и паролем в базе пользователей на корпоративном сервере и дальше уже происходит авторизация (см. урок
Схема работы модуля
Общая схема работы модуля описывается следующей последовательностью действий:
1. Пользователь проходит авторизацию в системе Bitrix Framework (вводится логин и пароль, используемые пользователем для авторизации в корпоративной сети)...
Подробнее ...
).
Из соображений безопасности сайт не сохраняет у себя логин и пароль.
Доступ к разделу Extranet без NTLM |
Чтобы корректно настроить доступ к папке extranet без авторизации через NTLM, необходимо:
- В файле
/.htaccessдобавить строки:AuthName "My Intranet" AuthType SSPI SSPIAuth On SSPIPackage NTLM SSPIDomain MYDOMAIN SSPIPerRequestAuth On SSPIAuthoritative On SSPIOfferBasic On Require valid-user
- В файлах
/extranet/.htaccessи/bitrix/.htaccessдобавить строку:Satisfy any
- В
/bitrix/admin/.htaccessдобавить:Satisfy all
В результате NTLM авторизация будет работать для всех папок в публичной части сайта, кроме extranet, а также в административной части сайта.
Ошибка при первой авторизации пользователя из AD на портале |
Если не работает авторизация пользователя, который есть в AD, но нет на портале, то выполните отладку. Добавьте код обработчика в файл /bitrix/php_interface/init.php. Если такого файла нет, то создайте его.
AddEventHandler('main', 'OnAfterUserAdd', function($arFields) {
$path = $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/ldap/custom_log.txt';
$data = [
'event' => 'OnAfterUserAdd main',
'arFields' => $arFields,
'date' => date('Y-m-d H:i:s'),
];
$content = print_r($data, true) . "\n=====\n";
file_put_contents($path, $content, FILE_APPEND);
);
Затем попробуйте авторизоваться на портале под пользователем, который есть в AD, но нет на портале. После проверьте файл custom_log.txt на наличие ошибок.
Может быть такая ошибка (часть данных убрана, так как интересует [RESULT_MESSAGE]):
Array
(
[arFields] => Array
(
[DN] =>
[LOGIN] =>
[EXTERNAL_AUTH_ID] => LDAP#1
[LDAP_GROUPS] => Array
(
[0] =>
[1] =>
)
[ACTIVE] =>
[NAME] =>
[LAST_NAME] =>
[EMAIL] => no@email
[UF_DEPARTMENT] => Array
(
[0] => 1
)
[PASSWORD] =>
[RESULT_MESSAGE] => Incorrect E-Mail
[RESULT] =>
)
[date] =>
)
Пользователь не авторизуется из-за некорректного e-mail: указано [EMAIL] => no@email. Чтобы исправить ошибку, необходимо указать валидный e-mail, например, no@email.ru в настройках модуля AD/LDAP Настройки > Настройки продукта > Настройки модулей > AD/LDAP интеграция. После этого авторизация пользователя сработает.
init.php и файл лога custom_log.txt.Дополнительно |
и Ваше мнение важно для нас