Безопасность CMS Studio

В этой статье вы узнаете, как настроить параметры безопасности для CMS Studio.

Авторизация

Сопоставление ролей

Подробнее о понятии и настройке ролей в CMS Studio можно узнать здесь.

Сопоставление разрешений

Подробнее о понятии и настройке разрешений в CMS Studio можно узнать здесь.

Дополнительные настройки безопасности

Требования к паролю для CMS Studio

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

В CMS Studio управление надежностью пароля осуществляется с использованием технологии zxcvbn.

Параметры надежности пароля отображаются пользователям во время сброса пароля или создания учетной записи.

Чтобы настроить параметры надежности пароля, нажмите на значок меню навигации в правом верхнем углу экрана, затем выберите Глобальная конфигурация. Прокрутите вниз до раздела Security и измените значение studio.security.passwordRequirements.minimumComplexity на желаемую минимальную сложность пароля.

# Password requirements minimum complexity
# This is based on https://github.com/dropbox/zxcvbn
# The minimum complexity corresponds to the password score
# You can try this out here https://lowe.github.io/tryzxcvbn/
#  score      # Integer from 0-4 (useful for implementing a strength bar)
#  0 # too guessable: risky password. (guesses < 10^3)
#  1 # very guessable: protection from throttled online attacks. (guesses < 10^6)
#  2 # somewhat guessable: protection from unthrottled online attacks. (guesses < 10^8)
#  3 # safely unguessable: moderate protection from offline slow-hash scenario. (guesses < 10^10)
#  4 # very unguessable: strong protection from offline slow-hash scenario. (guesses >= 10^10)
# The default value is 3
studio.security.passwordRequirements.minimumComplexity: 3

Copy-icon

Минимальная сложность пароля по умолчанию в CMS Studio установлена на 3.

Случайная генерация пароля администратора

DC CMS предоставляет возможность случайной генерации пароля администратора во время первоначальной установки. Чтобы реализовать это,  перед первым запуском DC CMS перейдите по пути CMS_HOME/bin/apache-tomcat/shared/classes/cms/studio/extension/ и отредактируйте файл studio-config-override.yaml, включив в него следующую конфигурацию:

##################################################
##                   Security                   ##
##################################################
# Enable random admin password generation
studio.db.initializer.randomAdminPassword.enabled: false
# Random admin password length
studio.db.initializer.randomAdminPassword.length: 16
# Random admin password allowed chars
studio.db.initializer.randomAdminPassword.chars: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*_=+-/

Copy-icon

Чтобы включить случайную генерацию пароля администратора, просто установите studio.db.initializer.randomAdminPassword.enabled в значение true и укажите желаемую длину пароля и допустимые символы для пароля. Сохраните файл после внесения изменений и запустите DC CMS.

Затем вам нужно будет просмотреть логи tomcat и найти следующую строку, чтобы получить сгенерированный случайный пароль для пользователя admin: *** Admin Account Password.

Вот пример сгенерированного пароля для администратора:

INFO: *** Admin Account Password: "WXOIK$O$yGixio2h" ***

Copy-icon

Теперь вы можете войти как пользователь admin, используя случайно сгенерированный пароль, указанный в журнале tomcat.

Тайм-ауты

DC CMS предоставляет возможность настраивать временные интервалы для времени жизни сессии и неактивности сессии.

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

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

В некоторых случаях некоторые операции внутри DC CMS могут превысить конфигурации времени неактивности сессии пользователя. В таких случаях необходимо отрегулировать время неактивности сессии, чтобы завершение операции не приводило к завершению сессии.

Ниже расположено краткое описание тайм-аутов, доступных в DC CMS:

Название тайм-аута Значение по умолчанию (в минутах) Описание
sessionTimeout 480 Время жизни сессии в CMS Studio
Локация:CMS_HOME/bin/apache-tomcat/shared/classes/cms/studio/extension/studio-config-override.yaml
Количество времени, в течение которого сеанс действителен, считая с момента входа пользователя в систему. По истечении этого времени сессия будет завершена, даже если пользователь активен.
inactivityTimeout 30 Время неактивности сессии
Локация:CMS_HOME/bin/apache-tomcat/shared/classes/cms/studio/extension/studio-config-override.yaml
Количество времени бездействия пользователя, отслеживаемое CMS Studio, по истечении которого пользователю потребуется повторная аутентификация.
Не забудьте установить значение inactivityTimeout меньше, чем значение session-timeout в файле web.xml.
Время неактивности сеанса, отслеживаемое DC Studio, отличается от времени неактивности сеанса, отслеживаемого Tomcat. Это связано с тем, что есть некоторые вызовы API, которые CMS Studio не отслеживает как активные.
session-timeout 30 Время жизни сессии Tomcat
Локация:CMS_HOME/bin/apache-tomcat/webapps/studio/WEB-INF/web.xml
Количество времени бездействия пользователя, отслеживаемое Tomcat, по истечении которого пользователю потребуется повторная аутентификация. Это значение должно быть больше или равно inactivityTimeout, поскольку таймаут inactivityTimeout может срабатывать раньше этого.

Изменение времени жизни сессии

Перейдите по пути CMS_HOME/bin/apache-tomcat/shared/classes/cms/studio/extension/studio-config-override.yaml и в значении studio.security.sessionTimeout укажите количество времени (в минутах), в течение которого сессия действительна. Например, studio.security.sessionTimeout: 480.

Изменение времени неактивности сессии

Вы можете настроить два тайм-аута для неактивности сессии:

  1. session-timeout в файле web.xml Tomcat: этот таймаут обрабатывает неактивные соединения

  2. inactivityTimeout в файле конфигурации переопределения CMS Studio: этот таймаут применяется к неактивности сеанса Studio

Чтобы изменить таймаут неактивности сеанса, выполните следующие шаги:

  1. Перейдите по пути CMS_HOME/bin/apache-tomcat/shared/classes/cms/studio/extension/studio-config-override.yaml и в значении studio.security.inactivityTimeout укажите желаемое количество времени (в минутах) до истечения сессии пользователя из-за неактивности. Например, studio.security.inactivityTimeout: 30.
  2. Перейдите по пути CMS_HOME/bin/apache-tomcat/webapps/studio/WEB-INF/web.xml и между тегами session-timeout укажите желаемое время существования сессии в минутах.

<session-config>
  <session-timeout>30</session-timeout>
  <tracking-mode>COOKIE</tracking-mode>
    </session-config>

Copy-icon

Убедитесь, что время неактивности сессии CMS Studio, указанное в файле studio-config-override.yaml в параметре inactivityTimeout, меньше, чем время неактивности сессии Tomcat в файле CMS_HOME/bin/apache-tomcat/webapps/studio/WEB-INF/web.xml.

После настройки этих параметров не забудьте остановить и перезапустить CMS Studio, чтобы изменения вступили в силу.

Конфигурация шифра

##################################################
##                   Security                   ##
##################################################
# Time in minutes after which active users will be required to login again
# studio.security.sessionTimeout: 480
# Time in minutes after which inactive users will be required to login again
# studio.security.inactivityTimeout: 30
#
# Salt for encrypting
studio.security.cipher.salt: ${env:CMS_SYSTEM_ENCRYPTION_SALT}
# Key for encrypting
studio.security.cipher.key: ${env:CMS_SYSTEM_ENCRYPTION_KEY}

# The key used for encryption of configuration properties
studio.security.encryption.key: ${env:CMS_ENCRYPTION_KEY}
# The salt used for encryption of configuration properties
studio.security.encryption.salt: ${env:CMS_ENCRYPTION_SALT}

# The path of the folder used for the SSH configuration
studio.security.ssh.config: ${env:CMS_SSH_CONFIG}

# Defines name used for environment specific configuration. It is used for environment overrides in studio. Default value is default.
studio.configuration.environment.active: ${env:CMS_ENVIRONMENT}

Copy-icon

Токены доступа

Следующий раздел переопределений конфигурации CMS Studio позволяет вам настроить параметры для токенов доступа CMS Studio. Токены доступа затем можно использовать для вызова REST API CMS Studio.

##################################################
##               Access Tokens                  ##
##################################################

# Issuer for the generated access tokens
studio.security.token.issuer: ${env:STUDIO_TOKEN_ISSUER}
# List of accepted issuers for validation of access tokens (separated by commas)
studio.security.token.validIssuers: ${env:STUDIO_TOKEN_VALID_ISSUERS}
# The audience for generation and validation of access tokens (if empty the instance id will be used)
studio.security.token.audience: ${env:STUDIO_TOKEN_AUDIENCE}
# Time in minutes for the expiration of the access tokens
studio.security.token.timeout: ${env:STUDIO_TOKEN_TIMEOUT}
# Password for signing the access tokens (needs to be equal or greater than 512 bits in length)
studio.security.token.password.sign: ${env:STUDIO_TOKEN_SIGN_PASSWORD}
# Password for encrypting the access tokens
studio.security.token.password.encrypt: ${env:STUDIO_TOKEN_ENCRYPT_PASSWORD}
# Name of the cookie to store the refresh token
studio.security.token.cookie.name: ${env:STUDIO_REFRESH_TOKEN_NAME}
# Time in seconds for the expiration of the refresh token cookie
studio.security.token.cookie.maxAge: ${env:STUDIO_REFRESH_TOKEN_MAX_AGE}
# Indicates if the refresh token cookie should be secure (should be true for production environments behind HTTPS)
studio.security.token.cookie.secure: ${env:STUDIO_REFRESH_TOKEN_SECURE}

Copy-icon