2011-02-25 5 views
1

J'ai une petite application ruby ​​dans laquelle j'essaie d'interroger certaines informations à partir d'Active Directory. L'application sera exécutée par un utilisateur Windows déjà connecté. Il semble que la gemme ruby-net-ldap me demande de me connecter à un serveur LDAP en utilisant une adresse IP, un port, puis de passer mon nom d'utilisateur et mon mot de passe. Existe-t-il un moyen d'y parvenir (avec une gemme différente, par exemple) pour ne pas avoir à transmettre cette information (je n'ai pas le mot de passe de l'utilisateur actuel, par exemple, ça ne marchera pas)? Je suis également l'hôte d'un site Trac sur notre intranet (qui est écrit en Python si je me souviens bien et qui semble connaître le nom d'utilisateur Windows actuel et le domaine .S'il peut le faire, sûrement ma petite application ruby ​​peut accéder ? cette information tropInterroger Active Directory dans l'application ruby ​​sur Windows

+1

Quelles sont les informations que vous essayez de recueillir je l'ai utilisé 'ruby-net-ldap' à? authentifier les utilisateurs sur AD, je pensais (peut-être incorrectement) que vous deviez être authentifié afin que AD sache quelles données vous avez même été autorisés à voir – Phrogz

+0

Ouais, le déversoir En fait, je sais qu'il existe des applications Windows natives qui n'ont pas besoin d'envoyer explicitement leur mot de passe ou leur hôte LDAP avant d'accéder aux informations Active Directory. Je suppose que c'est parce que la connexion à Windows vous a déjà connecté dans AD (ou au moins il y a un jeton qui peut être utilisé à la place de host + user + pwd). – Ben

+0

Je suis [mal à propos de IIS étant nécessaire] (http://www.zorched.net/2007/06/04/active-directory-authentication-for-ruby-on-rails/) et environ [IE étant requis] (http://sivel.net/2007/05/firefox-ntlm-sso/). – Phrogz

Répondre

1

je résolu cela en utilisant la pierre précieuse win32ole Je peux maintenant écrire le code comme ceci:.

require 'win32ole' 
ldap_root = WIN32OLE.connect('LDAP://RootDSE')