Skip to content

Конфигурация сервиса Auth

Логгер

КлючОписание
auth.log.lvlУровень логгирования приложения
5 - debug
4 - info
3 - warning
2 - error
Пример env: POTENTIAL_AUTH_LOG_LVL=5
auth.log.pathПуть до лога сервиса
Пример env: POTENTIAL_AUTH_LOG_PATH=/tmp/next_box/auth.log
пример части конфигурации в yml конфиге
yaml
auth:
  log:
    lvl: 5
    path: /tmp/next_box/auth.log

Http сервер

КлючОписание
auth.http.hostАдрес http сервера
Пример env: POTENTIAL_AUTH_HTTP_HOST=0.0.0.0
auth.http.portПорт http сервера
Пример env: POTENTIAL_AUTH_HTTP_PORT=6006
auth.http.max_multipart_body_sizeМаксимальный размер тела, при мультипарт запросах POTENTIAL_AUTH_HTTP_MAX_MULTIPART_BODY_SIZE=0
auth.http.read_timeoutМаксимальная продолжительность чтения всего запроса, включая текст. Нулевое или отрицательное значение означает, что тайм-аута не будет. POTENTIAL_AUTH_HTTP_READ_TIMEOUT=0
auth.http.write_timeoutМаксимальное время до истечения времени ожидания записи ответа. Оно сбрасывается всякий раз, когда считывается заголовок нового запроса. Как и ReadTimeout, оно не позволяет обработчикам принимать решения для каждого отдельного запроса. Нулевое или отрицательное значение означает, что тайм-аута не будет.
Пример env: POTENTIAL_AUTH_HTTP_WRITE_TIMEOUT=0
auth.internal_http.mtls_enableВключение шифрование трафика mTLS между сервисами NB.
Пример env: POTENTIAL_AUTH_INTERNAL_HTTP_MTLS_ENABLE=false
auth.internal_http.server_cert_key_pathПриватный ключ сервера для mTLS.
Пример env: POTENTIAL_AUTH_INTERNAL_HTTP_SERVER_CERT_KEY_PATH=./host.docker.internal.key
auth.internal_http.server_cert_pathСертификат сервера для mTLS.
Пример env: POTENTIAL_AUTH_INTERNAL_HTTP_SERVER_CERT_PATH=./host.docker.internal.crt
auth.internal_http.client_cert_key_pathПриватный ключ клиента для mTLS.
Пример env: POTENTIAL_AUTH_INTERNAL_HTTP_CLIENT_CERT_KEY_PATH=./client.key
auth.internal_http.client_cert_pathСертификат сервера для mTLS.
Пример env: POTENTIAL_AUTH_INTERNAL_HTTP_CLIENT_CERT_PATH=./client.crt
auth.internal_http.ca_cert_pathКорневой сертификат для mTLS.
Пример env: POTENTIAL_AUTH_INTERNAL_HTTP_CA_CERT_PATH=./cert.crt
пример части конфигурации в yml конфиге
yaml
auth:
  http:
    host: 0.0.0.0
    max_multipart_body_size: 0
    port: 6006
    read_timeout: 0
    write_timeout: 0
  internal_http:
    ca_cert_path: ./cert.crt
    client_cert_key_path: ./client.key
    client_cert_path: ./client.crt
    mtls_enable: false
    server_cert_key_path: ./host.docker.internal.key
    server_cert_path: ./host.docker.internal.crt

База данных

КлючОписание
auth.database.dsnDsn для доступа к базе данных в формате:
postgres://<login>:<password>@<address>:<port>/auth"
login - логин базы
password - пароль от базы
address - адрес до базы
port - порт до базы
Пример env: POTENTIAL_AUTH_DATABASE_DSN=postgres://admin:admin@127.0.0.1:5432/auth
пример части конфигурации в yml конфиге
yaml
auth:
  database:
    dsn: postgres://admin:admin@127.0.0.1:5432/auth

Общие настройки сервиса

КлючОписание
auth.service.tokenТокен для межсервисного общения. Такой же токен должен быть у каждого сервиса nextbox.
Пример env: POTENTIAL_AUTH_SERVICE_TOKEN=qwe123
auth.service.nameНазвание сервиса
Пример env: POTENTIAL_AUTH_SERVICE_NAME=Auth
auth.service.route_nameНазвание роута сервиса, лучше не менять, иначе возможны проблемы в общении между сервисами!
Пример env: POTENTIAL_AUTH_SERVICE_ROUTE_NAME=auth
auth.service.back_urlАдрес по которому обращаются к сервису другие сервисы NB.
Пример env: POTENTIAL_AUTH_SERVICE_BACK_URL=http://127.0.0.1:6006
auth.service.instance_numberНомер сервиса. Используется для горизонтального масштабирования сервисов. В текущем сервисе не должен отличаться от 1
Пример env: POTENTIAL_AUTH_SERVICE_INSTANCE_NUMBER=1
auth.discovery.urlАдрес discovery сервиса в NB. В котором регистрируются все сервисы в NB
Пример env: POTENTIAL_AUTH_DISCOVERY_URL=http://127.0.0.1:6001
пример части конфигурации в yml конфиге
yaml
auth:
  service:
    back_url: http://127.0.0.1:6006
    instance_number: 1
    name: Auth
    route_name: auth
    token: qwe123
  discovery:
    url: http://127.0.0.1:6001

Авторизация

КлючОписание
auth.auth_methods.classicВключение обычной авторизации по логину и паролю.
Пример env: POTENTIAL_AUTH_AUTH_METHODS_LDAP=true
auth.auth_methods.basicВключение basic авторизации.
Пример env: POTENTIAL_AUTH_AUTH_METHODS_LDAP=true
auth.auth_methods.ldapВключение ldap авторизации.
Пример env: POTENTIAL_AUTH_AUTH_METHODS_LDAP=false
auth.ldap.urlАдрес сервера ldap.
Пример env: POTENTIAL_AUTH_LDAP_URL=ldap://myldap.server
auth.ldap.login_templateШаблон поисковой строки для авторизации.
Пример env: POTENTIAL_AUTH_LDAP_LOGIN_TEMPLATE=cn=my_cn,cn=groups,cn=accounts,dc=my_dc,dc=my_loc
auth.ldap.login_keyКлюч для поиска логина в ldap. Добавляется к login_template по принципу login_key=login.
Пример env: POTENTIAL_AUTH_LDAP_LOGIN_KEY=login
auth.ldap.login_groupПроверка что пользователь состоит в конкретной группе ldap.
Пример env: POTENTIAL_AUTH_LDAP_LOGIN_GROUP=cn=my_user_group,cn=groups,cn=accounts,dc=my_company,dc=location
auth.ldap.base_dnШаблон поисковой строки пользователя в ldap.
Пример env: POTENTIAL_AUTH_LDAP_BASE_DN=dc=ptnl,dc=loc
auth.ldap.attributes.first_nameАтрибут имени пользователя в ldap при поиске через base_dn.
Пример env: POTENTIAL_AUTH_LDAP_ATTRIBUTES_FIRT_NAME=name
auth.ldap.attributes.last_nameАтрибут фамилии пользователя в ldap при поиске через base_dn.
Пример env: POTENTIAL_AUTH_LDAP_ATTRIBUTES_LAST_NAME=last_name
auth.ldap.attributes.emailАтрибут фамилии пользователя в ldap при поиске через base_dn.
Пример env: POTENTIAL_AUTH_LDAP_ATTRIBUTES_EMAIL=email
пример части конфигурации в yml конфиге
yaml
auth:
  auth_methods:
    basic: true
    classic: true
    ldap: false
  ldap:
    attributes:
      email: mail
      first_name: name
      last_name: last_name
    base_dn: dc=ptnl,dc=loc
    login_group: cn=my_user_group,cn=groups,cn=accounts,dc=my_company,dc=location
    login_key: login
    login_template: cn=my_cn,cn=groups,cn=accounts,dc=my_dc,dc=my_loc
    url: ldap://myldap.server

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

КлючОписание
auth.tokens.limit_per_userМаксимальное количество активных токенов для одного пользователя.
Пример env: POTENTIAL_AUTH_TOKENS_LIMIT_PER_USER=10
auth.tokens.sign_keyСекретный ключ для подписи авторизационных JWT токенов.
Пример env: POTENTIAL_AUTH_TOKENS_LIMIT_SIGN_KEY=qwe123
auth.tokens.expire_interval_secВремя жизни авторизационного токена в секундах.
Пример env: POTENTIAL_AUTH_TOKENS_LIMIT_EXPIRE_INTERVAL_SEC=3600
auth.tokens.refresh_expire_interval_secВремя жизни апдейт токена в секундах.
Пример env: POTENTIAL_AUTH_TOKENS_REFRESH_EXPIRE_INTERVAL_SEC=2592000
auth.tokens.basic_expire_interval_secВремя жизни токена при basic авторизации в секундах. Ограничивает время запроса.
Пример env: POTENTIAL_AUTH_TOKENS_BASIC_EXPIRE_INTERVAL_SEC=60
auth.auth_attempts.enabledВключение максимального количества попыток логина при неверном вводе логина или пароля.
Пример env: POTENTIAL_AUTH_AUTH_ATTEMPTS_ENABLED=false
auth.auth_attempts.countМаксимальное количество попыток ввода неправильных данных при логине.
Пример env: POTENTIAL_AUTH_AUTH_ATTEMPTS_COUNT=5
auth.auth_attempts.durationКоличество минут на которое блокируется пользователь, после того как ввели неправильные учетные данные n раз.
Пример env: POTENTIAL_AUTH_AUTH_ATTEMPTS_DURATION=30
auth.inactive_users.enabledВключение блокировки неактивных пользователей в течении 45 дней.
Пример env: POTENTIAL_AUTH_INACTIVE_USERS_ENABLED=false
auth.limit_admin_logins.enabledОграничение максимального количества активных токенов для администраторов.
Пример env: POTENTIAL_AUTH_LIMIT_ADMIN_LOGINS_ENABLED=false
auth.limit_admin_logins.limit_per_adminМаксимальное количество активных токенов для администраторов.
Пример env: POTENTIAL_AUTH_LIMIT_ADMIN_LOGINS_LIMIT_PER_ADMIN=2
auth.check_last_update_password.enabledВключение проверки последнего изменения пароля у пользователей. Если пароль не менялся некоторое количество дней, то будет приходить уведомление пользователям и администраторам.
Пример env: POTENTIAL_AUTH_CHECK_LAST_UPDATE_PASSWORD_ENABLED=false
auth.check_last_update_password.daysКоличество дней после последнего изменения пароля, после истечения которого будет отправлено уведомления.
Пример env: POTENTIAL_AUTH_CHECK_LAST_UPDATE_PASSWORD_DAYS=60
auth.lock_screen.enabledВключение блокировки экрана в браузере после периода не активности.
Пример env: POTENTIAL_AUTH_LOCK_SCREEN_ENABLED=false
auth.lock_screen.durationПериод неактивности пользователя в секундах, после которого будет произведена блокировка экрана.
Пример env: POTENTIAL_AUTH_LOCK_SCREEN_DURATION=300
пример части конфигурации в yml конфиге
yaml
auth:
  tokens:
    basic_expire_interval_sec: 60
    expire_interval_sec: 3600
    limit_per_user: 10
    refresh_expire_interval_sec: 2592000
    sign_key: qwe123
  auth_attempts:
    count: 5
    duration: 30
    enabled: false
  inactive_users:
    enabled: false
  limit_admin_logins:
    enabled: false
    limit_per_admin: 2
  check_last_update_password:
    days: 60
    enabled: false
  lock_screen:
    duration: 300
    enabled: false

Настройки rabbitmq

КлючОписание
auth.rabbit_mq.userЛогин пользователя в rabbitmq.
Пример env: POTENTIAL_AUTH_RABBIT_MQ_USER=guest
auth.rabbit_mq.passwordПароль пользователя в rabbitmq.
Пример env: POTENTIAL_AUTH_RABBIT_MQ_PASSWORD=guest
auth.rabbit_mq.hostАдрес сервера rabbitmq.
Пример env: POTENTIAL_AUTH_RABBIT_MQ_HOST=127.0.0.1
auth.rabbit_mq.portПорт сервера rabbitmq.
Пример env: POTENTIAL_AUTH_RABBIT_MQ_PORT=5672
auth.rabbit_mq.vhostvhost rabbitmq.
Пример env: POTENTIAL_AUTH_RABBIT_MQ_VHOST=
пример части конфигурации в yml конфиге
yaml
auth:
  rabbit_mq:
    host: 127.0.0.1
    password: guest
    port: "5672"
    user: guest
    vhost: ""

Настройки redis

КлючОписание
auth.redis.hostАдрес redis.
Пример env: POTENTIAL_AUTH_REDIS_HOST=127.0.0.1
auth.redis.portПорт redis.
Пример env: POTENTIAL_AUTH_REDIS_PORT=6379
auth.redis.loginЛогин redis.
Пример env: POTENTIAL_AUTH_REDIS_LOGIN=
auth.redis.passwordПароль redis.
Пример env: POTENTIAL_AUTH_REDIS_PASSWORD=
auth.redis.db_numНомер базы redis.
Пример env: POTENTIAL_AUTH_REDIS_DB_NUM=0
пример части конфигурации в yml конфиге
yaml
auth:
  redis:
    db_num: 0
    host: 127.0.0.1
    login: ""
    password: ""
    port: 6379