auth_totp_start

Директива `auth_totp_start` задаёт начальное время для алгоритма одноразовых паролей на основе времени (TOTP) в NGINX.

Синтаксисauth_totp_start ;
По умолчаниюnone
Контекстhttp, server, location, limit_except
Аргументы1

Описание

Директива auth_totp_start указывает начальное время, в секундах с момента Unix epoch, с которого алгоритм TOTP начинает генерировать одноразовые пароли. Эта настройка времени критически важна для механизма TOTP, так как она определяет опорную точку, от которой создаются последующие временные токены. Когда пользователь пытается аутентифицироваться, алгоритм TOTP вычисляет ответ на основе этого начального времени, что влияет на действительность одноразового пароля, сгенерированного исходя из текущего времени и настроенного временного шага.

На практике, если auth_totp_start не синхронизирован с часами сервера или клиента, это может привести к сбоям аутентификации. Эта директива, наряду с другими, такими как auth_totp_step, позволяет тонко настраивать систему TOTP, контролируя момент, когда начинается генерация паролей. Важно согласовать эту конфигурацию с логикой приложения, ожидающей одноразовые пароли, поскольку расхождения могут привести к тому, что действительные токены будут ошибочно считаться просроченными или недействительными. Кроме того, если начальное время задано слишком далеко в прошлом, это может привести к генерации перекрывающихся токенов в определённых условиях, что может скомпрометировать уникальность пароля для каждого запроса.

Пример конфига

server {
    listen 80;

    location /protected {
        auth_totp_realm "Protected";
        auth_totp_file /etc/nginx/totp.conf;
        auth_totp_length 8;
        auth_totp_start 1633046400;  # Example Unix timestamp
        auth_totp_reuse off;
        auth_totp_skew 1;
        auth_totp_step 1m;
        auth_totp_cookie "totp-session";
        auth_totp_expiry 1d;
    }
}

Неправильная настройка auth_totp_start может привести к несоответствиям token и сбоям аутентификации.

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

Если явно не задана, директива по умолчанию принимает значение 'none', что может привести к непредсказуемому поведению или поведению по умолчанию в TOTP-процессе.

← Ко всем директивам