Создание и настройка локальных пользователей и групп Keycloak
В данном разделе описан процесс создания и настройки локальных пользователей Keycloak для авторизации в веб-интерфейсе Business Studio. Эту информацию можно использовать при отсутствии собственной группы каталогов.
Примечание. Рекомендуется объединять пользователей в группы (см. Создание и настройка Keycloak группы) и настраивать права в системе Business Studio через группы.
Настройка передачи атрибутов из Keycloak в Business Studio
Данные из Keycloak загружаются в Business Studio в справочник "Пользователи". Соответствие между атрибутами Keycloak и параметрами Business Studio устанавливается заранее (до первой авторизации нового пользователя) в файле конфигурации appsettings.json в разделе "OpenId". Предусмотрены следующие настройки:
- Имя и идентификатор пользователя:
- в строке "UserNameClaim" указывается атрибут Keycloak, который необходимо сопоставить с параметром "Название" справочника "Пользователи";
- в строке "UserIdClaim" указывается атрибут Keycloak, который необходимо сопоставить с параметром "UserID" справочника "Пользователи".
Идентификатор пользователя ("UserID") - ключевой уникальный параметр пользователя (или группы) в системе Business Studio.
- Настройки для управления группами пользователей:
- в строке "UserRolesClaim" указывается название атрибута в токене, где хранятся группы пользователя (подробнее см. Настройка клиентских разрешений);
- в строке "UserRolesSeparator" задается символ‑разделитель, который разделяет несколько групп, указанных в одном поле.
- Дополнительные настраиваемые параметры. Указываются в подразделе "CustomClaims" в формате:
"CustomClaims": [
{
"Claim": "атрибут",
"Property": "параметр"
}
]
где атрибут - название пользовательского атрибута, передаваемого в токене, а параметр - guid или системное название параметра справочника "Пользователи".
Создание Keycloak-пользователя
Для создания Keycloak-пользователя необходим доступ в административную консоль Keycloak. Для создания пользователя нужно:
- Зайти в административную консоль Keycloak.
- Выбрать изолированную область (realm) в выпадающем меню в левом верхнем углу интерфейса (не master, при необходимости нужно создать новую кнопкой Create realm).
- Перейти в Users, нажать Add user.
- Заполнить поля:
- Username – обязательный для заполнения атрибут, по умолчанию используется системой Keycloak для аутентификации. При необходимости Keycloak позволяет настроить аутентификацию по любому атрибуту пользователя.
- атрибуты, соответствующие настройкам "UserNameClaim" и "UserIdClaim" (см. Настройка передачи атрибутов из Keycloak в Business Studio).
- Нажать Create.
- Перейти на вкладку Credentials, нажать Set password, установить флажок Temporary, если нужно поменять пароль при первом входе, нажать Save.
Создание и настройка Keycloak группы
Для создания группы, добавления в неё пользователей и настройки с помощью административной консоли Keycloak нужно по порядку выполнить действия, описанные в подразделах ниже.
Создание группы
- Выбрать изолированную область (realm) в левом верхнем углу интерфейса административной консоли Keycloak.
- Перейти в раздел Groups, нажать Create group, ввести имя группы и нажать Create.
Добавление пользователей в группу
- Открыть свойства группы, нажав на нее в разделе Groups.
- Перейти на вкладку Members, нажать Add member.
- Отметить требуемых пользователей (см. Создание Keycloak-пользователя) галочками, нажать Add.
Настройка клиентских разрешений
На этом этапе необходимо настроить Client scope, а также настроить файл конфигурации appsettings.json.
Client scope — механизм в Keycloak для централизованного управления набором ролей, атрибутов и мапперов, которые могут быть назначены клиентам (в данном случае веб-сервер Business Studio).
Для настройки Client scope нужно:
- Перейти в раздел Client scopes, нажать Create client scope.
- Заполнить базовые параметры:
- Name,
- Protocol (выбрать OpenID Connect),
- Type (выбрать Optional).
- Нажать Save.
- Открыть свойства созданного Client scope, нажав на него в разделе Client scopes.
- Перейти на вкладку Mappers, нажать Add mapper – By configuration или Configure a new mapper.
- Выбрать Group Membership.
- Заполнить параметры: Name, Token Claim Name (имя поля в токене).
- Включить следующие опции:
- Add to ID token,
- Add to access token,
- Add to userinfo,
- Add to token introspection.
- Нажать Save.
- В файле конфигурации appsettings.json в разделе "OpenId" внести следующие изменения:
- В строке "UserRolesClaim", прописать значение Token Claim Name.
- В подразделе "Scopes" добавить новую строку, содержащую имя (Name) созданного Client scope.
- В административной консоли Keycloak перейти в раздел Clients, открыть свойства клиентского приложения (Business Studio).
- Перейти на вкладку Client Scopes, нажать Add client scope.
- Выбрать созданный Client scope, нажать Add, выбрав тип привязки:
- Default, для автоматического применения ко всем запросам;
- Optional, если требуется явное указание в параметре scope при авторизации.
- Настроить доступ для группы к базе данных аналогично тому, как описано выше для Keycloak-пользователя, при этом в качестве названия и параметра Идентификатор пользователя ("UserID") для группы следует указывать название группы, заданное на этапе Создание группы.
Добавление пользователя в системе Business Studio
Пользователь автоматически создается в системе Business Studio в справочнике "Пользователи" при первой авторизации Keycloak-пользователя в веб-интерфейсе. При включенной опции Автоматическая раздача прав автоматически выдается группа вертикальных прав "Права администратора" (см. Автоматическая раздача прав).
Для настройки доступа через группы, необходимо вручную добавить в справочнике "Пользователи" Keycloak группы.
Чтобы вручную добавить пользователей (или группы) в систему и выдать пользователям (или группам) требуемые группы вертикальных прав, нужно:
- Отключить Автоматическую раздачу прав.
- Создать пользователя в справочнике "Пользователи", заполнив поля в окне свойств:
- "Название":
Для отдельного Keycloak-пользователя это будет значение атрибута, соответствующего настройке "UserNameClaim".
Для группы это будет название (Name) группы. - "Логин" – Идентификатор пользователя ("UserID"):
Для отдельного Keycloak-пользователя это будет значение атрибута, соответствующего настройке "UserIdClaim".
Для группы это будет название (Name) группы. - "UserID" – заполняется автоматически при заполнении поля "Логин".
- Выдать пользователю категорию вертикальных прав (см. Права пользователя).
- Настроить для пользователя горизонтальные права (см. Горизонтальные права).
Настройка доступа к базе данных и её веткам
- Открыть окно выбора баз данных Business Studio.
- Вызвать контекстное меню от базы данных и выбрать пункт Управление ветками.
- Выбрать нужную ветку в дереве в левой части окна Управление ветками.
- В нижнем правом углу окна Управление ветками нажать кнопку Добавить.
- Выбрать вариант Пользователь Справочника.
- В поле Пользователь ввести Идентификатор пользователя ("UserID"):Для отдельного Keycloak-пользователя это будет значение атрибута, соответствующего настройке "UserIdClaim".Для группы это будет название (Name) группы.
- Убедиться, что в списке Права доступа появился добавленный пользователь и установить для него Права пользователя ("Полный доступ" или "Запрет изменений").
- Сохранить.
Настройка лицензии
Для настройки лицензии нужно в файле конфигурации appsettings.json прописать тип лицензии по принципу от частного к общему, то есть от конкретных пользователей до групп. Прописывать нужно в разделе "UsersEditions" в формате:
{
"UserId": "ID",
"Edition": "название_лицензии"
},
где ID - Идентификатор пользователя ("UserID"), название_лицензии – Ultimate, Professional и т.д.