+ OTP на базе keycloak.
Логика аутентификации и регистрации такая:
1. Пользователь вводит номер телефона
2. На указанный номер телефона приходит СМС с OTP
3. После ввода OTP, если в БД не найден такой пользователь с указанным номером телефона, создается новый пользователь
4. Если пользователь найден, возвращается access и refresh токены
У меня затык на пункте 3 - keycloak же фактически основан на предоставлении кредов в виде username и password. Но в моей системе хотелось бы отказаться от паролей.
И полагаю, что у меня не получится создать пользователя в keycloak без пароля.
Появилась такая идея - отказаться от расширения keycloak и делегировать всё это дело на уровень бэкенда приложения. А при пункте 3, просто генерировать какой-то пароль в keycloak по паттерну тому или иному. Ну то есть бэкенд приложения всегда знает какой пароль у пользователя, Типа "номер телефона" + некий сикрет и все это в base64 завернуто.
Но меня смущает секьюрность этого подхода. Сразу говорю, что инстанс клоаки не будет смотреть в сеть интернет и будет доступна только в локальной сети
Мб кто-то решал такую проблему?
В КК можно создать пользователя без пароля (credentials), если вы об этом
А получить пару токенов потом можно будет?) Когда есть свой флоу кастомный с номером телефона и otp
клоака не завязана на пароли, ты можешь хоть через magic link, хоть через WebAuthN, хоть через SSO аутентифицировать юзера Тебе нужен просто другой флоу аутентификации. Ты можешь поискать в интернете готовые или сделать свой. Есть чат по клоаке, но здесь ссылка на него удаляется хз почему, сам найди
Понятно) Почему-то казалось что КК не будет работать по иному Спасибо!
У вас ваш бэкэнд ходит в кейклок для регистрации или бэкэнд не участвует? Потому что первый подход прям плохой, хоть и противоречит oauth
А почему первый подход считается плохим? В том плане что есть некое BFF приложение, которое в себе инкапсулирует простой клиентский путь
В том, что идея oauth - это идея о предоставлении identity третьей стороне, которая ничего не знает, иначе оно нарушает всю идею, хоть “password flow” существует в стандарте
https://developers.redhat.com/blog/2020/10/23/use-mobile-numbers-for-user-authentication-in-keycloak
Обсуждают сегодня