본문 바로가기

윈도우 서버구축/IIS 7

IIS에서 web.config 파일의 대해서

IIS에서 web.config 파일의 대해서



IIS 설정파일인 web.config파일을 알아보겠습니다




IIS web.config?


web.config 란?

기존 ASP 환경에서는 IIS의 메타데이터에 웹 응용 프로그램의 각종 설정 데이터 보관했습니다

그라나 ASP.NET 환경에서는 새롭게 web.config 라는 이름의 파일에 웹 응용 프로그램 별로 각기 다른 설정을 적용할 수 있습니다


web.config 파일은 개별적인 웹 응용 프로그램의 루트경로에 위치하며 각각의 웹 응용 프로그램 별로 각기 다른 설정을 적용할 수 있습니다


web.config 파일은 필수적으로 존재하는 파일이 아니며 web.config 파일이 존재없을 시에는machine.config 파일의 설정을 상속 받습니다


web.config 파일은 XML을 기반으로 구성되어 개발자나 웹 응용 프로그램에 대한 설정의 변경이 용의하며 변경이 매우 용의 해졌습니다 단순 복붙으로만으로도 끝낼 수 있는 경우가 되었습니다


ASP.NET을 web.config 파일의 변경 사항을 자동적으로 감지하여 이를 웹 응용 프로그램의 중단이나 재시작 없이 적절한 시기에 적용 합니다 그리하여 웹 응용프로그램의 지속성을 향상되었을 뿐만 아니라 HTTP를 통한 웹 브라우저 접근을 원천적으로 차단하여 보안성 높아졌습니다



web.config 기본 섹션

<configuration>

<location>

<system.web>

<authentication></authentication>

<authorization></authorization>

<browserCaps></browserCaps>

<clientTarget></clientTarget>

<compilation></compilation>

<customErrors></customErrors>

<globalization></globalization>

<httpHandlers></httpHandlers>

<httpRuntime></httpRuntime>

<identity>

<machineKey>

<pages>

<processModel>

<securityPolicy>

<sessionState>

<trace>

<trust>

<webServices></webServices>

</system.web>

<appSettings></appSettings>

</location>

</configuration>


위의 내용은 web.config 파일에서 사용되는 웹 응용프로그램 설정섹션이며 하나씩 차근 차근 알아보겠습니다


web.config 설정 섹션




최상위 루트 노드인<cofniguration>노드로부터 출발하여 <location>이라는 노드를 가집니다

<location>노드는 자신의 하위 노드를 통해 설정된 설정 데이터를 적용할 특정 파일경로를 지정할 수 있으며 생략도 가능합니다


<location>노드의 자식노드로는 <system.web>섹션과 <appSetting>섹션이 올수 있습니다

<system.web>섹션에는 지정된 다양한 ASP.NET 웹 응용프로그램 설정 데이터를 지정할 수 있는 여러 노드와 특성들이 존재하며 <appSettings>섹션은 개발자가 임의의 설정 데이터를 지정할 수 있는 섹션입니다


<location> 섹션

<location> 섹션은 생략이 가능하며 섹션으로 자신의 하위 섹션들을 통해 설정된 설정 정보가 적용될 특정 페이지를 지정하기 위해 사용됩니다


[location 기본 형식]

<location path="path" allowOverride="true | false"> </location>


 특성

값<?xml:namespace prefix = o />

설명

path

URL 문자열

하위 섹션에 지정된 설정 정보가 적용될 파일의 경로 입니다 

 allowOverride

true 

하위 폴더에 존재하는 web.config 파일의 설정 데이터가 현재 설정을 덮어 씁니다 

false

하위 폴더에 존재하는 web.config 파일의 설정 데이터가 현재 설정을 덮어 쓰지 않습니다 


다음 섹션 구성은 <system.web> 섹션의 모든 설정이 Default.aspx 페이지에만 적용되록하는 합니다


<configuration>

<location path="Default.aspx">

<system.web>



</system.web>

</configuration>


<system.web> 섹션

ASP.NET 웹 응용 프로그램의 설정 데이터를 구성하기 위한 루트 노드입니다 지금부터 이 섹션의 하위 섹션들을 설정부분을 알아 보겠습니다


<authentication> 섹션


이 섹션은 ASP.NET 웹 응용프로그램의 인증 모드를 지정하기 위한 섹션이며, 웹 응용 프로그램 또는 서버 시스템 레벨에서만 설정할 수 있습니다 웹 응용프로그램을 구성하는 하위 폴더에서 지정하게 된다면 오류가 발생하게 됩니다


<authentication mode="Windows | Formes | Passport | None">

</authentication>



<authentication> 웹 응용 프로그램에 사용할 사용자 인증방식 지정 형식


특성

특성

mode

Windows

윈도우 인증 모드를 이용하여 사용자 인증을 시도합니다

Foms

ASP.NET 폼 기반 인증 방식을 사용하여 사용자 인증을 시도합니다

Passport

마이크로 소프트의 Passport 인증 방식을 이용하여 사용자 인증을 시도합니다

None

인증을 사용하지 않습니다. 이 경우 기존의 ASP와 마찬가지로 사용자 인증을 개발자가 직접 구현해야 됩니다



<Forms> 하위섹션


<authentication> 섹션의 mode 특성이 Foms 모드로 지정되어 ASP.NET 폼기반 인증 방식이 지정되었을 경우 <foms> 하위 섹션을 통해 보다 세밀한 제어가 가능합니다


<foms>섹션 사용방법


<forms name="form_name">

login_url="url"

protection="All | None | Encryiping | Validation"

timeout="30"

path="/"

requireSSL="true | false"

slidingExpiration="true | false">

<credentials passwordFomat="clean | SHA1 | MD5">

<user name="user_name" password="password"></user>

</credentials>

</foms>



<forms>섹션 특성

특성

설명

name


사용자 인증에 사용할 쿠키 이름을 지정하며 지정하지 않을 경우 기본 값은 .ASPXAUTH가 사용 됩니다

loginUrl


사용자 인증 쿠키가 발견되지 않을 때 로그인 요청을 위해 이동할 파일의 URL입니다

(로그인 페이지 URL)

PROTECTION

ALL

사용자 인증 쿠키를 암호화 및 데이터 유효성 검사를 사용하여 보호합니다

Nome

사용자 인증 쿠키를 암호화 및 데이터 유효성 검사를 사용하여 보호합니다

Encrypion

사용자 인증 쿠키를 암호화하여 보호합니다

Validation

사용자 인증 쿠키에 대해 데이터 유효성 검사를 사용합니다

timeout


지정된 시간이 지난 후에 쿠키를 만료시키기 위한 시간을 지정한다 단위는 분 단위이며 기본값은 30분 입니다

path


웹 응용 프로그램에서 발급한 쿠키의 경로를 지정하며 기본 값은 슬래쉬(/)입니다

requireSSL

true

사용자 인즈에 SSL 보안을 적용하도록 지정합니다


false

사용자 인증에 SSL 보안을 적용하지 않습니다 

slidingExpiration

true

쿠키에 대해 슬라이딩 만료를 사용합니다 슬라이딩 만료란 쿠키의 만료 시간이 사용자의 요청이 발생하는 동안 계속해서 수정되는 방법입니다 예로 오전 9시 정각에 생성된 쿠키를 30분 후에 만료 시키기로 하였을때 사용자가 9시 5분에 웹 사이트에 요청을 보내면 쿠키의 만료시간이 9시 35분으로 변경됩니다

false

슬라이딩 만료을 사용하지않으며, 지정되어 있는시간에 쿠기가 만료됩니다



<credentials> 하위 섹션

<forms> 섹션은 <credentials>라는 하위 섹션을 가질 수 있습니다. 이 섹션은 특정 사용자의 ID와 비밀 번호를 정의하기 위한 섹션입니다


<credentials>섹션 형식


 특성

설명

password Format

Clear

비밀번호가 암호화되지 않습니다

MD5

비밀번호가 MD5 알고리즘을 이용하여 암호화 됩니다

SHA1

비밀번호가 SHA1 알고리즘을 이용하여 암호화 됩니다



<user> 하위섹션

<credentials> 섹션은 <user>라는 하위 섹션을 이용하여 사용자의 ID와 비밀번호를 지정할 수 있습니다


<user>섹션 특성

특성

설명

name

사용자의 로그인 이름입니다

password

사용자의 로그인 비밀번호입니다


<authentication>섹션은 mode 특성 값을 Passport로 지정하면 마이크로소프트의 SSO(Single Sign On) 솔루션인 Passport를 이용하여 웹 응용 프로그램에 로그인 할 수 있게됩니다 


<passport> 하위 섹션

Passport 인증 모드를 사용할 경우 <forms>섹션 대신 <passport>섹션을 사용할 수 있으며 다음과 같은 특성을 가집니다


특성

설명

redirectUrl

사용자가 Passport 인증을 거치지 않은 경우 이동할 페이지의 URL입니다


아래의 섹션 구성은 웹 응용 프로그램에 Forms 인증 모드를 적용하고 1명의 사용자에 대해 로그인 자격을 암호화하여 지정합니다


<configuration>

<system.web>

<authetication mode="Forms">

<forms name="form1" loginUrl="/Login.aspx">

<credentials passwordFormat="MD5">

<user name="admin"

password="admin_password">

</user>

</credentials>

</authetication>

</system.web>

</configuration>


참조 : http://hotdogya.tistory.com/23