2014-07-20 2 views
0

WCF 서비스가있는 MVC4 ASP.net 재무 응용 프로그램이 있습니다. 현재 시나리오가 안전하지 않아서 도움이 필요합니다.ASP.net 재무 응용 프로그램에서 WCF 서비스 보안

현재 시나리오 :

  1. 로그인 양식을 사용하여 사용자 로그인, 그리고 내가 WCF 서비스에 대한 사용자 ID 및 암호가 포함 된 JSON 객체를 사용하여 자신의 로그인 정보 전송 :

    http://example.com:22559/Login

    true 또는 false로 JSON 객체를 반환합니다. 그것이 사실이라면

  2. , 나는 나중에 그것을 사용하는 인증 쿠키를 설정하는 ASP 기능

    FormsAuthentication.SetAuthCookie(loginModel.UserID, loginModel.RememberMe); 
    

    를 사용합니다. MVC의 컨트롤러가 허용되지 않습니다

    http://example.com:22559/AddTransaction

    내가 여기 의존 :

  3. 사용자가 새로운 트랜잭션 내가 트랜잭션을 포함하는 JSON 객체가 암호에없이 자세한 사항 보내 추가

    사용자가 로그인하지 않은 경우 트랜잭션 페이지에 액세스 할 수 있습니다.


자체 확보 WCF 서비스를 만들기 위해 지금해야 할 일은

http://example.com:22559/AddTransaction

입니다 :

문제는 사람이 이제 URL을 사용! 몰래 아웃 및 암호를 입력하지 않고 트랜잭션을 추가 할 수 있습니다 하지만 사용자가 새 트랜잭션을 추가 할 때마다 사용자 이름과 비밀번호를 입력하지 않고이를 수행하는 방법을 알지 못합니다. 따라서 올바른 방법은 무엇입니까?

미리 감사드립니다.

+0

전문가의 도움을 받으십시오. 특히 암호 전문가. 제가 말씀 드리고 싶은 것은 : 이것이 심각한 재정적 인 신청이고 예술적인 방법으로 이것을 해결하지 않으면 심각한 법률 적 문제가 발생할 것입니다. –

+0

Mare, 고맙습니다. 학습용 앱입니다. 그러나 나는 적절한 방법을 모른다. 그리고 나는 유용한 튜토리얼을 찾을 수 없다. 네가 나를 안내 할 수 있으면 해줘. –

+0

이 https://www.owasp.org/index.php/Web_Service_Security_Cheat_Sheet로 시작하는 것이 좋습니다. http://stackoverflow.com/questions/853620/secure-web-services-rest-over- https-vs-soap-ws-security-which-better-better –

답변

0

MVC 4의 컨트롤러는 일반적으로 인증 및 권한 부여에 대한 RoleProvider에 대한 는 MembershipProvider를 사용합니다. 따라서 WCF 서비스가 공급자를 공유 할 수 있습니다.

인증을 위해 WCF 코드에서 아무 것도 할 필요가 없습니다. 권한 부여를 위해 역할 이름이 정의 된 PrincipalPermissionAttribute를 사용하여 각각의 작업 구현 기능 (인터페이스 아님)을 장식하는 것이 편리합니다. 나머지는 config 및 런타임에 완료됩니다.

자세한 내용은 "membershipprovider wcf"를 검색하면 MSDN, CodeProject 및 StackOverflow에서 많은 기사/자습서를 찾을 수 있습니다.

MVC 5에서는 MVC5로 이동하는 경우 Identity 2.0이 기본적으로 사용되며 MembershipProvider 및 RoleProvider는 기본적으로 사용되지 않습니다. 그럼에도 불구하고 WCF 코드는 변경되지 않고 ServiceModel 아래의 일부 요소 만 새로운 사용자 지정 인증 및 권한 부여를 적용해야하며 클라이언트 코드도 구성 변경없이 동일하게 유지되어야합니다.

+0

감사합니다. Andy,하지만 질문이 있습니다. WCF에서 ASP MemberShipProvider를 사용한 경우 ASP에서만 WCF를 사용하도록 제한됩니까? 또는 Android 앱과 같은 다른 것들과 함께 사용할 수도 있습니다. 예를 들면? –

+0

공급자 측은 서버 측 구현이며, Android에서 실행되는 클라이언트를 포함하여 클라이언트는 지식이 없습니다. 즉, 클라이언트 요청에 자격 증명이 포함되어 있으면 WCF, ASP, MVC 또는 .NET을 신경 쓰지 않아야합니다. 예를 들어 바인딩이 http 또는 https 인 경우 전송은 자격 증명이 포함 된 SOAP입니다. SOAP은 플랫폼 중립/독립입니다. – ZZZ

관련 문제