Integracja Ruby z LDAP

Czesc,
Dostalem niedawno zadanie polaczenia aplikacji z LDAP. Jestem zielony w temacie, troche programowalem, ale zdecydowanie w innych jezykach… Znalazlem po drodze gem net-ldap, ktory zainstalowalem.
Potrzebuje teraz wykonac zmiane z logowania na konta ktore sa zdefiniowane bezposredniow ruby, na logowanie przez LDAP.

Poszukujac podpowiedzi, gdzies tam po drodze, znalazlem cos takiego:

require ‘net/ldap’
ldap = Net::LDAP.new(:host => hostname, :port => portnumber)
if ldap.bind(:method => :simple, :username => your_user_name,
:password => your_user_password)

authentication succeeded

else

authentication failed

p ldap.get_operation_result

Czy w ogole ide w dobra strone? widzialem tez bardziej rozbudowane kody, ale nie wiem czy to nie za duzo, kiedy rozchodzi mi sie tylko i wylacznie o logowanie do aplikacji… Moze ktos z Was ma gdzies szablon pod takie logowanie?

Pytanie… jak w ogole ugryzc temat? Jak zachowuje sie w tym wypadku Ruby? czy wystarczy edytowac jeden plik(jezeli tak to jaki…) i w nim wkleic to co wyskrobie, czy potrzebne bedzie troche wiecej dlubania?

Z gory przepraszam, jezeli cokolwiek co wyzej popelnilem jest ponizej poziomu krytyki, ale Ruby to dla mnie czarna magia w tym momencie, a temat jest na tyle czesto spotykany… ze moze przyda sie dla potomnych na forum.

Pozdro,
Piotrek

Myślę, że tutaj jedyne co musisz zrobić to znaleźć miejsce w kodzie gdzie następuje już normalnie działające logowanie i zamiast sprawdzać wartości autoryzacyjne z bazą danych (czy jakkolwiek to wygląda teraz) sprawdzać je z wykorzystaniem gemu do obsługi ldap.
To co wkleiłeś - moim zdaniem - jest dobrym tropem.
W przypadku sukcesu tworzysz sesję itd. itp. w innym zwracasz jakiś komunikat.
Dobrym pomysłem jest też pozostawienie użytkownikom możliwości wyboru czy chcą korzystać z LDAP’a czy np starej autoryzacji. :slight_smile:
Musisz jeszcze wiedzieć jak skonfigurowany jest ldap, jak nazywają się pola, którymi się logujesz etc.
Ciężko coś więcej poradzić, bo nie mamy dostępu do kodu, ani żadnych informacji np. dot. już wykorzystanych gemów :wink:
Pomocne w szukaniu pewnie będą gemy byebug/pry

1 Like

ja korzystałem z devise i auth przez ldap, przerabiasz model usera w devise na tableless reszta z górki, kodu nie bylo dużo.

U nas w firmie użyliśmy Devise LDAP authenticatable.
Od roku nie był aktualizowany, ale większych problemów z nim nie było, aby połączyć się z Sambą 4