Настройка параметров политик безопасности ПУИД#

Данный раздел описывает, где находятся параметры политик безопасности сервиса roox-sso, какие значения рекомендуется использовать и как применять изменения.

Общая схема настройки#

Администратор изменяет параметры политик безопасности в файлах формата *.properties, которые подключены к roox-sso через общий файл конфигурации:

/usr/share/tomcat/config.xml

Если один и тот же параметр указан в нескольких подключенных файлах, сервис roox-sso применяет значение из файла с большим приоритетом согласно /usr/share/tomcat/config.xml. Перед изменением следует проверить, не задан ли тот же параметр в другом подключенном файле с более высоким приоритетом.

Часть параметров можно задавать с разной точностью: для сервера в целом, для отдельного реалма или для конкретного приложения. Поддерживаемая точность зависит от конкретного параметра и указана в справочнике параметров. Если параметр поддерживает несколько уровней, используется самое точное совпадение ключа:

  1. Значение для реалма и приложения (<realm> + <clientId>).

  2. Значение только для реалма (<realm>).

  3. Общее значение без уточнения реалма и приложения.

  4. Встроенное значение по умолчанию, если настройка не задана.

Для времени жизни OAuth2-токенов ключи уровня приложения задаются через oauth2.sp, а ключи уровня реалма и общие значения — через oauth2.idp.

Например, для срока действия кода авторизации приложения arm_cc в реалме employee сервис roox-sso проверяет значения в порядке:

com.rooxteam.sso.employee.oauth2.sp.arm_cc.authorization_code.ttl
com.rooxteam.sso.employee.oauth2.sp.authorization_code.ttl
com.rooxteam.sso.oauth2.sp.authorization_code.ttl
com.rooxteam.sso.employee.oauth2.idp.authorization_code.ttl
com.rooxteam.sso.oauth2.idp.authorization_code.ttl
встроенное значение по умолчанию

После изменения параметров перезапустите сервис roox-sso.

Типовые операции администратора#

Изменение срока действия OAuth2-токена#

Для изменения срока действия OAuth2-токена необходимо:

  1. Определить тип токена: authorization_code, access_token или refresh_token.

  2. Определить нужную точность настройки: конкретное приложение, реалм или общее значение.

  3. Открыть файл из раздела Справочник путей к конфигурационным файлам.

  4. Добавить или изменить параметр TTL.

  5. Перезапустить сервис roox-sso.

  6. Проверить выпуск токена и его срок действия.

Изменение ограничений сессии#

Для изменения ограничений сессии необходимо:

  1. Открыть /usr/share/tomcat/realms.properties.

  2. Изменить параметры максимального времени жизни сессии, времени бездействия или цепочки refresh token.

  3. Удостовериться, что значения согласованы с требованиями безопасности.

  4. Перезапустить сервис roox-sso.

  5. Проверить вход пользователя и завершение сессии по заданным ограничениям.

Изменение лимитов неуспешных попыток входа#

Для изменения лимитов неуспешных попыток входа необходимо:

  1. Открыть файл /usr/share/tomcat/env.properties.

  2. Изменить параметры блокировки или капчи.

  3. Если интеграция с капчей не настроена, задать лимит капчи больше лимита блокировки, чтобы временная блокировка наступала раньше запроса капчи.

  4. Перезапустить сервис roox-sso.

  5. Проверить сценарий ввода неверного пароля на тестовом пользователе.

Справочник путей к конфигурационным файлам#

Файл настройки на VM

Назначение

Ответственный сервис

Действие после изменения

/usr/share/tomcat/config.xml

Список подключаемых файлов настроек и порядок их применения

roox-sso

Перезапуск roox-sso, если изменен состав или порядок файлов

/usr/share/tomcat/clients.properties

Настройки OAuth2/OIDC-клиентов и TTL-токенов уровня приложения

roox-sso

Перезапуск roox-sso

/usr/share/tomcat/realms.properties

Настройки реалмов, общие TTL OAuth2/OIDC и параметры сессии

roox-sso

Перезапуск roox-sso

/usr/share/tomcat/astra.properties

Проектные настройки и переопределения параметров, заданных в других *.properties файлах. Может содержать параметры ограничения одновременных сессий и другие проектные значения; фактический приоритет определяется порядком подключения файле

/usr/share/tomcat/config.xml

roox-sso

Перезапуск roox-sso

/usr/share/tomcat/env.properties

Параметры капчи и временной блокировки после неуспешных попыток входа

roox-sso

Перезапуск roox-sso

Справочник параметров#

Значения времени в параметрах ниже задаются в секундах, если явно не указано иное. В колонке Значение по умолчанию указано значение, которое используется, если параметр не задан в конфигурации.

Параметр | Значение по умолчанию

Пример

Описание

com.rooxteam.sso.{realm}.oauth2.sp.{clientId}.authorization_code.ttl | 30





60

Срок действия кода авторизации для получения токена. Для приложения используется ключ oauth2.sp; для уровня реалма и общего значения следует использовать com.rooxteam.sso.{realm}.oauth2.idp.authorization_code.ttl и com.rooxteam.sso.oauth2.idp.authorization_code.ttl. Файл настройки: /usr/share/tomcat/clients.properties; для значения реалма или общего значения — /usr/share/tomcat/realms.properties

com.rooxteam.sso.{realm}.oauth2.sp.{clientId}.access_token.ttl

3600

36000

Срок действия токена доступа. Для приложения используется ключ oauth2.sp; для уровня реалма и общего значения следует использовать com.rooxteam.sso  {realm}.oauth2.idp.access_token.ttl и com.rooxteam.sso.oauth2.idp.access_token.ttl. Для 2-го класса защищенности рекомендуется 900, для 1-го класса — 300, для 3–4-го класса или при отсутствии присвоенного класса — 36000. Файл настройки: /usr/share/tomcat/clients.properties; для значения реалма или общего значения — /usr/share/tomcat/realms.properties

com.rooxteam.sso.{realm}.oauth2.sp.{clientId}.refresh_token.ttl

3600

36060

Срок действия токена обновления. Для приложения используется ключ oauth2.sp; для уровня реалма и общего значения следует использовать com.rooxteam.sso.{realm}.oauth2.idp.refresh_token.ttl и com.rooxteam.sso.oauth2.idp.refresh_token.ttl. Настраивается аналогично сроку действия токена доступа. Файл настройки: /usr/share/tomcat/clients.properties; для значения реалма или общего значения — /usr/share/tomcat/realms.properties

com.rooxteam.sso.{realm}.session.lifetime_max_seconds

43200

43200

Максимальное время жизни сессии единого входа. Может быть задано для реалма или как общее значение com.rooxteam.sso.session.lifetime_max_seconds. Файл настройки: /usr/share/tomcat/realms.properties

com.rooxteam.sso.{realm}.session.idle_time_seconds

1800

43200

Максимальное время бездействия до завершения сессии. Может быть задано для реалма или как общее значение com.rooxteam.sso.session.idle_time_seconds. Если политика должна ограничивать только общее время жизни сессии, согласуйте это значение с ответственным за безопасность. Файл настройки: /usr/share/tomcat/realms.properties

com.rooxteam.sso.{realm}.token.refresh.lifetime.max.seconds

1800

43200

Максимальное время жизни цепочки обновления токенов. Может быть задано для реалма или как общее значение com.rooxteam.sso.token.refresh.lifetime.max.seconds. Ограничивает общий срок, в течение которого можно обновлять токены без повторной аутентификации. Файл настройки: /usr/share/tomcat/realms.properties

com.rooxteam.sso.{realm}.quota.maxPrivilegedSessionCount

2

1

Максимальное число одновременных сессий для привилегированных пользователей. Может быть задано для реалма или как общее значение com.rooxteam.sso.quota.maxPrivilegedSessionCount. Привилегированными считаются пользователи с ролью из параметра com.rooxteam.sso.{realm}.quota.privilegedRole. Файл настройки: /usr/share/tomcat/astra.properties

com.rooxteam.sso.{realm}.quota.privilegedRole

""

acp_admins_iam

Роль привилегированных пользователей. Может быть задана для реалма или как общее значение com.rooxteam.sso.quota.privilegedRole. Пользователи с этой ролью ограничиваются значением com.rooxteam.sso.{realm}.quota.maxPrivilegedSessionCount. Файл настройки: /usr/share/tomcat/astra.properties

com.rooxteam.sso.{realm}.quota.maxSessionCount

5

2

Максимальное число одновременных сессий для остальных пользователей. Может быть задано для реалма или как общее значение com.rooxteam.sso.quota.maxSessionCount. Применяется к пользователям без роли, указанной в com.rooxteam.sso.{realm}.quota.privilegedRole. Файл настройки: /usr/share/tomcat/astra.properties

com.rooxteam.uidm.{realm}.captcha.limit

2

5

Количество неуспешных попыток аутентификации по паролю до необходимости проверки капчи. Может быть задано для реалма или как общее значение com.rooxteam.uidm.captcha.limit. Если интеграция с капчей не настроена, значение должно быть больше com.rooxteam.uidm.{realm}.block.limit, чтобы блокировка наступала раньше запроса капчи. Файл настройки: /usr/share/tomcat/env.properties

com.rooxteam.uidm.{realm}.block.limit

10

10

Количество неуспешных попыток аутентификации по паролю до временной блокировки. Может быть задано для реалма или как общее значение com.rooxteam.uidm.block.limit. ПУИД также проверяет пароль во внешнем каталоге, где могут действовать собственные политики блокировки пользователя. Фактически сработает более строгая политика. Файл настройки: /usr/share/tomcat/env.properties

com.rooxteam.uidm.{realm}.block.seconds

3600

300

Время временной блокировки после многократного ввода неверного пароля или капчи. Может быть задано для реалма или как общее значение com.rooxteam.uidm.block.seconds. Файл настройки: /usr/share/tomcat/env.properties.

Проверка после изменения#

На этапе проверки после внесения изменений необходимо:

  1. Удостовериться, что измененный файл подключен в /usr/share/tomcat/config.xml и не переопределяется файлом с более высоким приоритетом.

  2. Перезапустить сервис roox-sso командой:

sudo systemctl restart roox-sso
  1. Проверить запуск сервиса по журналу /var/log/roox-sso/roox-sso.log.

  2. Выполнить вход от лица тестового пользователя.

  3. Для изменения TTL проверить выпуск токена и срок действия в ответе token endpoint или tokeninfo.

  4. Для изменения блокировки или капчи проверить сценарий неуспешного ввода пароля на тестовом пользователе.