2013-10-24 4 views
0

현재 WCF 웹 서비스를 구축 중이며 HTTPS를 통한 기본 인증을 사용하고 사용자가 인증을 위해 LDAP 그룹에 있는지 여부를 확인해야합니다.HTTPS를 통한 WCF LDAP를 통한 기본 인증

인터넷에서 검색 한 결과 IIS에서 Active Directory 인증을 사용할 수 없으며 고유 한 사용자 지정 기본 인증 모듈 또는 UserNamePasswordValidator를 사용해야한다고 말합니다. Link I used for coding Custom Authentication Module SSL을 사용하는 로컬 IIS에서 WCF를 호스팅했으며 이제는 https로 실행됩니다.

질문은 내가 이것을 구현하면 Authorization 헤더를 수동으로 추가해야한다는 것입니다. 브라우저에서 서비스를 열 때 표시되는 기본 인증 대화 상자에 입력 된 사용자 이름 또는 암호를 얻을 수있는 다른 방법이 있습니까?

또는 위의 보안을 구현하기 위해 수행해야 할 작업에 대해 조언을 제공해 주시겠습니까? 나는 무기력하고 이것에 당신의 도움을 요청하고 있습니다 !!!!. 미리 감사드립니다.

배경 : UserNamePasswordValidator도 시도했지만 응용 프로그램 수준에서 작업 중이므로 wsdl 파일 (자격 증명을 제공하지 않고 웹 서비스의 메타 데이터)을 볼 수 있었으므로 사용자 지정 기본 인증 기준 치수.

사용자 지정 기본 인증 모듈을 사용하면 브라우저에서 svc를 열기 전에 자격 증명을 묻는 중입니다. 그래서 이것이 가장 좋은 스위트라고 생각합니다. 귀중한 제안을하십시오.

답변

0

기본 인증은 401.0 상태 코드를 반환하는 웹 서버와 'Basic real = "xxx"값을 갖는 WWW-Authenticate 응답 헤더에서 작동합니다. 여기서 영역은 단순히 사용자에게 표시되는 정보로, 인증을 요구합니다. 브라우저가 이러한 유형의 응답을 받으면 사용자에게 사용자 이름/암호를 묻는 대화 상자를 표시합니다. 그런 다음 브라우저는 원래 요청 된 URL을 다시 제출하지만 값이 사용자 이름과 암호가 포함 된 base64로 인코딩 된 문자열 인 '인증'헤더를 포함합니다.

IIS 용 사용자 지정 인증 모듈은 기본적으로이 상호 작용을 처리해야합니다. 들어오는 각 요청에 대해 'Authorization'헤더가 있는지 확인해야하며, 그렇다면 사용자 이름/비밀번호를 추출하고 좋아하는 방식으로 인증 한 다음 성공적으로 Context.User를 설정합니다. 'Authorization'헤더가 없거나 사용자 이름/비밀번호가 유효하지 않은 경우 모듈은 응답 코드를 401.0으로 설정하고 WWW-Authenticate 헤더가 있는지 확인해야합니다 (위에서 설명한대로).

모듈을 사용하려면 IIS의 다른 모든 인증 모듈을 사용하지 않도록 설정해야합니다 (익명 인증 모듈을 사용하도록 설정해야하는 경우가 있지만). IIS에서 캐싱으로 인해 모든 요청이 인증 모듈로 전달되지 않는 경우 놀라지 마십시오.