Как мне реализовать Oauth с устаревшими базами данных? - PullRequest
0 голосов
/ 01 декабря 2018

У меня может быть несколько приложений, назовем их X, Y и Z. Я хочу использовать обычную аутентификацию A, где пользователь, вошедший в приложение X, также может использовать ресурсы Y и Z. Нам нужно будет иметь возможностьиспользуйте LDAP и OpenID для аутентификации.Я собираюсь использовать Devise и Doorkeeper, которые, кажется, отчасти делают то, что я хочу.

Однако существует проблема с приложениями X, Y и Z. Они используют устаревшую базу данных, которую я не могу трогать.Все примеры, которые я видел, требовали, чтобы приложения X, Y и Z имели доступ к какой-либо таблице User и другим таблицам, обычно используемым для аутентификации пользователя.

Приложения X, Y, Z и сервер аутентификации A будут развернуты в нашей сети, поэтому мне, возможно, не придется беспокоиться о защите трафика между ними.

Что мне делать?Должны ли X, Y и Z использовать две базы данных?Я знаю, что в Rails некоторые модели могут быть подключены к другой базе данных.Или я должен ввести другой сервис вместо дополнительной базы данных?Если я пошел по этому пути, на что мне обратить внимание?Я никогда не был в такой ситуации, и я не знаю, что делать?

некоторый прогресс

Используя этот драгоценный камень https://github.com/customink/secondbase Я смог поместить устаревшую базу данных вВторая база данных, поэтому я получил свободу создания новых таблиц в основной базе данных.Так что эта часть больше не является проблемой.

Однако есть другая проблема.Было бы хорошо, если бы аутентификация могла общаться с LDAP, OpenID и другими сервисами аутентификации.

Моя идея - не использовать omni-auth2 в клиентских приложениях XYZ, а использовать oauth2 gem https://github.com/oauth-xx/oauth2,, который обещает возможность отладки процесса аутентификации.

В приложении аутентификации AI подумывает об использовании комбинации devise, docker и omi-auth2, если для аутентификации необходимо общаться с другими серверами.

Это будет означать использование omni-auth2 для его предполагаемогоцель?Я нашел пример, где omni-auth будет использоваться в эквиваленте моих приложений XYZ, но я не смог найти способ его отладки и изменения в соответствии с моими потребностями.Кроме того, я не понимаю пользовательскую стратегию, использованную в примере.Как лучше двигаться вперед в этом сценарии?

...