보안: 폼 인증
- 본 번역문서의 원문은 Security: Forms Authentication www.asp.net 입니다.
폼 인증은 HTML 폼을 이용해서 사용자의 자격 증명을 서버로 전송합니다. 이 방식은 인터넷 표준은 아닙니다. 폼 인증은 사용자가 HTML 폼과 상호 작용하는 웹 응용 프로그램에서 호출되는 Web API에 가장 적합합니다.
장점 | 단점 |
---|---|
|
|
ASP.NET에서 폼 인증이 동작하는 방식을 요약해보면 다음과 같습니다:
- 클라이언트가 인증이 필요한 리소스를 요청합니다.
- 만약, 사용자가 인증되지 않았다면, 서버가 HTTP 302 (Found)를 반환하고 로그인 페이지로 재전송합니다.
- 사용자가 폼에 자격 증명을 입력하고 서버에 제출합니다.
- 서버가 다시 한 번 HTTP 302를 반환하고 최초의 URI로 다시 재전송합니다. 이 응답에는 인증 쿠키가 담겨 있습니다.
- 클라이언트가 리소스를 다시 요청합니다. 이번 요청에는 인증 쿠키가 담겨 있기 때문에, 서버가 요청을 허가해주게 됩니다.
보다 자세한 정보는 An Overview of Forms Authentication 문서를 참고하시기 바랍니다.
Web API에서 폼 인증 사용하기
폼 인증을 사용하는 응용 프로그램을 작성하려면, MVC 4 프로젝트 마법사에서 "인터넷 응용 프로그램(Internet Application)" 템플릿을 선택합니다. 이 템플릿은 계정 관리를 위한 MVC 컨트롤러를 자체적으로 생성해줍니다. ASP.NET Fall 2012 업데이트를 설치했다면 "Single Page Application" 템플릿을 사용할 수도 있습니다.
그리고, 보안: ASP.NET Web API의 인증(Authentication)과 권한(Authorization) 문서에서 살펴본 것처럼, [Authorize]
어트리뷰트를 이용해서 Web API 컨트롤러에 대한 접근을 제한할 수도 있습니다.
폼 인증은 인증 요청에 세션 쿠키를 이용합니다. 브라우저는 자동으로 관련된 모든 쿠키들을 대상 웹 사이트로 전송합니다. 바로 이런 점이 폼 인증을 크로스 사이트 요청 위조(CSRF) 공격에 취약하게 만드는 원인이기도 합니다. 자세한 내용은 보안: 크로스 사이트 요청 위조(Cross-Site Request Forgery) 공격 방지하기 문서를 참고하시기 바랍니다.
폼 인증은 사용자의 자격 증명을 암호화하지 않습니다. 따라서, SSL을 사용하지 않는 경우, 폼 인증의 안전을 보장할 수 없습니다. 자세한 내용은 보안: Web API에서 SSL 사용하기 문서를 참고하시기 바랍니다.
- 여러분의 첫 번째 ASP.NET Web API (C#) 2013-05-27 20:30
- CRUD 작업을 지원하는 Web API 작성하기 2013-06-14 20:30
- ASP.NET 웹폼에서 Web API 사용하기 2013-06-25 20:30
- ASP.NET Web API와 라우팅 2013-07-10 20:30
- ASP.NET Web API 도움말 페이지 작성하기 2013-08-14 15:43
- .NET 클라이언트에서 Web API 호출하기 (C#) 2013-08-21 16:26
- WPF 응용 프로그램에서 Web API 호출하기 (C#) 2013-08-28 22:41
- HttpClient 메시지 처리기 2013-09-04 17:16
- ASP.NET Web API 예외 처리 2013-09-11 21:23
- HTML 폼 데이터 전송하기 - 파트 1 2013-09-18 21:23
- HTML 폼 데이터 전송하기 - 파트 2 2013-09-25 01:11
- ASP.NET Web API와 HTTP 쿠키 2013-10-02 09:00
- 자체-호스트(Self-Host) Web API (C#) 2013-10-09 15:59
- OWIN을 이용한 ASP.NET Web API 자체 호스트(Self-Host) 2014-01-17 08:00
- 보안: ASP.NET Web API의 인증(Authentication)과 권한(Authorization) 2014-01-20 08:00
- 보안: 기본 인증 2014-01-22 08:00
- 보안: ASP.NET Web API와 개별 사용자 계정 2014-01-24 08:00
- 보안: 폼 인증 2014-01-27 08:00
- 보안: 통합 Windows 인증 2014-01-29 08:00
- 보안: 크로스 사이트 요청 위조(Cross-Site Request Forgery) 공격 방지하기 2014-02-03 08:00
- 보안: Web API에서 SSL 사용하기 2014-02-05 08:00
- 보안: 외부 인증 서비스 (C#) 2014-02-07 08:00
- 보안: ASP.NET Web API 교차-원본 요청(Cross-Origin Request) 활성화하기 2014-02-10 08:00