2012-02-08 15 views
7

Node.jsを使用してSOAP Exchange EWSサービスを呼び出そうとしています。私はNTLM認証(http://www.innovation.ch/personal/ronald/ntlm.html)のために関係する3つの手順を致しておりませんので、私は疑う、ステータスコード401を受け取るNode.jsと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(); 

:私はそうのようなシンプルなHTTPクライアントを作成しました。 Exchange EWSと直接通信するための、またはNTLMを使用して認証するためのNode.jsモジュールを知っている人、またはNode.jsのプロトコルを自分で実装する必要がありますか?どんな支援も大歓迎です。

+0

問題を解決しましたか? –

+1

残念ながら私はしませんでした。私たちはここで問題を抱えていたために、代わりにKerberos認証を使用することに決めました。 – AngryMonkey

答えて

1

node-ews私はEWSとの通信に成功しました。

node-ewsは、内部でNTLM認証にhttpntlmを使用します。

個人的には、node-ewsが、あなたがEWSと対話するために必要なものすべてを既に実装しているので、あなたの最善の策だと思います。

+0

こんにちはAaron、GetRoom関数を使用する機会がありましたか?私は私の仕事の部屋のカレンダーを入手しようとしています –

+0

@RasmusBidstrup私はしていない、しかし、あなたが右に取得する必要がありますいくつかの手順があります。 1)要求のための整形式JSONオブジェクトを持っています(node-ewsプロジェクトページの[issue#27](https://github.com/nmarus/node-ews/issues/27)参照)。 2)使用しているパラメータが正しいことを確認してください(正しいメールアドレスなど)。お気軽に[問題を作成する](https://github.com/nmarus/node-ews/issues/new)と私は可能な限り手伝っていきます。 –

+0

ありがとう:-)私は少しEWSが使用している名前について混乱しています、それは、その予定/会議室(電子メールまたは名前で)私が見つける必要があり、カレンダーではないことが正しいですか? 私は何をしたのか、何処にいるのか説明しようとします。 –

0

私はExchange 2010との通信をサポートするNode.jsモジュールを1つ見つけましたが、私はそれを個人的に使用する方法を理解しようとしていますが、ドキュメントは軽いです。 https://npmjs.org/package/exchanger

+0

ありがとう、モジュールなしでもっと直接的なアプローチを探しています。私はそれをチェックして、モジュールがうまく動作するかどうかを見ていきます。 – AngryMonkey

+0

私は 'exchanger'を使用しようとしましたが、現時点では、' node-expat'にエラーがあり、それでさらなるテストができなくなりました。 'エラー:モジュールを見つけることができません../build/ Release/node_expat.node'' –

1

httpntlmモジュールを試しましたか? https://github.com/SamDecrock/node-http-ntlm

+0

これは有望で簡単です。私はもうこれをやろうとはしていませんが、誰かがそれが動作することを確認できれば、より一般的な目的のNTLMコネクタのように見えるので、それを受け入れたものとしてマークします。 – AngryMonkey

1

ews-javascript-api npmモジュールを試したことがありますか?それはあなたが見ているすべての機能+ ews-javascript-api-authモジュールを使った非常に簡単なntlm認証です。 NTLMv2もサポートされています。

質問タイトル(統合)の完全な答えを提供するので、これを答えとして追加しました。これらはgithubリンクです。質問は少し一般的ですので、github readmeで提供されているサンプルがうまくいくはずです。

[免責事項 - 私は著者です。]

関連する問題