다음을 통해 공유


ASP.NET Web API 양식 인증

작성자: Mike Wasson

양식 인증은 HTML 양식을 사용하여 사용자의 자격 증명을 서버로 보냅니다. 인터넷 표준이 아닙니다. 양식 인증은 사용자가 HTML 양식과 상호 작용할 수 있도록 웹 애플리케이션에서 호출되는 웹 API에만 적합합니다.

장점 단점
  • 구현하기 쉬운: 기본 제공 ASP.NET.
  • ASP.NET 멤버 자격 공급자를 사용하여 사용자 계정을 쉽게 관리할 수 있습니다.
  • 표준 HTTP 인증 메커니즘이 아닙니다. 는 표준 권한 부여 헤더 대신 HTTP 쿠키를 사용합니다. 일부 사용자는 쿠키를 사용하지 않도록 설정합니다.
  • 비브로우저 클라이언트에서 사용하기 어렵습니다. 로그인하려면 브라우저가 필요합니다.
  • 사용자 자격 증명은 요청에 일반 텍스트로 전송됩니다.
  • CSRF(교차 사이트 요청 위조)에 취약함 에는 CSRF 방지 측정값이 필요합니다.

간단히 ASP.NET 양식 인증은 다음과 같이 작동합니다.

  1. 클라이언트는 인증이 필요한 리소스를 요청합니다.
  2. 사용자가 인증되지 않은 경우 서버는 HTTP 302(발견됨)를 반환하고 로그인 페이지로 리디렉션합니다.
  3. 사용자가 자격 증명을 입력하고 양식을 제출합니다.
  4. 서버는 원래 URI로 다시 리디렉션되는 또 다른 HTTP 302를 반환합니다. 이 응답에는 인증 쿠키가 포함됩니다.
  5. 클라이언트는 리소스를 다시 요청합니다. 요청에는 인증 쿠키가 포함되므로 서버에서 요청을 부여합니다.

A SP dot Net의 양식 인증 작동 방식 그림

자세한 내용은 양식 인증 개요를 참조하세요.

Web API에서 Forms 인증 사용

양식 인증을 사용하는 애플리케이션을 만들려면 MVC 4 프로젝트 마법사에서 "인터넷 애플리케이션" 템플릿을 선택합니다. 이 템플릿은 계정 관리를 위한 MVC 컨트롤러를 만듭니다. ASP.NET 2012년 가을 업데이트에서 사용할 수 있는 "단일 페이지 애플리케이션" 템플릿을 사용할 수도 있습니다.

웹 API 컨트롤러에서 [권한 부여] 특성 사용에 설명된 대로 특성을 사용하여 [Authorize] 액세스를 제한할 수 있습니다.

양식 인증은 세션 쿠키를 사용하여 요청을 인증합니다. 브라우저는 모든 관련 쿠키를 대상 웹 사이트로 자동으로 보냅니다. 이 기능을 사용하면 양식 인증이 CSRF(교차 사이트 요청 위조) 공격에 잠재적으로 취약할 수 있습니다. CSRF(교차 사이트 요청 위조) 공격 방지를 참조하세요.

양식 인증은 사용자의 자격 증명을 암호화하지 않습니다. 따라서 양식 인증은 SSL과 함께 사용되지 않는 한 안전하지 않습니다. Web API에서 SSL 작업을 참조하세요.