我试图了解以非常基本的方式添加LDAP身份验证的最佳方法。
我想确保在访问索引时,用户被重定向到登录页面,然后他们可以使用他们的LDAP Active Directory凭据,并且当身份验证有效时,该站点的其余部分变得可用。
我在考虑在每个控制器上使用类似:before_filter
的内容来确保用户通过身份验证。
我不想将他们的凭据存储在数据库中,因为他们已经在Active Directory中,我想开始一个会话,这样用户就不必在每个页面之间登录。我已经看过使用Devise和LDAP扩展,并有一个基本的应用程序,但它似乎有很多矫枉过正。我没有尝试管理,添加用户或修改LDAP属性,或重置密码等。我只想要一些基本的身份验证才能访问该站点和一些基本的会话管理,以使体验愉快。
我正在寻找有关如何实现此类内容的任何帮助,想法或代码示例,或者只是解释我如何实现这样的目标。
以下是一些代码:
ldap = Net::LDAP.new :host => 'the_server', :auth { :method => :simple, :username => 'user', :password => 'pswd'}
if ldap.bind
# user is good
else
# user is not ok
end
答案 0 :(得分:1)
您是否看过Gem devise_ldap_authenticatable。我猜它更适合您的要求。您可以使用LDAP(Active Directory)作为身份验证提供程序,而不是使用自己的身份验证系统。
如果要构建在组织内使用的应用程序 这个插件是需要身份验证而你想使用LDAP的 对你而言。
设计LDAP Authenticatable可以替代数据库 可鉴别。此设计插件尚未经过测试 DatabaseAuthenticatable同时启用。这意味着一个 替换DatabaseAuthenticatable允许替换 单点登录。
SAML based single sign on也是以XML
传输身份验证和授权信息的着名方式。服务提供商(您)可以利用身份提供商(Active Directory-可能 ADFS )进行身份验证。 Ruby-SAML by onelogin是众所周知的SAML实现的宝石。