Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

Начало сеанса и аутентификация

Каждый сеанс iproto начинается с приветствия и необязательной аутентификации.

Приветственное сообщение

При подключении клиента к серверному экземпляру экземпляр отвечает 128-байтовым текстовым приветственным сообщением, не в формате MsgPack:

Tarantool <version> (<protocol>) <instance-uuid><salt>

Например:

Tarantool 2.10.0 (Binary) 29b74bed-fdc5-454c-a828-1d4bf42c639aQK2HoFZGXTXBq2vFj7soCsHqTo6PGTF575ssUBAJLAI=

Приветствие состоит из двух строк ASCII-текста по 64 байта. Каждая строка заканчивается символом перевода строки (\n). Если содержимое строки меньше 64 байт, оставшаяся часть строки заполняется символами с ASCII-кодом 0, которые не отображаются в консоли.

Первая строка содержит версию экземпляра и тип протокола. Вторая строка содержит соль сеанса – случайную строку в кодировке base64, длина которой обычно составляет 44 байта. Соль используется в пакете аутентификации – сообщении IPROTO_AUTH.

Аутентификация

Если аутентификация пропущена, пользователем сеанса является 'guest' (для пользователя 'guest' пароль не требуется).

Если аутентификация не пропущена, в любой момент можно подготовить пакет аутентификации с помощью приветственного сообщения, имени пользователя и пароля, а также функций sha-1 следующим образом.

PREPARE SCRAMBLE:    size_of_encoded_salt_in_greeting = 44;    size_of_salt_after_base64_decode = 32;     /* sha1() will only use the first 20 bytes */    size_of_any_sha1_digest = 20;    size_of_scramble = 20;prepare 'chap-sha1' scramble:    salt = base64_decode(encoded_salt);    step_1 = sha1(password);    step_2 = sha1(step_1);    step_3 = sha1(first_20_bytes_of_salt, step_2);    scramble = xor(step_1, step_3);    return scramble;