2012-01-26 2 views
0

데이터 폴더와 통신하기 위해 ASP.NET 사이트가 호스팅되는 동일한 IIS에서 호스팅되는 WCF 서비스에 액세스하는 ASP.NET 웹 응용 프로그램을 개발 중입니다.ASP.NET 응용 프로그램에서 WCF 서비스 인증

ASP.NET 사이트는 SQL 데이터베이스에 저장된 사용자 이름과 암호에 대해 사용자를 인증하여 양식 인증을 처리합니다.

WCF 서비스가 인터넷에서 호스팅되므로 WCF 서비스에 대한 무단 액세스 (예 : ASP.NET 사이트에서 성공적으로 인증 된 사용자 만 WCF 서비스에 액세스 할 수 있도록 허용해야 함)를 차단하고 싶습니다.

권한이없는 사용자가 http://test.com/service/userservice.svc과 같은 WCF 서비스에 직접 액세스하거나 서비스 참조를 추가하려고하면 예외가 발생합니다.

어떻게 달성 할 수 있습니까?

답변

0

프로덕션에서는 메타 데이터 교환을 완전히 해제 할 수 있습니다 (ASP 코드가 프록시라고 생각하지 않는 한 프록시를 생성하지 않는 한).

당신은 1. 2. 제거 메타 데이터 엔드 포인트는 두 번째 질문 - 로 돌아 오는

이에 따라 달라집니다 서비스 -에 web.cong /의 app.config에서 다음 설정에 의해 메타 데이터 노출을 해제 할 수 있습니다 WCF 서비스에서 어떤 바인딩을 사용하고 있습니까? 외부 세계에 서비스를 노출시키지 않거나 노출하려는 의도가 없다면 일반적으로 net TCP 바인딩이 선호됩니다 (IIS 7에서 tcp 기반 서비스를 호스팅 할 수 있습니다).

TCP 기반 서비스라는 점을 감안할 때 끝점은 포트 80에서 어떤 방식 으로든 노출되지 않으므로 모든 클라이언트가 서비스를 직접 호출 할 수 없습니다. 회사 방화벽은 해당 IP에서 포트 80 만 허용한다고 가정합니다. Windows 인증을 추가하여 서비스의 보안을 강화할 수 있습니다.

여기서는 몇 가지 가정을 했으므로 자유롭게 되돌릴 수 있습니다.

HTH

+0

ASP.NET 웹 사이트와 WCF 서비스는 동일한 IIS에서 별도로 호스팅됩니다. HTTPS를 통해 통신 할 수 있도록 SSL 인증서가 서버에 설치되었습니다. ASP.NET 웹 사이트는 양식 인증에서 작동합니다. WCF 서비스는 IIS에서 사용되며 인터넷에서 사용할 수 있으므로 무단 사용자가이 서비스를 사용하지 못하도록하고 싶습니다. 그래서, 어떻게 우리가 이것을 막을 수 있습니까? 우리는 ASP.NET 웹 사이트에서 인증 된 사용자 만 WCF 서비스에 액세스하기를 원합니다. – Anand

관련 문제