我正在开发一个客户是组织的应用程序;每个组织都有许多员工,即应用程序的用户。并非所有员工都是应用程序的用户,因此每个组织都有一名经理,负责注册将成为用户的员工。
我们的一位客户要求我们使用他们的LDAP身份验证系统,这样用户就不必学习新的登录名和密码。
目前,使用Devise进行身份验证。我在他们的wiki(https://github.com/plataformatec/devise/wiki/How-To:-Authenticate-via-LDAP)中找到了一篇文章,解释了如何添加一个新的Warden策略来处理LDAP。
我做了一个小修改,以便如果用户通过LDAP进行身份验证但未在应用程序中注册,则不会为他创建新帐户,但会显示无效的登录消息:https://gist.github.com/jdanielnd/a0e6a73f3f5f9b3462a6。< / p>
然而,这是我需要的行为:组织模型将有一个LDAP身份验证标志和一个带有LDAP设置数据的LdapSettings对象。
如果用户电子邮件属于使用LDAP身份验证的组织中的用户,则它将抓取该组织的LDAP设置并尝试对用户进行身份验证。 如果用户电子邮件不属于使用LDAP身份验证的组织中的用户,则会尝试像往常一样对数据库进行身份验证。 我对Devise知之甚少。可能吗?有谁知道我怎么能实现这个目标?
谢谢!