Hej!
Podpowiedzcie proszę jak do rails “zaciagnąć” nazwę aktualnie zalogowanego użytkownika windows? Docelowo chciałabym uzyskać funkcjonalność uwierzytelnienia przez aplikację rails użytkowników na podstawie wprowadzonych już poswiadczeń w windows ad.
pozdr.
1-wszy link z google
thx gotar informacje o google przyjmuje z opuszczoną gardą moja wina, że niejasno sformowałam pytanie szukam gemu/rozwiazania uwierzytekniajacego userów w ramach nt/windows a nie z bazy aplikacji tak jak to robi devise, a tak przy okazji obejrzałam oczywiscie równiez linki gotara i mam pytanko dlaczego ENV[USERNAME] wyswietli mi usera w development a juz w produkcyjnym nie, co trzeba ustawić na configu production? no i przepraszam jeżeli moje pytania są tak proste
dzięki Ala
[quote=alicja]mam pytanko dlaczego ENV[USERNAME] wyswietli mi usera w development a juz w produkcyjnym nie, co trzeba ustawić na configu production?
dzięki Ala[/quote]
bump
[quote=alicja][quote=alicja]mam pytanko dlaczego ENV[USERNAME] wyswietli mi usera w development a juz w produkcyjnym nie, co trzeba ustawić na configu production?
dzięki Ala[/quote]
bump[/quote]
ENV zawiera w sobie zmienne środowiskowe, więc taka zmienna musi być dostępna na danym systemie. Jakiego systemu używasz na produkcji?
ubuntu z nginx na wirtualce
na innym ubuntu z thina ENV[‘USERNAME’] pokaże login name ale uruchomiona ta sama apka przez passanger juz nie
[quote=alicja]ubuntu z nginx na wirtualce
na innym ubuntu z thina ENV[‘USERNAME’] pokaże login name ale uruchomiona ta sama apka przez passanger juz nie[/quote]
To może wynikać z tego, że thin ustawia sam tą zmienną. Jeżeli chcesz mieć coś co będzie działało pomiędzy systemami możesz użyć np. whoami:
USERNAME = `whoami`.strip
Z ciekawości - do czego wykorzystujesz nazwę użytkownika?
hobbystyczna aplikacyjka dla małej firmy w intranecie do zapotrzebowania na spinacze i inne duperele. Nie udało mi się połączyć device z ldap-net żeby uwierzytelniał usera po ldap chciałam uniknąć wpisywania usera i hasła dla tak drobnej aplikacji myślałam , że chociaż ENV[USERNAME] da mi info do bazy z jakiej stacji szło zapotrzebowanie
ENV[USERNAME] daje Ci dostęp do użytkownika który uruchamia serwer np. Thin. Nie ma to nic wspólnego z użytkownikiem na którego jest zalogowany człowiek korzystający z przeglądarki. Co więcej przeglądarki nie wysyłają nazwy lokalnego loginu do serwera - bo byłoby to w oczywisty sposób rażącym naruszeniem prywatności.
Jeśli chcesz mieć single sign on w środowisku Windows to zainteresuj się NTLM.
jak Ty to znajdujesz, tyle googlałam dzięki mam nadzieje, że ogarnę…
Czy są tu może osoby, które mają jakieś udane doświadczenia z wdrożeniem tego typu autentykacji i chciałyby się nimi podzielić?
Sam potrzebuję teraz to wdrożyć, przeglądam kilka potencjalnych rozwiązań, ale przydałaby się jakaś wskazówka, w którą stronę iść.
Kod z mojej apki na 3ce
1. Tableless model
member.rb
class Member < ActiveRecord::Base
def self.columns() @columns ||= []; end
def self.column(name, sql_type = nil, default = nil, null = true)
columns << ActiveRecord::ConnectionAdapters::Column.new(name.to_s, default, sql_type.to_s, null)
end
column :name, :string
column :password, :string
attr_accessible :name, :password
end
2. łączenie z ldap
members_controller.rb
def create
@member = Member.new(params[:member])
respond_to do |format|
if @member.valid?
if @member.password !=nil
if p = Net::LDAP.new
p.host = "10.9.95.100"
p.auth @member.name+"@domena.pl", @member.password
if p.bind
session[:user]= @member.name
else
@member.password = nil
format.html { render action: "new" }
end
end
else
format.html { render action: "new" }
end
format.html { redirect_to @member, notice: 'Zalogowano do systemu' }
else
format.html { render action: "new" }
end
end
end
A robiłeś może autentykację NTLM? Bo oto mi głównie chodzi. Apka stoi na nginx + unicorn i z tego co się zorientowałem nie ma żadnego modułu do nginx-a, który obsługuje ntlm. Pozostaje tylko przesiadka na apacha.
Sprawdz to
nginx oficjalnie nie dostarcza tego zatem dlatego pewnie masz problemy ze znalezieniem.
Możesz skorzystać też z:
http://wiki.nginx.org/XSendfile
zamiast przeskakiwac na apache
Mam działające rozwiązanie serwera proxy “stojącego w domenie” plus header enrichment. Dzięki temu obsługa różnych metod uwierzytelnienia jest mocno uproszczona.