2012-02-08 11 views
7

Estoy intentando utilizar Node.js para llamar a los servicios de Exchange SOAP EWS. He creado un simple cliente HTTP de este modo:Node.js con MS Exchange EWS

var https = require('https'); 

var username = 'user'; 
var password = 'password'; 
var auth = 'NTLM ' + new Buffer(username + ":" + password).toString('base64'); 

var options = { 
    host : 'exchangehost', 
    port : 443, 
    method : 'post', 
    path : '/Exchange.asmx', 
    headers : { Authorization : auth } 
}; 

var request = https.request(options, function(response) { 
    console.log('Status: ' + response.statusCode); 
}; 

request.write('<soapenv:Envelope ...></soapenv:Envelope>'); 
request.end(); 

he recibido un código de estado 401, sospecho, porque no estoy haciendo los tres pasos necesarios para la autenticación NTLM (http://www.innovation.ch/personal/ronald/ntlm.html). ¿Alguien sabe de un módulo Node.js para comunicarse directamente con Exchange EWS o para autenticar usando NTLM, o voy a tener que implementar ese protocolo para Node.js? Cualquier ayuda es muy apreciada.

+0

¿Alguna vez resolvió el problema? –

+1

Desafortunadamente no lo hice. Decidimos ir con una autenticación de Kerberos, en cambio, en parte debido a los problemas que estábamos teniendo aquí. – AngryMonkey

Respuesta

1

he utilizado con éxito node-ews para comunicarse con sistemas de alerta temprana.

node-ews utiliza httpntlm internamente para autenticación NTLM.

Personalmente, creo que node-ews es su mejor opción, ya que prácticamente ya está implementado todo lo que necesita para interactuar con EWS.

+0

Hola, Aaron, ¿has logrado utilizar la función GetRoom? Estoy tratando de obtener los calendarios de mi sala de obras para ver cuáles están disponibles –

+0

@RasmusBidstrup. Sin embargo, no tengo que dar algunos pasos. 1) tener un objeto JSON bien formateado para la solicitud, ver [número 27] (https://github.com/nmarus/node-ews/issues/27) en la página del proyecto 'node-ews'. 2) asegúrese de que los parámetros que está utilizando sean válidos (como la dirección de correo electrónico correcta). Siéntase libre de [crear un problema] (https://github.com/nmarus/node-ews/issues/new) y trataré de ayudar tanto como pueda. –

+0

Gracias :-) Im un poco confundido sobre el nombre de sistema de alerta temprana están utilizando, ¿Es cierto que sus citas/reuniones para una habitación (por correo electrónico o nombre) i necesidad de encontrar, y no un calendario? Haré un caso tratando de explicar lo que hice y dónde estoy atascado. –

0

he encontrado este un módulo Node.js que soporta la comunicación con Exchange 2010, sin embargo, todavía estoy tratando de averiguar cómo usarlo personalmente, la documentación es la luz. https://npmjs.org/package/exchanger

+0

Gracias, buscando más de un enfoque directo sin el módulo. Lo verificaré y veré si el módulo también funciona. – AngryMonkey

+0

Intenté usar 'exchanger' pero por el momento hay un error con' node-expat' que me impidió realizar más pruebas. 'Error: No se puede encontrar el módulo '../ build/Release/node_expat.node'' –

1

¿Has probado el módulo httpntlm? https://github.com/SamDecrock/node-http-ntlm

+0

Esto parece prometedor y simple. No estoy tratando de hacer esto más, pero si alguien puede verificar que funciona, lo marcaré como aceptado, ya que parece ser un conector NTLM de propósito más general. – AngryMonkey

1

¿Has probado el módulo ews-javascript-api npm, tiene todas las características que estás buscando + autenticación ntlm muy simple usando el módulo ews-javascript-api-auth. NTLMv2 también es compatible.

he añadido esto como respuesta ya que proporcionaría la respuesta completa a la pregunta del título (integración). Estos son enlaces de Github, la pregunta es poco genérica, por lo que las muestras proporcionadas en el archivo lith de github deberían funcionar.

[descargo de responsabilidad - Soy el autor]

Cuestiones relacionadas