다음을 통해 공유


응용 프로그램 간 폼 인증

업데이트: 2007년 11월

ASP.NET은 단일 서버의 여러 응용 프로그램 또는 웹 팜에서 분산 환경 폼 인증을 지원합니다. 여러 ASP.NET 응용 프로그램에 대해 폼 인증이 설정되어 있으면 응용 프로그램 간에 전환할 때 사용자를 다시 인증할 필요가 없습니다.

응용 프로그램 간 폼 인증 구성

응용 프로그램 간에 폼 인증을 구성하려면 공유 폼 인증에 참여하는 모든 응용 프로그램에 대해 Web.config 파일의 formsmachineKey 섹션 특성을 동일한 값으로 설정합니다.

다음 예제에서는 Web.config 파일의 Authentication 섹션을 보여 줍니다. 다른 설명이 없는 한 name, protection, path, validationKey, validation, decryptionKey 및 decryption 특성은 모든 응용 프로그램에서 같아야 합니다. 마찬가지로 인증 티켓(쿠키 데이터)에 사용되는 암호화 및 유효성 검사 키 값과 암호화 체계 및 유효성 검사 체계가 동일해야 합니다. 이러한 설정이 일치하지 않으면 인증 티켓을 공유할 수 없습니다.

참고:

ASP.NET 버전 2.0 이상의 각 응용 프로그램에 대한 machineKey 요소에 decryption="3DES"가 포함되는 경우 ASP.NET 버전 2.0 이상이 실행되는 응용 프로그램은 이전 버전의 ASP.NET과 폼 인증 티켓 정보를 공유할 수 있습니다.

<configuration>
  <system.web>
    <authentication mode="Forms" >
      <!-- The name, protection, and path attributes must match 
           exactly in each Web.config file. -->
      <forms loginUrl="login.aspx"
        name=".ASPXFORMSAUTH" 
        protection="All"  
        path="/" 
        timeout="30" />
    </authentication>

    <!-- Validation and decryption keys must exactly match and cannot
         be set to "AutoGenerate". The validation and decryption
         algorithms must also be the same. -->
    <machineKey
      validationKey="[your key here]" 
      decryptionKey="[your key here]" 
      validation="SHA1" />
  </system.web>
</configuration>

인증 티켓(쿠키)이 발급된 후에는 쿠키 자체의 Expires 값에 따라 쿠키 만료가 추적됩니다. 두 응용 프로그램의 Timeout 특성이 서로 다른 경우 만료 날짜 및 원래 타임스탬프는 각 쿠키의 수명 동안 유지됩니다. 쿠키가 업데이트되면 새로운 만료 기한을 계산하기 위해 쿠키의 원래 만료 기한이 사용됩니다. Timeout 구성 값은 쿠키를 처음 만들 때만 사용됩니다.

폼 인증 및 인증 서비스

인증 서비스를 사용하여 응용 프로그램 간에 사용자를 인증할 수도 있습니다. 인증 서비스를 통해 사용자는 SOAP 형식으로 메시지를 보내고 사용할 수 있는 응용 프로그램에서 폼 인증을 사용할 수 있습니다. 자세한 내용은 Windows Communication Foundation 인증 서비스 개요를 참조하십시오.

참고 항목

작업

방법: 간단한 폼 인증 구현

기타 리소스

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