현재 상황은 : 우리는있는 wsHttpBinding 또는 netTcpBinding를 통해 조직 전체의 여러 응용 프로그램에서 사용 3.5 WCF 서비스, .NET 생산이 . 사용자 인증은 Windows 통합 보안을 사용하여 전송 수준에서 수행됩니다. 이 서비스는 Foo(string parameter)
메서드를 가지고 있으며, 해당 AD 그룹의 멤버 만 호출 할 수 있습니다. 문자열 매개 변수는 필수입니다. WCF 서비스 메서드의 호출 어셈블리를 안전하게 인증하려면 어떻게합니까? 다음과 같이
새로운 클라이언트 응용 프로그램
문자열 매개 변수의 필요성을 제거 플레이 (.NET 3.5, C# 콘솔 응용 프로그램)에왔다. 그러나이 특정 응용 프로그램의 호출 만 문자열 매개 변수를 생략 할 수 있어야합니다. AD 그룹 제한이 여전히 적용되기 때문에 클라이언트 응용 프로그램 호출자의 ID는 서버에서 계속 인식해야합니다 (클라이언트 측에서 가장을 배제 함). 나는 pass on the "evidence" of the calling (strong-named) assembly in the message headers 할 수있는 방법을 찾았지만 "증거"가 쉽게 스푸핑 할 수 있기 때문에이 방법은 분명 안전하지 않습니다. 또한 CAS (코드 액세스 보안)가 가능한 해결책 인 것처럼 보이지만이 특정 시나리오에서 CAS를 사용하는 방법을 파악할 수 없습니다.사람이 문제를 해결하는 방법에 대한 제안이 있습니까?
편집 : 나는 another thread on this subject 발견; 분명히 안전한 방식으로 구현하는 것은 단순히 불가능하다는 결론을 내 렸습니다.
또한 클라이언트 응용 프로그램의 디 컴파일 코드가 해커를 제공 할 것을 언급해야한다 인증 절차를 모방하는 정보 – Tim