我可以独立配置:database_authenticatable
或:ldap_authenticatable
; 第一个针对我的 Rails SQLite 开发数据库进行身份验证,另一个针对我公司的 LDAP/Active Directory 服务器进行身份验证。
我现在想要做的是堆叠两个身份验证。如果用户通过数据库认证,那么很好;如果不是,则检查 LDAP(并最终创建用户)。我已经尝试了明显的:
devise :database_authenticatable, :ldap_authenticatable, :rememberable, :trackable
用户首先按预期对数据库进行身份验证:
User Load (0.3ms) SELECT "users".* FROM "users" WHERE "users"."login" = 'test@test.com' LIMIT 1
该查询为用户“test@test.com”返回一行(忽略登录列的电子邮件字段差异)。问题是devise
然后进行失败的 LDAP 身份验证。我将如何告诉devise
接受第一个成功的身份验证策略并停在那里?