Проблема
Выполнял настройку 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).
Варианты решения:
- Настроить TLS, к примеру, посредством Nginx, выполнив публикацию по HTTPS;
- Разрешить использование кук без флага secure.
Для настройки второго варианта в конфигурационный файл config.toml (/opt/idp/config.toml) необходимо добавить секцию:
[cookie]
path = '/'
secure = false
http_only = true
same_site = 'None'
max_age = 2592000
После добавления перезапустить службу idp.