다음을 통해 공유


ASP.NET 보안 데이터 흐름

업데이트: 2007년 11월

다양한 방법으로 ASP.NET 응용 프로그램의 보안을 디자인할 수 있습니다. 이 항목에서는 가장과 쿠키를 사용한 폼 인증이라는 두 가지 일반 시나리오에 대해 보안 데이터 흐름을 설명합니다.

시나리오 1: 가장

가장 시나리오에서는 Microsoft 인터넷 정보 서비스(IIS) 인증 및 Microsoft Windows 파일 액세스 보안을 사용하여 ASP.NET 응용 프로그램에서 보안 프로그래밍을 최소화합니다. 다음 그림은 데이터 흐름을 보여 줍니다.

가장

이 그림은 다음과 같은 이벤트 시퀀스를 나타냅니다.

  1. 네트워크 클라이언트가 IIS에 요청을 제출합니다.

  2. IIS는 기본, 다이제스트 또는 Windows 통합 인증(NTLM 또는 Kerberos)을 사용하여 이 클라이언트를 인증합니다.

  3. 이 클라이언트가 인증되면, IIS는 인증된 요청을 ASP.NET으로 전달합니다.

  4. ASP.NET 응용 프로그램은 IIS에서 전달한 액세스 토큰을 사용하여 요청하는 클라이언트를 가장하고 NTFS 파일 권한을 통해 리소스에 대한 액세스를 허용합니다. ASP.NET 응용 프로그램에서는 ASP.NET 구성 파일에서 가장이 true 로 설정되어 있는지 확인만 하면 되고 ASP.NET 보안 코드가 필요 없습니다.

    가장을 활성화하지 않으면 해당 응용 프로그램은 ASP.NET 프로세스 ID로 실행됩니다. Microsoft Windows 2000 Server 및 Windows XP Professional의 경우 기본 ID는 ASP.NET이 설치될 때 자동으로 만들어지는 ASPNET이라는 로컬 계정입니다. Microsoft Windows Server 2003에서 기본 ID는 IIS 응용 프로그램의 응용 프로그램 풀 ID이며 기본적으로 NETWORK SERVICE 계정입니다.

    참고:

    가장이 활성화되어 있지 않으며 폼 인증을 사용하여 인증된 사용자와 같은 특정 사용자 또는 사용자 집합의 액세스 권한을 제한하려면 URL 권한 부여 등 다른 권한 부여 방법을 사용해야 합니다. URL 권한 부여에 대한 자세한 내용은 ASP.NET 권한 부여를 참조하십시오.

    ASP.NET 응용 프로그램에서 가장을 사용하는 방법에 대한 자세한 내용은 ASP.NET 가장ASP.NET 가장과 함께 IIS 인증 사용을 참조하십시오.

  5. 액세스가 허용되면 ASP.NET 응용 프로그램은 IIS를 통해 요청된 리소스를 반환합니다.

시나리오 2 - 폼 인증

폼 인증 시나리오에서 응용 프로그램은 사용자로부터 직접 이름과 암호 같은 자격 증명을 수집하고 이 자격 증명의 신뢰성을 확인합니다. IIS 인증은 이 응용 프로그램에서 사용되지 않지만 폼 인증에 영향을 줄 수 있습니다. 일반적으로 폼 인증을 사용하는 경우 IIS에서 익명 액세스를 사용하도록 설정합니다. 그렇지 않으면 사용자가 IIS 인증을 통과하지 못할 경우 폼 인증에 사용자 이름과 암호를 제공하기 위해 응용 프로그램에 접근할 수 없습니다.

다음 그림은 이 시나리오의 데이터 흐름을 보여 줍니다.

폼 인증

이 그림은 다음과 같은 이벤트 시퀀스를 나타냅니다.

  1. 사용자가 보호되는 리소스를 요청합니다.

  2. IIS에서 요청을 수신하고, IIS 익명 액세스가 사용되기 때문에 IIS에서 사용자 인증을 수행하지 않으며 요청이 ASP.NET 응용 프로그램으로 전달됩니다.

  3. ASP.NET 인증 모드가 폼으로 설정되기 때문에 ASP.NET 응용 프로그램은 폼 인증 티켓(특정 쿠키)에 대한 요청을 검사합니다. 요청에 연결된 응용 프로그램 티켓이 없으면 ASP.NET에서는 해당 요청을 이 응용 프로그램의 구성 파일에 지정된 로그온 페이지로 리디렉션합니다.

  4. 로그온 페이지에서 사용자는 필요한 자격 증명(일반적으로 이름과 암호)을 입력합니다. 응용 프로그램 코드는 자격 증명을 검사하여 이 자격 증명의 신뢰성을 확인합니다. 자격 증명이 인증되면 응용 프로그램 코드가 사용자 자격 증명을 나타내는 응답에 인증 티켓을 연결합니다. 암호는 포함되지 않습니다. 인증이 실패하면 액세스 거부 메시지와 함께 해당 요청이 반환되거나 로그온 폼이 다시 표시됩니다.

    발급된 인증 티켓은 ASP.NET 응용 프로그램에 대한 이후 요청에 포함됩니다. ASP.NET은 MAC(메시지 인증 검사)를 사용하여 티켓의 유효성을 검사합니다.

  5. 사용자가 인증되면 ASP.NET은 권한을 확인한 후, 원래 요청된 리소스에 대한 액세스를 허용하거나 다른 페이지로 요청을 리디렉션하거나 보호되는 리소스에 대한 액세스 권한 부여를 위해 자격 증명을 테스트하는 사용자 지정 권한 부여 모듈로 요청을 리디렉션할 수 있습니다. 권한 부여가 실패하면 ASP.NET은 사용자를 로그온 페이지로 리디렉션합니다.

    사용자에게 권한이 부여되면, 보호되는 리소스에 액세스할 수 있습니다. 또는, 응용 프로그램 디자인에 따라 응용 프로그램은 보호되는 리소스에 액세스할 수 있는 권한을 부여하기 전에 자격 증명에 대한 추가 테스트를 요구할 수도 있습니다.

    참고:

    폼 인증과 권한 부여 검사는 authenticationauthorization 구성 요소로 보호되는 리소스에만 적용됩니다. ACL(액세스 제어 목록)을 사용하여 보호되는 Windows 리소스에 대한 액세스는 ASP.NET 응용 프로그램의 현재 Windows ID를 기준으로 검사됩니다. 자세한 내용은 ASP.NET 가장을 참조하십시오.

참고 항목

작업

방법: 간단한 폼 인증 구현

개념

ASP.NET 가장

ASP.NET 가장과 함께 IIS 인증 사용

기타 리소스

멤버 자격을 사용하여 사용자 관리

역할을 사용하여 권한 부여 관리

ASP.NET 웹 응용 프로그램 보안

폼 인증 공급자