ASP.NET Web API 양식 인증
작성자: Mike Wasson
양식 인증은 HTML 양식을 사용하여 사용자의 자격 증명을 서버로 보냅니다. 인터넷 표준이 아닙니다. 양식 인증은 사용자가 HTML 양식과 상호 작용할 수 있도록 웹 애플리케이션에서 호출되는 웹 API에만 적합합니다.
장점 | 단점 |
---|---|
|
|
간단히 ASP.NET 양식 인증은 다음과 같이 작동합니다.
- 클라이언트는 인증이 필요한 리소스를 요청합니다.
- 사용자가 인증되지 않은 경우 서버는 HTTP 302(발견됨)를 반환하고 로그인 페이지로 리디렉션합니다.
- 사용자가 자격 증명을 입력하고 양식을 제출합니다.
- 서버는 원래 URI로 다시 리디렉션되는 또 다른 HTTP 302를 반환합니다. 이 응답에는 인증 쿠키가 포함됩니다.
- 클라이언트는 리소스를 다시 요청합니다. 요청에는 인증 쿠키가 포함되므로 서버에서 요청을 부여합니다.
자세한 내용은 양식 인증 개요를 참조하세요.
Web API에서 Forms 인증 사용
양식 인증을 사용하는 애플리케이션을 만들려면 MVC 4 프로젝트 마법사에서 "인터넷 애플리케이션" 템플릿을 선택합니다. 이 템플릿은 계정 관리를 위한 MVC 컨트롤러를 만듭니다. ASP.NET 2012년 가을 업데이트에서 사용할 수 있는 "단일 페이지 애플리케이션" 템플릿을 사용할 수도 있습니다.
웹 API 컨트롤러에서 [권한 부여] 특성 사용에 설명된 대로 특성을 사용하여 [Authorize]
액세스를 제한할 수 있습니다.
양식 인증은 세션 쿠키를 사용하여 요청을 인증합니다. 브라우저는 모든 관련 쿠키를 대상 웹 사이트로 자동으로 보냅니다. 이 기능을 사용하면 양식 인증이 CSRF(교차 사이트 요청 위조) 공격에 잠재적으로 취약할 수 있습니다. CSRF(교차 사이트 요청 위조) 공격 방지를 참조하세요.
양식 인증은 사용자의 자격 증명을 암호화하지 않습니다. 따라서 양식 인증은 SSL과 함께 사용되지 않는 한 안전하지 않습니다. Web API에서 SSL 작업을 참조하세요.