我将为我的一个客户进行一个大型项目。我需要编写一个 IDP(身份提供程序),它将通过多种不同的身份验证方法(例如SAML
、OAuth
、Form-based auth
、HTTP Basic auth
)处理对多个应用程序的单点登录。随着应用程序的增长,我还需要能够添加其他类型的身份验证。
基本想法是我们将拥有三个不同的应用程序组件。一个是国内流离失所者。另一个是包含用户帐户、他们想要使用的应用程序等的数据存储。第三个是允许用户登录应用程序的 GUI 前端。
似乎有一些现有的 gem 可以处理身份验证,例如https://github.com/onelogin/ruby-saml和https://github.com/intridea/omniauth。我的问题是,我是否使这个项目过于复杂——我是否只能使用现有的像这样的 gem 来充当 IDP,或者这是一个我需要阅读规范并自己在 Ruby 中实现它们的项目?