我可能有多个应用程序,我们将它们称为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和其他身份验证服务进行通讯,那将是很好的。
我的想法不是在客户端应用程序XYZ上使用omni-auth2,而是使用oauth2 gem https://github.com/oauth-xx/oauth2,它承诺可以调试身份验证过程。
在身份验证应用程序A上,如果身份验证需要与其他服务器通信,我考虑使用devise,docker和omi-auth2的组合。
这是否意味着将omni-auth2用于其预期目的?我找到了在我的应用程序XYZ的同等版本上使用omni-auth的示例,但是我找不到调试它和修改自己需求的方法。另外,我不了解示例中使用的自定义策略。在这种情况下最好的前进方法是什么?