2017-02-14 7 views
0

にログインだから、私は次のログに記録された情報を得る:工夫LDAPユーザーを見つけることができませんが、私は<a href="https://github.com/cschiewek/devise_ldap_authenticatable" rel="nofollow noreferrer">devise_ldap_authenticatable gem</a>でユーザーを認証する際に細かい

LDAP: LDAP dn lookup: sAMAccountName=john.smith 
    LDAP: LDAP search for login: sAMAccountName=john.smith 
    LDAP: LDAP search yielded 0 matches 
    LDAP: Authorizing user lt\john.smith 

私の理解では、検索は返しません私はLDAPフィールド(主にdepartment)に基づいて他の属性を設定することができます。

私は、この検索には、次のrakeタスクで動作する必要があることをチェックしました:

desc "LDAP Test" 
    task ldap: :environment do 
    ldap = Net::LDAP.new :host => ENV['LDAP_IP'], 
         :port => ENV['LDAP_PORT'], 
         :encryption => :simple_tls, 
         :base => ENV['LDAP_BASE'], 
         :auth => { 
          :method => :simple, 
          :username => ENV['LDAP_LOGIN'], 
          :password => ENV['LDAP_PASSWORD'] 
         } 
    if ldap.bind 
     ldap.search(:base => ENV['LDAP_BASE'], :filter => Net::LDAP::Filter.eq("sAMAccountName", "john.smith"), :attributes => ["sAMAccountName", "department"], :return_result => false) do |entry| 
     entry.each do |attr, values| 
      puts "#{attr}: #{values.first}" 
     end 
     end 
    else 
     puts "Connection failed! Code: #{ldap.get_operation_result.code}, message: #{ldap.get_operation_result.message}" 
    end 
    end 

返す:ログイン検索が失敗することができ、なぜ

dn: CN=John Smith,OU=Temporary Staff,OU=Users,DC=lt,DC=local 
department: Bioinformatics 
samaccountname: Johh.Smith 

、誰もが知っていますか?次のように私の設定ファイルは以下のとおりです。

devise.rb:

# ==> LDAP Configuration 
    config.ldap_logger = true 
    config.ldap_create_user = true 
    config.ldap_update_password = false 
    # config.ldap_config = "#{Rails.root}/config/ldap.yml" 
    config.ldap_auth_username_builder = Proc.new() {|attribute, login, ldap| "lt\\#{login}"} 
    # config.ldap_check_group_membership = false 
    # config.ldap_check_attributes = false 
    config.ldap_use_admin_to_bind = true 

がldap.yml:

development: 
    host: <%= ENV['LDAP_IP'] %> 
    port: <%= ENV['LDAP_PORT'] %> 
    attribute: sAMAccountName 
    base: <%= ENV['LDAP_BASE'] %> 
    admin_user: <%= ENV['LDAP_LOGIN'] %> 
    admin_password: <%= ENV['LDAP_PASSWORD'] %> 
    ssl: true 
    # <<: *AUTHORIZATIONS 

答えて

0

私は違いを見るためにWiresharkのようなパケットスニファを使用しますrakeタスクに対するLDAP要求とdevise。また、UnboundID LDAP SDK for Javaには、LDAPDebuggerというツールが付属しています。このツールを使用して、アプリケーションとActive Directory間のプロキシとしてトラフィックをデコードすることができます。

こちらがお役に立てば幸いです。

関連する問題