2012-07-07 3 views
9

문제 Node.js에서 Windows 인증을 사용할 수 있기를 원합니다.웹 요청을 통한 Windows 인증 C++/Node.js

IIS가 ASP.NET에서 Windows 인증을 처리한다는 것을 알고 있지만, 알아낼 수없는 것은 node.js.에서 현재 클라이언트 Windows 사용자 이름을 얻는 방법입니다. IIS를 통해 실행되지 않고 실제로 IISNode 라우트를 사용하고 싶지는 않습니다.

C++ 라이브러리/서비스를 작성해야하는 경우에도 Node.js를 통해 클라이언트의 Windows 사용자 이름을 가져 오는 방법이 있어야합니다.

초기 생각은 ASP.NET에서 Windows 인증을 사용하는 웹 서비스를 설정할 수 있었고 웹 요청을 사용하여 해당 사용자를 얻을 수있었습니다.하지만 이것은 너무 순진합니다!

나는 사용자 이름과 암호를 묻지 않고 있습니다. 요점을 놓치기 때문에.

내가 볼 수있는 아이디어, 생각 또는 장소가 있습니까? 아니면 그냥 가능하지 않습니까?

참고 : 이는 폐쇄 된 인트라넷에 있으며 Windows 인증은 Active Directory와 함께 ASP.NET 응용 프로그램 내에서 사용됩니다. 내가 요구 사항의 일부를 그리워하지 않는 한

+1

내가 생각하는 것은 http://en.wikipedia.org/wiki/Integrated_Windows_Authentication 및 NTLM 인증입니다. –

답변

1

접근하는 것은

, 당신은 설정하여 Node.js를 응용 프로그램에 요청을 릴레이 할 수있는 IIS 웹 사이트에 할 수 있어야한다 그래서

  • 클라이언트 브라우저 것 당신의 IIS 사이트에 대해 인증;
  • IIS 사이트는 인증 된 요청을 Node.js 앱으로 전달하고 다시 클라이언트로 전달합니다.

익명 액세스를 사용하지 않도록 설정하고 IIS 사이트에만 IWA를 사용해야합니다.

ASP.NET에서 C# 또는 VB로 요청을 중계하는 방법에 대한 몇 가지 예는 Relaying a request in ASP.NET을 참조하십시오.는

  • Node.js를 응용 프로그램에 로그인 한 사용자의 이름을 알 필요가

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

    가정 : 당신은 또한 헤더 또는 GET/POST 매개 변수를 사용하여 사용자 이름을 전달해야합니다 클라이언트 컴퓨터.

  • Node.js 앱을 IIS 사이트에서만 액세스 가능하게 만들 수 있습니다. 그렇지 않으면 솔루션이 완전히 안전하지 않습니다.
+0

좋은 소리지만, 이것 좀 봐야 겠어. – mrdnk