Почему на сервере не работает ldap bind? - PullRequest
0 голосов
/ 20 марта 2019

Я выполняю аутентификацию на сервере LDAP в моем приложении rails, приведенный ниже код работает локально, но не на сервере.

На сервере он выдает Net::LDAP::BindingInformationInvalidError (Invalid binding information) при попытке входа в приложение, но работает через консоль

Я довольно новичок в Ruby и не могу найти правильный способ его отладки ... Я знаю, что конфигурация LDAP верна, потому что я могу аутентифицировать и связыватьиз консоли или в моей локальной среде разработки .. Я пытался передать :verbose => true конструктору LDAP, но безрезультатно ...

require 'net/ldap'
require 'devise/strategies/authenticatable'

module Devise
  module Strategies
    class LdapAuthenticatable < Authenticatable
      def authenticate!
        if params[:user]
          ldap = Net::LDAP.new :host => 'XX.XX.XX.XX',
            :port => 636,
            :connect_timeout => 5,
            :base => 'CN=Configuration,DC=internal,DC=XX,DC=XX',
            :encryption => {
                :method => :simple_tls
            },
            :auth => {
              :method => :simple,
              :username => ENV['LDAP_USER'],
              :password => ENV['LDAP_PASSWORD']
            }

          result = ldap.bind_as(:base => "OU=Users,OU=XX,DC=XX,DC=XX,DC=XX",
                              :filter => "(userPrincipalName=#{email})",
                              :password => password,
          )

          if result
            user = User.find_by(email: email)
            success!(user)
          else
            return fail(:invalid_login)
          end
        end
      end

      def email
        params[:user][:email]
      end

      def password
        params[:user][:password]
      end

    end
  end
end

Warden::Strategies.add(:ldap_authenticatable, Devise::Strategies::LdapAuthenticatable)

решено

получилосьпеременные ENV, которые не были прочитаны.

1 Ответ

0 голосов
/ 20 марта 2019

Может быть, этот аккаунт не авторизован?Похоже, проблема в конфигурации привязки: base => "OU=Users,OU=XX,DC=XX,DC=XX,DC=XX"

Дополнительные сведения от других пользователей, которые столкнулись с этой ошибкой:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...