Можно ли на практике иметь другую базу данных только для аутентификации пользователей?

Я начал создавать API с помощью Phoenix Framework. Я только начал изучать Эликсир и Феникс, так что извините, пожалуйста, за недостаток знаний.

Структура данных моего приложения зависит от интенсивного использования отношений между несколькими узлами. Поэтому я планирую использовать OrientDB. Существует драйвер OrientDB для Elixir. Но пока это просто бинарный драйвер, не интегрированный с Ecto. И есть решение для аутентификации токена для Phoenix (Marco Polo) с использованием Ecto.

Поскольку я только создаю прототип и плохо разбираюсь в Elixir, я думаю о том, как лучше всего справиться с отсутствующим звеном. Начните интегрировать Marco Polo с Ecto или просто сохраните информацию о пользователе для аутентификации в PostgreSQL. Затем мне пришлось бы отразить пользователей в OrientDB, чтобы иметь возможность связать их с записями.

На данный момент я предпочитаю использовать PostgreSQL и OrientDB вместе. Есть ли оборотная сторона, о которой я не знаю? Кто-нибудь делал что-то подобное и может поделиться своим опытом?


person Ole Spaarmann    schedule 18.09.2015    source источник


Ответы (1)


Многие крупные компании используют разные базы данных для аутентификации по сравнению с обычным хранилищем данных приложений. Например, большинство крупных компаний используют LDAP и выполняют там авторизацию.

Это умеренная PITA для синхронизации информации о пользователе между ними, но на самом деле это единственный способ, если вам нужны централизованные пользователи и много приложений. Вероятно, это также более безопасно, если пароли хранятся только в базе данных аутентификации, а не в базах данных приложений.

person Neil McGuigan    schedule 18.09.2015