Проблемы и решения
Частые проблемы и как их решить |
- После изменения профиля 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
.Дополнительно |
и Ваше мнение важно для нас