2012-07-07 16 views
9

問題 私はNode.jsでWindows認証を使用できるようにします。Web認証によるWindows認証C++/Node.js

私はIISがASP.NETのWindows認証を処理することを理解していますが、私が把握できないのは、現在のクライアントWindowsユーザー名からnode.jsを取得する方法です。私はそれがIIS経由で実行されていないことを知っています(実際にはIISNodeルートを下りたくない)。

C++ライブラリ/サービスを作成する必要がある場合でも、Node.js経由でクライアントのWindowsユーザ名を取得する方法が必要です。

最初の考えでは、Windows認証を使用するASP.NET内でWebサービスをセットアップして、Web要求を使用してそのユーザーを取得できるようになったということでしたが、これはあまりにも素朴です。

私はユーザにユーザ名とパスワードを尋ねることは望ましくありません。

私が見ることができるアイデア、思考、または場所はありますか? これはちょうど不可能ですか?

注:これは閉じたイントラネット内にあり、Windows認証はActive DirectoryとともにASP.NETアプリケーション内で使用されます。

+1

あなたが探していると思うものはhttp://en.wikipedia.org/wiki/Integrated_Windows_AuthenticationとNTLM認証です。 –

答えて

1

アプローチ

私は要件の一部を見逃していない限り、あなたは

  • クライアントのブラウザがするように、あなたのNode.jsアプリケーションへの要求を中継するようにIIS WebサイトをセットアップすることができるはずですIISサイトに対して認証する。
  • IISサイトは認証された要求をNode.jsアプリに転送し、クライアントに返します。

匿名アクセスを無効にし、IISサイトに対してのみIWAを使用してください。

C#またはVBでASP.NETで要求をリレーする方法の例については、Relaying a request in ASP.NETを参照してください。あなたもヘッダやGET/POSTのパラメータを持つユーザ名を渡す必要があります:

Response.AppendHeader("CustomUserNameHeader", Page.User.Identity.Name); 

のNode.jsアプリがログインしているユーザーの名前を知っている必要がある前提

  • クライアントコンピュータにインストールします。
  • Node.jsアプリケーションをIISサイトからのみアクセス可能にすることができます。そうしないと、ソリューションは完全に安全ではありません。
+0

いいね、私はこれを見て、それを行ってみましょう。 – mrdnk