Сервер BOOCO Astra (v 2.x) / Настройка авторизации, формы и страницы входа
Данный способ позволяет пользователям авторизовываться через корпоративный сервис авторизации Keycloak.
Для работы данного метода авторизации необходимо, чтобы BOOCO работал через протокол https.
Для настройки необходимо выполнить следующие шаги:
- создайте приложение (клиента) в настройках Keycloak;
- настройте внешнюю авторизацию в микросервисе bosql;
- настройте booco.yml для разрешения SSO Keycloak.
Создание приложения (клиента) в настройках Keycloak
Заполните следующие поля:
- В разделе Clients на закладке Settings:
- ClientID — например,
dev-booco
- Root URL — например,
https://dev.booco.ru
- Home URL — например,
https://dev.booco.ru
- Valid redirect URIs — например,
https://dev.booco.ru/*
- Web origins — например,
https://dev.booco.ru
- В разделе Clients на закладке Settings в подразделе Capability config:
- Standard flow —
On
- Direct access grants —
On
- В разделе Clients на закладке Advanced:
- Use refresh tokens —
On
Если другие параметры в этом разделе будут включены, то интеграция с Keycloak может не работать.
Настройка внешней авторизации в микросервисе bosql
В переменных окружающей среды микросервиса bosql (обычно задаются через файл .env) настройте следующие пременные:
- KEYCLOAK_ISSUER — издатель JWT-токенов, которые получают пользователи при SSO-авторизации (например,
https://keycloak.booco.ru/realms/booco-realm
). JWT-токен пользователя будет проверяться со значением данной переменной; - KEYCLOAK_PUBLIC_KEY — публичный ключ для проверки подписи JWT-токена (ключ указывается без
-----BEGIN PUBLIC KEY-----
и----END PUBLIC KEY-----
.
Указывается в разделе Realm Settings, закладка Keys, алгоритм RS256.
Настройка booco.yml
Авторизация через SSO в настоящий момент работает только в браузере.
Для настройки авторизации через SSO Keycloak в booco.yml укажите нужные значения:
login:
# Настройка авторизации для браузеров
web:
methods:
external: true
external:
clientId: dev-booco
realm: booco-realm
url: https://keycloak.booco.ru
В данном примере настроена SSO-авторизация для браузеров.
Кроме указания методов авторизации, необходимо также заполнить раздел external
:
clientId
— ID приложения (клиента) в Keycloak;realm
— название realm, в котором создано приложение и через который будет осуществляться авторизация;url
— адрес сервера авторизации.