2008-09-29 5 views
6

나는 파이어 폭스가 자동 인증을 위해 NTLM 데이터를 SharePoint 사이트에 전송하도록 허용 할 수 있다고 생각하며, IIS로 수행 할 수 있다고 생각합니다.NTLM Active Directory 사용자 데이터를 Rails가없는 레일스로 가져 오기 IIS

내부 레일 사이트에서도 동일한 작업을 수행하고 싶습니다.

누군가는 Apache/mongrel 설정을 통해 NTLM 유형 사용자 정보를 인증 할 수있는 방법을 알고 있습니다 (물론 Active Directory 도메인의 Windows 상자에서 이미 실행 중임).

답변

2

파이어 폭스와 IE가 NTLM 인증 정보를 다시 보내려면 어떤 HTTP 헤더를 보내야하는지, 이미 서버 측에서 처리해야 할 필요가 있다고 가정합니다.

루비의 win32 libraries 중 일부를 사용하여 NTLM을 처리하는 기본 Windows 인증 기능에 액세스 할 수 있습니다.

나는 최소한의 저항 경로가 Win32OLE 루비 라이브러리를 사용하여 인증을 수행 할 수있는 COM 구성 요소가 있는지 확인하는 것이 좋습니다.

COM 구성 요소가 없으면 네이티브 win32 메서드를 호출 할 수있는 다른 라이브러리 중 하나에서 뭔가를 찾을 수 있습니다.

찾을 수 없다면 루비 C 확장자를 써야합니다. 나는 리눅스에서이 일을 해왔고, 루비를 확장하는 것은 꽤 쉽지만, 마이크로 소프트 인증 API가 약간 고통 스럽다. 당신은 또한 인증 된 사용자의 사용자 이름과 응용 프로그램에 이후 헤더를 통과해야 Apache ntlm module을 사용할 수

2

:-) 바른 길에 시작 얻을

희망. 이 모듈은 약간 오래된 것으로 보이지만 사용자의 요구에 맞는 다른 모듈을 제안합니다.

10

Linux에서 Apache 용으로 tutorial on how to install patched mod_ntlm module을 만들고 NTLM 인증 사용자 이름을 Rails에 전달하고 그로부터 Rails 세션을 만드는 방법을 만들었습니다. 결과적으로 Rails 애플리케이션을 실행하기 위해 Windows 서버가 필요하지 않습니다.

Firefox에서 자동 NTLM 인증을 사용하는 방법을 찾을 수도 있습니다. 위치 입력란에 "about : config"를 입력하고 "network.automatic-ntlm-auth.trusted-uris"를 검색하십시오. 여기서 자동 NTLM 인증을 사용하려는 서버를 입력 할 수 있습니다.

+0

이것은 대단합니다. –

4

누군가가이 문제를 우연히 발견하면 추가 정보.

나는 꽤 간단해야한다고 생각했던 것을 해보고 싶다. Mongrel/Windows (실제로는 InstantRails)에서 실행중인 Rails 응용 프로그램에서 NTLM을 사용하여 사용자 윈도우 사용자 이름을 추출한다. 기본 코드를 작성하여 다양한 핸드 쉐이킹 작업 (위대한 NTLMRuby 라이브러리 (http://rubyforge.org/projects/rubyntlm/) 사용)을 관리하고 Firefox에서 훌륭하게 작동하도록 만들었으므로 IE가 작동하지 않는 것을 다소 좌절 시켰습니다.

잡종은 type1/2/3 메시지 교환 중 keep-alives를 지원하지 않습니다. (최소한 기본적으로 해킹/수정이 있다고 생각합니다.) IE가 요구하고 Firefox는 필요없는 것입니다.

원격 NTLM 서비스 (예 : Sharepoint 또는 다른 웹 사이트)에 대해 Windows에서 실행중인 Rails 서버를 인증하는 것은 상당히 간단하지만 Mongrel과 달리 Windows에서 실행되는 Rails 서버에 대해 IE 브라우저를 인증합니다. IIS는 FastCGI가있는 기본 Apache 일 수있는 옵션 일 수 있습니다. 전자는 조금 어색하고 후자는 잡종만큼 빠르지 않을 것 같다.

0

체크 아웃 Waffle을 확인하십시오. Win32 API를 사용하여 Windows에서 Java 서버에 SSO를 제공합니다. 구현 된 필터 (servlet, tomcat valve, spring-security)가 많이 있습니다.

관련 문제