170 похожих чатов

Всем привет! Делаю аутентификацию и регистрацию пользователя по номеру телефона

+ OTP на базе keycloak.
Логика аутентификации и регистрации такая:
1. Пользователь вводит номер телефона
2. На указанный номер телефона приходит СМС с OTP
3. После ввода OTP, если в БД не найден такой пользователь с указанным номером телефона, создается новый пользователь
4. Если пользователь найден, возвращается access и refresh токены

У меня затык на пункте 3 - keycloak же фактически основан на предоставлении кредов в виде username и password. Но в моей системе хотелось бы отказаться от паролей.
И полагаю, что у меня не получится создать пользователя в keycloak без пароля.
Появилась такая идея - отказаться от расширения keycloak и делегировать всё это дело на уровень бэкенда приложения. А при пункте 3, просто генерировать какой-то пароль в keycloak по паттерну тому или иному. Ну то есть бэкенд приложения всегда знает какой пароль у пользователя, Типа "номер телефона" + некий сикрет и все это в base64 завернуто.

Но меня смущает секьюрность этого подхода. Сразу говорю, что инстанс клоаки не будет смотреть в сеть интернет и будет доступна только в локальной сети

Мб кто-то решал такую проблему?

8 ответов

11 просмотров

В КК можно создать пользователя без пароля (credentials), если вы об этом

Vyacheslav-Yashunin Автор вопроса
Sergey Bezrukov
В КК можно создать пользователя без пароля (creden...

А получить пару токенов потом можно будет?) Когда есть свой флоу кастомный с номером телефона и otp

клоака не завязана на пароли, ты можешь хоть через magic link, хоть через WebAuthN, хоть через SSO аутентифицировать юзера Тебе нужен просто другой флоу аутентификации. Ты можешь поискать в интернете готовые или сделать свой. Есть чат по клоаке, но здесь ссылка на него удаляется хз почему, сам найди

Vyacheslav-Yashunin Автор вопроса
Ayrat Hudaygulov
клоака не завязана на пароли, ты можешь хоть через...

Понятно) Почему-то казалось что КК не будет работать по иному Спасибо!

У вас ваш бэкэнд ходит в кейклок для регистрации или бэкэнд не участвует? Потому что первый подход прям плохой, хоть и противоречит oauth

Vyacheslav-Yashunin Автор вопроса

А почему первый подход считается плохим? В том плане что есть некое BFF приложение, которое в себе инкапсулирует простой клиентский путь

Vyacheslav Yashunin
А почему первый подход считается плохим? В том пла...

В том, что идея oauth - это идея о предоставлении identity третьей стороне, которая ничего не знает, иначе оно нарушает всю идею, хоть “password flow” существует в стандарте

https://developers.redhat.com/blog/2020/10/23/use-mobile-numbers-for-user-authentication-in-keycloak

Похожие вопросы

Обсуждают сегодня

Типа вызывать GetParent и проверять на соответствие GetModuleHandle?
The Bird of Hermes
67
Всем привет! Кто нибудь парсил в ручную JSON без библиотек и фреймворков? Есть может ссылки на оптимальный алгоритмы работы с текстом и примеры таких парсеров?
Lem
27
Do any of you guys have interesting projects one could join? I'm a Middle Full-Stack developer (JS/TS, React & Node)
Lev Shapiro
40
Есть сайт. Там была древняя версия эво. Стоял плагин, который каждый коммент в Jot делал отдельной страницей. После обновления все слетело, теперь старница открывается отдельн...
Artem
1
$res = json_decode($наша строка из респонса); $res1 = array_map(fn($o) => $o->name, $res->breadcrumbs[0]->entities); Как такое будет на Хаскеле?.. В начале весь джейсон, в ко...
Хаскель Моисеевич Гопник
27
Добрый день. А shovel'ы можно как-то сконфигурировать в definitions.json? Пробовал что-то вроде: { "users": [ { "name": "agent", "password_hash": "RBCbTzQd...
Aleksey
1
Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
11
А чем вам питонисты не угодили?😂
.
79
В чем сила брат, в NASM или FASM?
Isaac Kleiner
18
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
Карта сайта