어떤 이유로 인해 내 페이지에서 Devise로 인증하는 것이 작동하지 않는 것 같아 인증되지 않은 401 오류가 발생합니다. net/ldap의 단계를 거치면 제대로 묶여있는 것처럼 보입니다. 문제가있는 곳을 잘 모르겠습니다. 서버에서LDAP 인증이 제대로 바인딩되지 않았습니까?
출력 : ldap.yml에서
Processing by Devise::SessionsController#create as HTML
Parameters: {"utf8"=>"â", "authenticity_token"=>"0uaLJJKobrDkn1mGDRP/RM6gIec+Wi7oykgWYuutsvk=", "user"=>{"login"=><login>, "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Sign in"}
Completed 401 Unauthorized in 14ms
: devise.rb에서
development:
host: <hostname>
port: 389
attribute: sAMAccountName
base: <base>
admin_user: <admin user>
admin_password: <admin pass>
ssl: false
# <<: *AUTHORIZATIONS
:
IRB에 대한 테스트에서config.ldap_use_admin_to_bind = true
config.authentication_keys = [ :login ]
:
$ irb
irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require 'net/ldap'
=> true
irb(main):003:0> ldap = Net::LDAP.new
=> #<Net::LDAP:0x141d19 @host="127.0.0.1", @auth={:method=>:anonymous}, @encryption=nil, @base="dc=com", @port=389, @verbose=false, @open_connection=nil>
irb(main):004:0> ldap.host = <hostname>
=> <hostname>
irb(main):005:0> ldap.port = 389
=> 389
irb(main):006:0> ldap.base = <base>
=> <base>
irb(main):007:0> ldap.auth <admin user>, <admin pass>
=> {:method=>:simple, :username=><admin user>, :password=><admin pass>}
irb(main):008:0> dn = ldap.search(:filter => Net::LDAP::Filter.eq('sAMAccountName', <login>)).first.dn
=> <login dn information>
irb(main):009:0> ldap.auth dn, <password>
=> {:method=>:simple, :username=><login dn information>, :password=><password>}
irb(main):010:0> ldap.bind
=> true
당신이 볼 수 있듯이 바인드는 정상적인 net/ldap 테스트를 통해 정상적으로 작동하지만 Devise 모듈이 수행해야하는 작업을 복제하더라도 어떤 이유로 든 실제 Rails 사이트를 통과 할 때 작동하지 않는 것처럼 보입니다.
이 문제를 해결할 방법을 찾았습니까? –