Пользователи и права в 1С-Битрикс - обзор раздела
Пользователи, группы и права - механика, на которой держится всё разграничение доступа: и публичная часть, и админка, и API. В собранных вопросах разработчиков эта тема даёт 1067 обращений, больше чем инфоблоки.
Как устроено
Пользователь один на всю платформу. Учётная запись общая для публичной части и админки, и различает их не тип пользователя, а права. Отсюда типовая картина: человек авторизован на сайте, но в админку не пускает, потому что у его группы нет доступа к панели управления.
Права выдаются группам, а не людям. Пользователь входит в одну или несколько групп, права складываются, и побеждает наибольшее. Отдельному человеку права назначить нельзя нигде, кроме отдельных сущностей вроде элементов инфоблока с включённым расширенным управлением правами.
Уровней прав два, и они не связаны. Права на файлы и разделы структуры сайта
живут в дереве каталогов, права на модули и их данные - в настройках самих
модулей. Группа с полным доступом к разделу /catalog/ не получает от этого
никаких прав на модуль торгового каталога.
Авторизация отделена от источника учётных записей. Пароль в базе сайта, доменная запись через NTLM, вход через соцсеть - всё это разные способы подтвердить, кто пришёл. После подтверждения дальше работает один и тот же пользователь с одними и теми же группами.
Сессия живёт своей жизнью. Авторизация записывает в сессию идентификатор пользователя, а помнит его между заходами отдельный механизм с куками. Поэтому «разлогинивает» и «не помнит меня» - две разные поломки с разными причинами.
Что нужно сделать
| Нужно | Смотрите |
|---|---|
| Разобраться, из чего складываются права доступа | Пользователи, группы и права |
| Поставить форму входа и настроить страницу авторизации | Авторизация и сессии |
| Понять, почему пользователя выкидывает или не пускает | Не работает авторизация |
| Пустить в сайт доменные учётные записи | Авторизация и сессии |
С чего начать
Разграничение доступа на сайте. Начните с групп. Соберите список ролей, нужных проекту, и раздавайте права от них. Не от отдельных страниц: список групп меняется редко, а структура разделов постоянно. Права, привязанные к группам, переживают любую переделку сайта.
Вход через внешнюю систему. Сначала проверьте штатную авторизацию. Внешний источник подключают только после этого. Почти все жалобы на NTLM и на вход через соцсети оказываются проблемами сервера или прав. Сам модуль авторизации виноват редко.
Отладка чужого проекта. Смотрите не на пользователя, а на его группы. Права складываются между ними, и побеждает наибольшее. Одна забытая группа с широким доступом объясняет больше странностей, чем весь профиль человека.
Темы раздела
- Пользователи, группы и права - как устроены учётные записи, из чего складываются права, два независимых уровня доступа.
- Авторизация и сессии - форма входа, страница авторизации, внешние источники учётных записей, поведение сессии.
Практика раздела
- Авторизация и сессии в 1С-Битрикс - вход, сессии, регистрация, внешние сервисы.
- Импорт пользователей в 1С-Битрикс - CSV и внешние источники - файл и внешние источники.
- LDAP и Active Directory - синхронизация пользователей - синхронизация учётных записей каталога.
- Права доступа на практике - инфоблоки, заказы, файлы - права на инфоблоки, заказы и файлы.
Частые вопросы
Чем группа отличается от роли?
В платформе есть только группы: роль - слово из проектной лексики. Права выдаются группе, пользователь входит в несколько групп, и его итоговые права складываются из всех.
Можно ли выдать права одному человеку?
Штатно нет, кроме отдельных сущностей с расширенным управлением правами. Обычный путь - завести группу под эту роль, даже если в ней один человек: так права видно и через год.
Почему пользователь видит сайт, но не видит админку?
Доступ к панели управления - отдельное право группы, не связанное с правами на разделы сайта. Его выдают отдельно, и по умолчанию его нет ни у кого, кроме администраторов.
Что происходит с правами при входе в несколько групп?
Права складываются, и побеждает наибольшее. Запретить что-то, добавив ограничивающую группу, нельзя: доступ определяется самой разрешающей из групп пользователя.
Связанные разделы
- Безопасность - защита форм, сессий и данных пользователя
- Ядро D7 - события авторизации и работа с текущим пользователем
- Модули - соцсервисы и внешние провайдеры входа
- Инфраструктура - настройка сервера под доменную авторизацию