2012-04-29 4 views
2

저는 asp.net mvc webapi 기술을 매우 잘 알고 있습니다.mvc4 webapi 대 컨트롤러 보안 (인증 및 권한 부여)

시나리오 : 기업용 MVC 웹 애플리케이션을 설계하고 있습니다. MVC 컨트롤러가 보안 속성을 통해 권한 부여 및 인증을 가질 수 있다는 것을 알고 있습니다.

웹 응용 프로그램은 가정용 물 소비에 대한 다양한 경향을 보여줍니다. 비전은 휴대 기기, 태블릿 (사용자 이름)을 통해이 데이터에 액세스 할 수 있도록하는 것입니다.

WebAPI가 컨트롤러보다 더 좋기 때문에 동일한 API를 여러 장치에서 사용할 수 있습니다.

질문 : 내가 webapi와 가진 질문은 보안입니다. 사용자가 컨트롤러에 로그인하면 웹 응용 프로그램에서 사용자의 보안 프로필 등을 알 수 있습니다. 장치의 경우 보안은 어떻게 작동합니까? 모든 클라이언트가 자격 증명을 통과해야하며 서버에서 보안이 처리되는 방법입니까? 우리는 하나의 서비스 계정을 만들어 각 고객에게 제공해야합니까?

잘 설명해 주셔서 감사합니다.

+0

api 또는 웹 앱을 만드시겠습니까? 당신은 MVC 웹 응용 프로그램을 만드는 것이라고 말합니다. 그렇다면 모바일 장치에서 웹 사이트를 볼 수 있도록 웹 사이트를 디자인하십시오. 보안 및 권한 부여는 문제가되지 않습니다. – c0deNinja

+0

감사합니다. @ c0deNinja, 예. 웹 응용 프로그램을 만들고 있습니다. 그러나 WebAPI를 호출하기 위해 JQuery를 사용하는 것은 괜찮습니다. –

+0

질문이 있으십니까? Myagdi는 다른 장치보기의 경우 보안에 대해 생각하는 것이 실제로 문제가 아니라고 말했다. 그리고 속성 만이 WebApi의 보안을 관리하는 것이 아닙니다. DelegatingHandler가 IOC를 사용하는 경향이 있습니다. –

답변

1

MVC 보안은 표준 ASP.Net Authentication/Authorization의 오버레이입니다. AuthorizeAttribute은이 자원에 액세스하려면 사용자를 인증해야 함을 나타냅니다. IsAuthenticated 및 역할에 대해 User IPrincipal을 봅니다.

그러면 ASP.NET 인증 솔루션이됩니다.

사용자 인증 - 첫 번째 기사에서 언급 한 방법 중 하나를 사용하여 직접 인증.

장치 인증 - 일반적인 답변이 없으므로 실제로 장치를 인증하는 진정한 안전한 방법은 없습니다. URL 또는 HTTP 헤더에 고유 데이터 (장치 직렬)를 전달하여 장치를 식별 할 수 있습니다.