Не работает 2FA и выводится сообщение «user not found» в случае публикации веб-интерфейса по HTTP без TLS

Проблема

Выполнял настройку OTP и E-mail. Подключил, проблем нет, всё отправляется, но при входе пользователем после ввода OTP из приложения или E-mail аутентификация возвращается в начало, а в логах пишел сообщение пользователь не найден:

Mar 11 14:38:55 avanpost idp: {"level":"debug","start":"2024-03-11T14:38:52+03:00","duration":3021.612028,"method":"POST","status":0,"path":"/oauth2/authorize","host":"idp.avanpost.local","time":"2024-03-11T14:38:55+03:00"}
Mar 11 14:38:59 avanpost idp: {"level":"debug","count":0,"time":"2024-03-11T14:38:59+03:00","message":"current connections to authenticator api service"}
Mar 11 14:39:00 avanpost idp: {"level":"warn","time":"2024-03-11T14:39:00+03:00","message":"user not found"}
Mar 11 14:39:00 avanpost idp: {"level":"debug","start":"2024-03-11T14:39:00+03:00","duration":4.539923,"method":"POST","status":0,"path":"/oauth2/authorize","host":"idp.avanpost.local","time":"2024-03-11T14:39:00+03:00"}

Если аутентификацию проходить только по паролю - проблем нет.

Версия Avanpost FAM 1.10.6.374

Публикация выполнена через Nginx без TLS, по HTTP, так как это тестовый стенд

Решение

Причина подобной ошибки - невозможность установить Cookie в браузере для HTTP без TLS из-за наличия флага secure (Using HTTP cookies - HTTP | MDN).

Варианты решения:

  1. Настроить TLS, к примеру, посредством Nginx, выполнив публикацию по HTTPS;
  2. Разрешить использование кук без флага secure.

Для настройки второго варианта в конфигурационный файл config.toml (/opt/idp/config.toml) необходимо добавить секцию:

[cookie]
path = '/'
secure = false
http_only = true
same_site = 'None'
max_age = 2592000

После добавления перезапустить службу idp.

2 лайка