ruby on rails - Servicios web de Ruby/Rails y Sharepoint
ruby-on-rails web-services (4)
Estoy intentando consumir los servicios web Sharepoint con ruby. Básicamente, renuncié a tratar de autenticarme con NTLM y cambié temporalmente el servidor Sharepoint para usar la autenticación básica. He tenido éxito al obtener un WSDL utilizando soap4r, pero todavía no puedo autenticarme al intentar utilizar una llamada al servicio web real.
¿Alguien ha tenido alguna experiencia con Ruby y Sharepoint para hablar?
¿Cómo cambiaste el servidor SP para usar Basic Auth? ¿Simplemente configuró el sitio a través de IIS, o lo hizo a través de SP Central Admin?
Si está utilizando SP 2007 / MOSS, debe cambiarlo a través de Central Admin; si es 2003, debe hacerlo a través de IIS.
¿Qué error obtienes cuando falla la solicitud?
Puede que esto no ayude, pero micorosoft acaba de lanzar el kit de herramientas para Sharepoint y WSRP, http://blogs.msdn.com/sharepoint/archive/2008/12/15/announcing-the-wsrp-toolkit-for-sharepoint.aspx , ya que RoR es compatible con ese estándar que puede proporcionar un método más fácil de obtener los datos.
NTLM no es compatible con soap4r de alguna manera, aunque httpclient sí lo admite.
Cuando habilitar la autenticación básica no es una opción, podría considerar usar kerberos, es decir, negociar el método de autenticación. Habilitar esto en sharepoint es un poco complicado, pero básicamente se trata de hacer lo siguiente en la línea de comando del servidor:
cscript adsutil.vbs set w3svc/1/NTAuthenticationProviders "Negotiate,NTLM"
Puede que tenga algunas concertaciones parecidas, mira esta publicación en el foro para más información . Finalmente, debe establecer la autenticación en soap4r con auth = en lugar de basic_auth = creo.
Soy un principiante total. Pero después de mucho tiempo y con la ayuda de más codificadores de experiencia, pude obtener Ruby trabajando con Sharepoint 2010. El código a continuación requiere la gema ''ntlm / mechanize''.
Pude descargar el sharepoint xml de las listas especificadas (a continuación) utilizando List GUID y List View GUID.
Editar (23 de mayo de 2011). Debería haber señalado que este código requiere la gema ruby-ntlm. Aquí hay un enlace decente que debería ayudar. Esto definitivamente funciona
http://rubydoc.info/gems/ruby-ntlm/0.0.1/file/README.markdown
agent = Mechanize.new
agent.auth(''domain//USERNAME'', ''PASSWORD'')
page = agent.get(''http://URL/DIRECTORY/SITE/LIST/_vti_bin/owssvr.dll?Cmd=Display&List={LIST_GUID}&View={VIEW_GUID}&XMLDATA=TRUE'')