Должен ли потребитель DiscourseConnect сохранять данные пользователя в локальную базу данных?

В качестве реального примера: я работаю над расширением аутентификации для MediaWiki, которое интегрирует DiscourseConnect. Это будет единственный способ входа в мой экземпляр MediaWiki.

Насколько я знаю, у меня есть два варианта:

  1. Реализовать SessionProvider, который получает данные пользователя из обратного вызова DiscourseConnect и напрямую устанавливает их в сессию MediaWiki.

  2. Реализовать PrimaryAuthenticationProvider, который также получает данные пользователя из обратного вызова DiscourseConnect, но создаёт собственного пользователя в системе MediaWiki.

Мне кажется, что вариант 1 больше похож на реализацию SSO, а вариант 2 — на «Вход через Google».

Единственный недостаток варианта 1, о котором я знаю, заключается в том, что из него будет сложно выйти: я не представляю, как можно будет мигрировать с него и включить локальный вход, если в MediaWiki не сохраняются никакие учётные данные. Возможно, я мог бы сохранять учётные данные пользователя где-то ещё.

Какой вариант мне выбрать?

Спасибо.