Должен ли микросервис аутентификации реализовывать функции которые от него зависят
Изучая различные реализации микросервисов аутентификации, столкнулся с вопросами:
Введение:
Сервис аутентфикаици занимается выдачей токенов и ничего более. Имеет собственную БД, в которой содержится:
- ID пользователя
- логин
- хэш пароля.
Пример такого микросервиса (Docker + FastAPI + Postgress): https://github.com/hriczzoli/auth-microservice
У меня появились вопросы:
- Как будет работать смена пароля? На какой сервис следует отправить запрос с фронта?
- Администрирование. Должна быть раздел администратора, в котором можно добавить/удалить пользователей, сменить логин, сбросить пароль. Кто предоставит API для раздела администратора?
- Регистрация новых пользователей. Пользователь отправил запрос, а стороне бэкенда надо создать учетку в микросервисе аутентификации, отправить письмо на почту с приветствием, ... (еще несколько действий), и все эти действия выполняются сторонними микросервисами. Должен ли микросервис авторизации оповещать сторонние сервисы о успешной регистрации нового пользователя?
Если микросервис аутентификации делать максимально простым (только выдача токенов (в соответствии с идеалогией микросервисов)), то мне не понятно, как решать вопросы выше. А если добавить подобный функционал, то сервис станет совсем не микро.
Стоит ли добавлять указанный функционал в микросервис, или такие вопросы решаются иначе? Или есть готовые примеры?