Эссе о разработке игр, мышлении и книгах

Open source сервисы аутентификации

Потребовалось сделать регистрацию/логин пользователей для пет-проекта. А я это жуть как не люблю, прямо до скрежета в зубах. Поэтому решил поискать что-нибудь совсем готовое, чтобы минимум кода писать и можно было однотипно использовать в будущих проектах.

В итоге нашёл несколько интересных сервисов. Забавно, при узкой предметной области они заметно отличаются друг от друга.

Далее будет моё предвзятое и не особо компетентное мнение. Сугубо для закрепления в истории результатов раскопок.

Есть три проекта, которые вызвали мой интерес:

Фич у каждого сервиса много, даже не буду пытаться перечислять. Учтите, у каждого из них уникальные их наборы. Надо проверять, что выбранный сервис умеет всё что надо и как надо.

Keycloak

Для любителей кровавого энтерпрайза со всеми плюсами и минусами.

Если для вашей глобальной корпорации надо поднять внутреннюю аутентификацию со странными правилами, скорее всего вам сюда.

Минусы вытекают из той же энтерпрайзности:

  • Не лёгкая документация.
  • Переусложнённая админка: можно настроить всякое, но нет кнопки «сделать хорошо».
  • Настройка стилей страницы с формой логина находится в админке, прямо через неё редактируется. Олдскул.

Ory

Для любителей облаков и kubernetes.

Вместо одного сервиса, подымаете кучу узкоспециализированных, каждый делает что-то одно, но хорошо.

Смотрел очень поверхностно, так как мне такое удовольствие даже с доплатой не сдалось.

Но если делаете своё облако, Ory может быть как раз для вас.

SuperTokens

Модно-молодёжно. Умеет меньше остальных, зато проще и приятнее.

  • Документация организована в виде рецептов по решению конкретных задач: сделать беспарольную аутентификацию, сделать аутентификацию через соцсети, сделать аутентификацию через почту и пароль, etc. С примерами кода, советами, подсказками, шутками и прибаутками.
  • Есть батарейки для популярных бэкенд библиотек и языков, включая FastAPI, что мне и надо.
  • Есть библиотеки для web и мобильных клиентов. Плюс готовая GUI батарейка для React. У меня Vue.js, тащить React только для логина не хотел, поэтому написал свой виджет.
  • Разрешает слать письма через свой почтовый сервис даже для self-hosted версии! Киллер фича и гениальный маркетинговый ход.
  • Предоставляет удобный бесплатный план (до 5000 MAU), если не хотите морочиться с хостингом своего сервера.

Минус — умеет меньше остальных, но мне хватило.

В целом, считаю, будущее за passwordless аутентификацией, а её SuperTokens умеют.