IIS 보안
이 항목에서는 Microsoft SQL Server 2005 Compact Edition(SQL Server Compact Edition)에서 다음을 사용하는 방법에 대해 설명합니다.
- IIS 인증
- IIS 권한 부여
- IIS 암호화
IIS 인증
SQL Server Compact Edition 서버 에이전트를 구성할 때는 클라이언트가 SQL Server Compact Edition 서버 에이전트 연결 시 Microsoft 인터넷 정보 서비스(IIS) 인증을 수행해야 하는지 여부를 지정합니다. IIS 인증에는 다음 세 유형이 있습니다.
- 익명 액세스
- 기본 인증
- 통합 Windows 인증
대부분의 인터넷 응용 프로그램에서는 기본 인증과 SSL(Secure Sockets Layer) 암호화가 사용됩니다.
익명 액세스
익명 액세스를 사용할 경우 IIS는 클라이언트 인증을 수행하지 않습니다. SQL Server Compact Edition 서버 에이전트가 클라이언트를 대신하여 수행하는 모든 작업은 인터넷 게스트 계정의 ID로 수행됩니다. 인터넷 게스트 계정의 기본값은 IUSR_computername이지만, 다른 Windows 사용자 계정을 인터넷 게스트 계정으로 지정할 수 있습니다.
기본 인증
기본 인증을 사용할 경우 SQL Server Compact Edition 클라이언트는 유효한 Windows 계정 사용자 이름과 암호를 제공해야 합니다. IIS는 클라이언트가 제공한 사용자 이름과 암호를 사용하여 로그인을 시도합니다. 로그온 시도가 성공할 경우 SQL Server Compact Edition 서버 에이전트에서 수행하는 모든 작업은 지정된 Windows 사용자 계정의 ID로 수행됩니다. 로그온 시도가 실패할 경우 클라이언트의 요청이 거부됩니다. 기본 인증은 인터넷과 인트라넷 응용 프로그램 모두에서 사용할 수 있습니다. 기본 인증을 사용하려면 각 클라이언트에게 해당 사용자 이름과 암호가 지정된 유효한 Windows 계정이 있어야 합니다.
중요: |
---|
기본적으로 기본 인증은 네트워크에서 base64 인코딩으로 사용자 이름과 암호를 전달합니다. base64 인코딩은 디코딩이 쉽기 때문에, 암호 교환 시 암호가 유출될 수 있는 보안 위험을 내포하고 있습니다. 사용자 암호를 보호하려면 기본 인증을 사용하는 모든 경우에 SSL(Secure Sockets Layer) 암호화를 항상 사용해야 합니다. 자세한 내용은 SSL 암호화 구성을 참조하십시오. |
통합 Windows 인증
통합 Windows 인증은 기본 인증 동작과 유사합니다. SQL Server Compact Edition 클라이언트는 유효한 Windows 계정 사용자 이름과 암호를 제공해야 합니다. IIS는 사용자 이름과 암호를 사용하여 로그인을 시도합니다. 로그온 시도가 성공할 경우 SQL Server Compact Edition 서버 에이전트에서 수행하는 모든 작업은 Windows 사용자 계정의 ID로 수행됩니다. 로그인 시도가 실패할 경우 클라이언트 동기화 요청이 거부됩니다. 통합 Windows 인증은 기본 인증과 비교하여 중요한 장점이 하나 있는데, 이는 기본 인증과 달리 통합 Windows 인증은 암호화되지 않은 형태로는 네트워크를 통해 클라이언트의 사용자 이름과 암호를 전송하지 않는다는 점입니다. 그러므로 다른 사람이 암호를 가로챌 위험이 없습니다. 통합 Windows 인증은 인트라넷 응용 프로그램에 가장 적합합니다. 통합 Windows 인증은 프록시 서버 또는 방화벽에서 작동할 수 없기 때문에 인터넷 응용 프로그램에서는 거의 사용되지 않습니다.
[!참고] Microsoft Windows CE 4.2에서는 다이제스트 인증을 지원하지 않으므로 SQL Server Compact Edition 연결 솔루션에서는 이러한 유형의 인증을 지원하지 않습니다.
IIS 권한 부여
IIS 클라이언트가 인증된 다음에는 IIS 권한 부여 기능을 통해 클라이언트가 SQL Server Compact Edition 서버 에이전트를 호출할 수 있는지 여부가 결정됩니다. SQL Server Compact Edition 서버 에이전트에 액세스할 수 있는 클라이언트를 제어하여 SQL Server Compact Edition 연결을 수행할 수 있는 사용자를 제어합니다.
IIS에서는 액세스 제어를 위해 다음과 같은 메커니즘이 제공됩니다.
- IIS는 먼저 구성된 모든 IP 주소 제한과 비교하여 클라이언트 주소를 확인합니다. 특정 컴퓨터, 컴퓨터 그룹 또는 전체 네트워크가 SQL Server Compact Edition 서버 에이전트에 액세스할 수 없도록 웹 서버를 구성할 수 있습니다. 클라이언트가 처음으로 SQL Server Compact Edition 서버 에이전트에 액세스를 시도하면 IIS는 서버의 IP 주소 제한 설정과 비교하여 클라이언트 컴퓨터의 IP 주소를 확인합니다. IP 주소의 액세스가 거부될 경우 클라이언트의 동기화 요청이 거부되고 "403 Access Forbidden"이라는 메시지가 표시됩니다.
- IIS가 인증을 요구하도록 구성된 경우 IIS는 이 문서의 IIS 인증 섹션에서 설명한 바와 같이 클라이언트가 유효한 Windows 사용자 계정이 있는지 여부를 확인합니다. 사용자 계정이 유효하지 않을 경우 클라이언트의 동기화 요청이 거부되고 "403 Access Forbidden"이라는 메시지가 표시됩니다.
- 그런 다음 IIS는 웹 권한을 확인합니다. 이러한 IIS 보안 확인은 SQL Server Compact Edition 연결 솔루션과 관련이 없습니다.
- 그런 다음 IIS는 SQL Server Compact Edition 서버 에이전트에 대한 NTFS 권한을 확인하여 연결 중인 사용자에게 해당 권한이 있는지 확인합니다.
[!참고] IIS에 FAT(File Allocation Table) 파일 시스템을 사용할 수 있지만, NTFS를 사용하는 것이 좋습니다. NTFS에서는 ACL(액세스 제어 목록)을 사용하여 SQL Server Compact Edition 서버 에이전트 및 IIS 시스템의 입력/출력 메시지 파일에 대한 액세스 권한을 부여하거나 거부할 수 있습니다.
IIS 암호화
SQL Server Compact Edition 서버 에이전트를 구성할 때 SSL 암호화를 지정할 수 있습니다. SSL 암호화를 지정하면 SQL Server Compact Edition 클라이언트 에이전트와 SQL Server Compact Edition 서버 에이전트 간의 모든 통신이 암호화됩니다. 자세한 내용은 SSL 암호화 구성을 참조하십시오.
다음의 경우 SSL 암호화를 사용해야 합니다.
- 기본 인증을 사용하도록 IIS를 구성하는 경우
SSL 암호화는 사용자의 인터넷 암호를 보호하는 데 필수적입니다. 기본적으로 기본 인증은 네트워크에서 base64 인코딩으로 사용자 이름과 암호를 전송합니다. base64 인코딩은 디코딩이 쉽기 때문에, 암호 교환 시 암호가 유출될 수 있는 보안 위험을 내포하고 있습니다. 사용자의 인터넷 암호를 보호하려면 기본 인증을 사용하는 모든 경우에 SSL 암호화를 항상 사용해야 합니다. - RDA에만 해당: 응용 프로그램에서 암호가 포함된 OLEDBConnectionString 매개 변수를 지정하는 경우
RDA Pull, Push 및 SubmitSQL 메서드에는 OLEDBConnectionString 매개 변수가 필요합니다. 이 연결 문자열은 네트워크에서 일반 텍스트 형식으로 전송됩니다. 그러므로 암호 교환 시 암호가 유출될 수 있는 보안 위험을 내포하고 있습니다. - 복제에만 해당: SQL Server 게시자 또는 배포자가 SQL Server 인증을 사용하는 경우
DistributorSecurityMode 속성이 DB_AUTHENTICATION으로 지정된 경우 배포자는 SQL Server 인증을 사용합니다. PublisherSecurityMode 속성이 DB_AUTHENTICATION으로 지정된 경우 게시자는 SQL Server 인증을 사용합니다. SQL Server 인증을 사용할 경우 DistributorPassword와 PublisherPassword는 네트워크에서 일반 텍스트 형식으로 전송됩니다. 그러므로 암호 교환 시 암호가 유출될 수 있는 보안 위험을 내포하고 있습니다. SQL Server 인증을 사용하여 DistributorPassword와 PublisherPassword를 보호하는 경우 SSL 암호화를 반드시 사용해야 합니다.
참고 항목
개념
SQL Server 보안
데이터베이스 보안 설정(SQL Server Compact Edition)