728x90
300x250

[ASP.NET] 폼 인증 방식

ASP.NET는 새로운 인증 방식을 지원합니다. 인증 방식에는 Passport 인증, Windows 인증, Forms 인증이 있습니다.
인증 방식은 종류가 매우 다양합니다. ASP.NET에는 쿠키 상태, 세션 상태, Application 상태 등이 있습니다.
상태 관리를 변형하면 인증 방식으로도 사용할 수 있습니다. 그러므로 인증 방식의 종류가 매우 다양합니다.
인증 방식에 따라 코드가 간단하지만, 보안에 취약한 경우가 있을 것입니다.
흔히 우리는 쿠키를 통한 인증을 자주 사용합니다. 왜냐하면, Temporary Folder에 저장되므로 고급 사용자가 아닌 이상 접근할 빈도가 낮게 구현하기가 쉽기 때문입니다.


1) 인증 방식의 종류
Passport 인증 - MS의 Passport 서비스를 이용하여 인증합니다.
Windows 인증(우리가 사용하는 윈도우 계정) - 가장 강력하지만, 사내 인트라넷에서 사용하므로 사내 첩자를 찾아낼 수 있도록 탐지기술 도입이 
                                                                    필요 합니다.
Forms 인증 - 쿠키를 이용하여 인증처리를 구현합니다. 쉽게 구현가능하며 .NET Framework에 포함된 보안 기술을 사용할 수 있습니다.
사용자 지정 - 말 그대로 사용자가 직접 인증 프로세스를 만들어 냅니다. 구현하는 데 다소 복잡하다는 특성을 가지고 있습니다.

Web.Config

중략
<system.web>
<authentication mode="Forms">
<forms name=".ASPXAUTH" loginUrl="로그인페이지.aspx" defaultUrl="로그인 후에 접속할 페이지.aspx"></form>
</authentication>
</system.web>
중략

로그인 페이지에서 버튼에 프로세스 - 구현

버튼()
{
FormsAuthentication.RedirectFromLoginPage(인증아이디식별단자, 쿠키 보존 여부);
}

쿠키 보존 여부 : true, false

로그아웃 페이지에서의 버튼에 적용하기 - 구현

버튼()
{
FormsAuthentication.SignOut();
            Response.Redirect("로그아웃 후에 이동할 페이지.aspx");
}



2. 부록) 사용자 옵션

1) Protection: 쿠키에 사용되는 암호화 유형
Validation: 쿠키 변경 여부를 검사하여 데이터의 유효성 여부를 확인합니다.
None: 3DES, DES를 사용하여 암호화를 하지만, 쿠키에서 데이터의 유효성 검사는 수행하지 않습니다.
Encryption: 개인 설정 정보를 제공할 때만, 쿠키를 사용하고 보안 요구 사항이 낮은 사이트에 대해서는 암호화와 유효성 검사를 해지합니다.
All(기본값): 응용 프로그램이 데이터의 유효성 검사 및 암호화를 모두 사용하여 쿠키를 보호하도록 지정합니다.

2) Timeout: 쿠키가 만료될 때까지의 시간 지정
3) slidingExpiration: 상대(sliding) 만료의 설정 여부를 지정합니다. 기본값은 .NET Framework 1.x에서는 true이고, .NET Framework 2.0에서는 False입니다.

True: 새로 고침 하면 다시 갱신
False: 만료기간 제거

4) name: 인증 쿠키의 이름 지정 (기본값: .ASPAUTH)
5) domain: 쿠키를 공유할 수 있는 도메인 설정
6) Cookless: 인증 쿠키의 사용 여부 및 동작 설정
UseCookies: 장치에 관계없이 쿠키를 항상 사용합니다.
UseUrl: 쿠키를 사용하지 않고 인증 정보를 URL에 저장합니다.
AutoDetect: 브라우저에서 쿠키를 지원하면 쿠키를 사용하고 그렇지 않으면, 쿠키를 사용하지 않습니다.
UseDeviceProfile(기본값): 장치 프로필에서 쿠키를 지원하면 쿠키를 사용하고 그렇지 않으면, 쿠키를 사용하지 않습니다.

7) EnableCrossAppRedirects

폼 인증 티켓이 쿠키에 저장되어 있지 않은 경우 인증된 사용자를 다른 웹 응용 프로그램의 URL로 리디렉션할 수 있는지 여부를 나타내는 값을 가져옵니다.


3. 참고자료(Reference)

1. 기술지원, http://msdn.microsoft.com/ko-kr/library/9wff0kyh.aspx

반응형

+ Recent posts