Ruby on rails LDAP组身份验证失败:绑定信息无效

Ruby on rails LDAP组身份验证失败:绑定信息无效,ruby-on-rails,authentication,devise,ldap,Ruby On Rails,Authentication,Devise,Ldap,我正在使用通过LDAP登录我的Rails应用程序。登录适用于用户(使用用户名),但不适用于组:当我尝试检查用户是否在特定组中时,我得到: 中的'Net::LDAP::BindingInformationInvalidError 设计::会话控制器#创建 无效的绑定信息 提取源(第244行附近): raise Net::LDAP::BindingInformationInvalidError,“无效绑定信息”除非(用户和psw) 我尝试了几种建议的解决方案,但都因上述错误而失败 首次尝试的解决方案

我正在使用通过LDAP登录我的Rails应用程序。登录适用于用户(使用用户名),但不适用于组:当我尝试检查用户是否在特定组中时,我得到:

中的'Net::LDAP::BindingInformationInvalidError 设计::会话控制器#创建

无效的绑定信息

提取源(第244行附近): raise Net::LDAP::BindingInformationInvalidError,“无效绑定信息”除非(用户和psw)

我尝试了几种建议的解决方案,但都因上述错误而失败

首次尝试的解决方案 我尝试在
designe.rb中将
config.ldap\u check\u group\u membership=false
更改为
config.ldap\u check\u group\u membership=true

config.ldap_create_user = true
config.ldap_check_group_membership = true
config.ldap_check_attributes = false
config.ldap_use_admin_to_bind = false
config.ldap_ad_group_check = true (also tried false with this one)
config.ldap_create_user = true
config.ldap_check_group_membership = false
config.ldap_check_attributes = true
config.ldap_use_admin_to_bind = false
ldap.yml
文件中设置组,如下所示:

authorizations: &AUTHORIZATIONS
    group_base: OU=US,DC=um,DC=com #also tried without group_base, with group_base DC=um,DC=com
    required_groups:
        - CN=D US Workers,OU=Workers,OU=abc,OU=US,DC=um,DC=com
        - CN=B US Workers,OU=Workers,OU=abc,OU=US,DC=um,DC=com
authorizations: &AUTHORIZATIONS
    require_attribute:
        memberOf: CN=D US Workers,OU=Workers,OU=abc,OU=US,DC=um,DC=com
development:
    host: <%= ENV["LDAP_HOST"] %>
    port: <%= ENV["LDAP_PORT"] %>
    attribute: 'userprincipalname'
    base: 'DC=um,DC=com' 
    ssl: <%= ENV["LDAP_SSL"] %>
    <<: *AUTHORIZATIONS
 config.ldap_create_user = true
 config.ldap_check_group_membership = false
 config.ldap_check_attributes = true
 config.ldap_use_admin_to_bind = false
后来就这样,

authorizations: &AUTHORIZATIONS
    #also tried without group_base, with group_base DC=um,DC=com
    group_base: OU=US,DC=um,DC=com 
    required_groups:
        ["memberOf", "CN=D US  Workers,OU=Workers,OU=abc,OU=US,DC=um,DC=com;CN=B US Workers,OU=Workers,OU=abc,OU=US,DC=um,DC=com"]
authorizations: &AUTHORIZATIONS
    #group_base:
    #required_groups:
    require_attribute:
        memberOf: CN=D US Workers,OU=Workers,OU=abc,OU=US,DC=um,DC=com

development:
    host: <%= ENV["LDAP_HOST"] %>
    port: <%= ENV["LDAP_PORT"] %>
    attribute: sAMAccountName
    base: DC=um,DC=com
    ssl: <%= ENV["LDAP_SSL"] %>
    admin_user: <%= ENV["LDAP_ADMIN_USER"] %> # currently my own: CN=name surname,OU=Workers,OU=abc,OU=US,DC=um,DC=com
    admin_password: <%= ENV["LDAP_ADMIN_PASSWORD"] %> currently my own password
    <<: *AUTHORIZATIONS
第二次尝试解决方案 失败后,我还尝试在
designe.rb中将
ldap\u check\u attributes=false
更改为
ldap\u check\u attributes=true

config.ldap_create_user = true
config.ldap_check_group_membership = true
config.ldap_check_attributes = false
config.ldap_use_admin_to_bind = false
config.ldap_ad_group_check = true (also tried false with this one)
config.ldap_create_user = true
config.ldap_check_group_membership = false
config.ldap_check_attributes = true
config.ldap_use_admin_to_bind = false
ldap.yml
文件中设置如下属性:

authorizations: &AUTHORIZATIONS
    group_base: OU=US,DC=um,DC=com #also tried without group_base, with group_base DC=um,DC=com
    required_groups:
        - CN=D US Workers,OU=Workers,OU=abc,OU=US,DC=um,DC=com
        - CN=B US Workers,OU=Workers,OU=abc,OU=US,DC=um,DC=com
authorizations: &AUTHORIZATIONS
    require_attribute:
        memberOf: CN=D US Workers,OU=Workers,OU=abc,OU=US,DC=um,DC=com
development:
    host: <%= ENV["LDAP_HOST"] %>
    port: <%= ENV["LDAP_PORT"] %>
    attribute: 'userprincipalname'
    base: 'DC=um,DC=com' 
    ssl: <%= ENV["LDAP_SSL"] %>
    <<: *AUTHORIZATIONS
 config.ldap_create_user = true
 config.ldap_check_group_membership = false
 config.ldap_check_attributes = true
 config.ldap_use_admin_to_bind = false

我做错了什么?

今天我设法找到了一个有效的解决方案。我更改了
designe.rb
文件如下:

authorizations: &AUTHORIZATIONS
    group_base: OU=US,DC=um,DC=com #also tried without group_base, with group_base DC=um,DC=com
    required_groups:
        - CN=D US Workers,OU=Workers,OU=abc,OU=US,DC=um,DC=com
        - CN=B US Workers,OU=Workers,OU=abc,OU=US,DC=um,DC=com
authorizations: &AUTHORIZATIONS
    require_attribute:
        memberOf: CN=D US Workers,OU=Workers,OU=abc,OU=US,DC=um,DC=com
development:
    host: <%= ENV["LDAP_HOST"] %>
    port: <%= ENV["LDAP_PORT"] %>
    attribute: 'userprincipalname'
    base: 'DC=um,DC=com' 
    ssl: <%= ENV["LDAP_SSL"] %>
    <<: *AUTHORIZATIONS
 config.ldap_create_user = true
 config.ldap_check_group_membership = false
 config.ldap_check_attributes = true
 config.ldap_use_admin_to_bind = false
像这样的
ldap.yml

authorizations: &AUTHORIZATIONS
    #also tried without group_base, with group_base DC=um,DC=com
    group_base: OU=US,DC=um,DC=com 
    required_groups:
        ["memberOf", "CN=D US  Workers,OU=Workers,OU=abc,OU=US,DC=um,DC=com;CN=B US Workers,OU=Workers,OU=abc,OU=US,DC=um,DC=com"]
authorizations: &AUTHORIZATIONS
    #group_base:
    #required_groups:
    require_attribute:
        memberOf: CN=D US Workers,OU=Workers,OU=abc,OU=US,DC=um,DC=com

development:
    host: <%= ENV["LDAP_HOST"] %>
    port: <%= ENV["LDAP_PORT"] %>
    attribute: sAMAccountName
    base: DC=um,DC=com
    ssl: <%= ENV["LDAP_SSL"] %>
    admin_user: <%= ENV["LDAP_ADMIN_USER"] %> # currently my own: CN=name surname,OU=Workers,OU=abc,OU=US,DC=um,DC=com
    admin_password: <%= ENV["LDAP_ADMIN_PASSWORD"] %> currently my own password
    <<: *AUTHORIZATIONS
授权:&授权
#分组基数:
#所需的工作组:
require_属性:
成员:CN=D美国工人,OU=Workers,OU=abc,OU=US,DC=um,DC=com
发展:
主持人:
端口:
属性:sAMAccountName
基数:DC=um,DC=com
ssl:
管理员用户:#目前我自己的:CN=name姓氏,OU=Workers,OU=abc,OU=US,DC=um,DC=com
管理员密码:当前我自己的密码