2010-08-02 4 views
2

우리 건축가 중 한 분이 우리 회사의 차세대 애플리케이션을위한 새로운 참조 아키텍처를 구축하고 있습니다. 이 프로토 타입은 ASP.NET MVC 2 웹 응용 프로그램으로 WCF Data Services (Astoria) 위에 위치하고 데이터 액세스 및 객체 매핑에 EntityFramework 4를 사용합니다.WCF Data Services (Astoria)는 LOB (Line of Business) 응용 프로그램에 적합한 선택입니까?

프로토 타입 응용 프로그램은 사용자의 역할을 관리하므로 사용자는 사용자 생성/업데이트/삭제, 응용 프로그램 액세스/기능/사용자 추가 등의 작업을 수행합니다. 보안 관점에서 볼 때 누구도 공격 할 수 없어야합니다 응용 프로그램 외부의 데이터 서비스 및 이러한 작업 중 하나가 수행됩니다.

원래 WCF 데이터 서비스는 OData 구현 및 웹에서의 "개방형"서비스를위한 것이며 해당 비즈니스 계열 응용 프로그램은 여전히 ​​적응성, 보안 및 기타 기능을 위해 기존 WCF 서비스를 사용해야합니다. 내가 여기서 벗어나는거야? WCF 데이터 서비스는 MVC 컨트롤러에서 호출하기에 좋은 선택입니까? 전통적인 WCF 서비스처럼 쉽게 인증 및 보안과 같은 것을 처리 할 수 ​​있습니까?

답변

1

업데이트 :

새로운 질문은 "WCF 데이터 서비스에 대한 액세스를 제한 할 수 있습니까?"기본적으로, 예.


요구 사항, SLA 또는 보안 요구 사항을 게시하지 않았기 때문에이 질문에 답변하기가 어렵습니다. WCF 데이터 서비스는 내 LoB에는 적합하지만 게시하지 않은 모든 종류의 세부 정보에 따라 귀하를 대신 할 수는 없습니다.

두 가지 생각 :

1) WCF 데이터 서비스는 REST 만하고 손이 WCF 서비스를 압연 옵션의 동일한 보안이 없습니다. 크렘린처럼 모든 것을 잠궈 야합니까? WCF 데이터 서비스는 귀하의 차가 아닐 수도 있습니다.

2) WCF 데이터 서비스는 읽기 전용, "SELECT TOP 50 * FROM PRODUCT"유형 서비스 방법에 적합합니다. 일반적으로 앱의 각 엔티티 유형에 대해 두 가지 WCF Service 메소드를 작성해야합니다. WCF 데이터 서비스를 정상적인 WCF 서비스 위에 활용함으로써 동일한 읽기 방법을 반복해서 쓰는 데 많은 시간을 절약 할 수 있습니다.

+0

아키텍처를 시연하는 것은 프로토 타입 일 뿐이므로이 특정 응용 프로그램과 관련된 까다로운 요구 사항은 없습니다. 그러나 프로토 타입은 사용자의 역할을 관리하므로 사용자는 사용자 생성/업데이트/삭제, 사용자에게 응용 프로그램 액세스/기능/역할 추가 등을 수행합니다. 따라서 보안 관점에서 볼 때 아무도 데이터 서비스를 공격 할 수 없어야합니다 응용 프로그램 외부에서 이러한 작업 중 하나가 수행됩니다. –

+2

WCF 데이터 서비스 자체는 보안 솔루션을 제공하지 않습니다. 그렇게하기 위해 다른 레이어를 사용합니다 (후크를 사용하면이 작업을 더 쉽게 수행 할 수 있습니다). 복잡한 주제 인 - 전송 수준 보안 - HTTP를 사용하므로 SSL이 잘 작동합니다. - 승인 - DS를 기반으로 자신을 구현할 수 있으며 다시 HTTP를 사용하므로 HTTP로 작동하는 거의 모든 인증 체계가 작동합니다. - 일반 WCF 서비스로도 임의의 사용자가 귀하의 신청. WCF 데이터 서비스와 마찬가지로 WCF 서비스를 보안해야합니다. –

+0

감사합니다. 훌륭한 통찰력입니다. WCF Data Services에서 기간 업무 (LOB) 응용 프로그램에 전력을 공급하는 것이 허용되는지 여부는 대부분 보안에 대한 질문을 제한하지는 않습니다. 대답은 '예'입니다. –

1

OData는 데이터 액세스가 아닌 데이터 액세스를위한 프로토콜입니다. 모든 일반 SQL 데이터베이스에서와 같이 특정 역할이나 계정에만 데이터의 특정 부분에 대한 액세스를 제한하는 표준 솔루션은 없습니다. 대부분의 보안 조치는 '기본적으로 보안'대신 '모든 것이 표시되고 특정 사례에 대해 달리 지정하지 않으면 모든 작업이 허용됩니다.'를 기반으로합니다.

OData를 사용하여 업무용 응용 프로그램 내에서 회사 데이터에 액세스하려는 경우 큰 장애물입니다. Ajax 호출을 사용하려는 경우 OData는 인터넷에서 볼 수 있어야하며 모든 종류의 공격에 취약 해집니다. OData는 인터넷에서 이미 사용할 수있는 공개 데이터를위한 훌륭한 프로토콜 인 것으로 보이지만, 현재까지는 OData 공급자가 역할 기반의 사용 권한을 구현하지 않습니다.

표준 WCF 데이터 서비스를 이러한 종류의 사용 권한으로 확장 할 수는 있지만 이는 가격과 함께 제공됩니다. 경험에 비추어 볼 때 보안을 나중에 추가 할 수는 없다는 것을 알고 있습니다. 이는 모든 응용 프로그램 프레임 워크 및 데이터 저장 장치의 필수적인 부분이어야합니다. 최선을 희망 할 수도 있지만, 항상 최악의 경우를 계획해야하며 개인이나 회사의 중요한 데이터가 포함 된 보안되지 않은 OData 소스를 인터넷에서 찾고있는 것은 그리 오래되지 않습니다.

관련 문제