2013-01-04 2 views
0

편집 - 나는이 문제를 더 잘 초점을 맞추기 위해 수정했습니다. NetworkCredentials 개체를 WCF 서비스에 전달하는 중

상호 작용하는 데 필요한 구성 요소

은 다음과 같습니다 ASP.NET 웹 사이트 < -> WCF 서비스 < -> 3 자 웹 서비스

제 3 자 웹 서비스는 contstruction 동안 네트워크 자격 증명을 지정을 통해 Windows 인증을 필요로 프록시의 예 :

내 지식에 따라 WCF 서비스가 사용자를 타사 웹 서비스로 가장 할 수있는 유일한 방법입니다. Windows 인증 (네트워크 자격 증명을 통해)은 유일하게 지원되는 가장 (impersonation) 수단이며 타사 웹 서비스와 WCF 서비스간에 일종의 신뢰를 설정할 수는 없습니다.

웹 사이트는 개별 사용자 계정이 아닌 서비스 계정으로 실행됩니다. 사용자가 웹 사이트에 로그인하면 ActiveDirectory를 사용하여 유효성을 검사하지만 AD를 사용하여 "유효한 이름과 암호 조합입니다."라고 말합니다.

내가 알고있는 것을 웹 사이트 (사용자 이름, 암호)에서 가져 와서 WCF 서비스의 네트워크 자격 증명으로 바꾸는 방법이 필요합니다. 내가 읽은 모두는 사용자 이름/패스워드 또는 심지어 네트워크 신임 객체 (심지어 가능하다면)를 전달하는 것은 큰 보안 위험이며 실제로 나쁜 습관이라고 말합니다.

웹 사이트가 사용자 계정으로 실행되지 않을 때 WCF 서비스에서 웹 사이트 사용자의 Windows ID를 사용 가능하게하는 데 사용할 수있는 옵션/기술에는 어떤 것이 있습니까?

어떤 통찰력에도 감사드립니다.

P. 나는이 게시물을 찾았습니다 : How do you pass user credentials from one process to another for Impersonation in .NET 1.1? 나는 내 질문을 게시하고 그 내용을 소비하고 있습니다.

답변

0

나는 다른 질문에 대한 답변이 부족하다는 것을 미래의 독자들에게 확인하기 위해 내 자신의 질문에 대한 답변을 게시하고 있습니다.

내 문제의 핵심은 익명 프로세스 (시스템 계정에서 실행되는 웹 사이트 세션)가 Microsoft/Active Directory에서 지원되지 않는 방식으로받는 사람 (WCF 서비스)을 식별하려고한다는 것입니다. 도저히 안 좋은 보안 전략가). 통신 프로토콜의 일부로 대신 통신 내용 내에서 ID를 전달하려고했습니다. 네트워크 및 시스템 보안에 관한 나의 충돌 과정에서 이것은 매우 위험한 전략이 될 것입니다.

즉, 한쪽 끝은 Active Directory (타사 소프트웨어)에 인증을 요구하고 다른 쪽 끝은 익명 성 (웹 사이트 세션)이 필요합니다.

앞으로 우리는 Active Directory 이름/암호를 가능한 한 안전하게 전달할 수 있도록 통신 주위에 자체 보안을 구축하거나 타사 공급 업체가 인증 요구 사항을 완화하도록 설득 할 수있는 두 가지 해결책을 제시합니다 (예 : 티켓팅 에이전트).