SQL 어댑터를 보호하는 모범 사례
SQL Server 위해 Microsoft BizTalk 어댑터를 사용하는 애플리케이션을 사용하거나 개발할 때 중요한 데이터를 보다 완벽하게 보호하기 위해 따라야 하는 모범 사례입니다.
SQL 어댑터와 SQL Server 데이터베이스 간의 연결에 대한 보안 모범 사례
SQL 어댑터는 데이터베이스와 SQL Server 데이터베이스 간의 통신을 보호하는 데 도움이 되지 않습니다. 어댑터와 SQL Server 데이터베이스 간에 교환되는 데이터에 대해 적절한 수준의 보안을 보장하는 메커니즘을 제공해야 합니다.
보안상의 이유로 SQL 어댑터는 연결 URI에서 SQL Server 데이터베이스에 대한 사용자 이름 암호 자격 증명을 제공할 수 없습니다. SQL 어댑터에 자격 증명을 제공하는 대체 방법은 이 항목의 나머지 부분을 참조하세요.
SQL 어댑터를 사용하면 SQL Server 연결하는 동안 Windows 인증을 사용하여 Visual Studio 또는 BizTalk Server 통해 메타데이터를 생성하고 작업을 수행할 수 있습니다. Windows 인증을 사용하기 전에 windows 사용자를 SQL Server Management Studio 사용자로 추가해야 합니다. 자세한 내용은 SQL 어댑터에서 Windows 인증을 사용하여 SQL Server 연결을 참조하세요.
자세한 내용은 SQL Server 어댑터 간의 보안을 참조하세요.
BIZTALK SERVER SQL 어댑터를 사용하는 보안 모범 사례
SQL 어댑터는 연결 URI에서 SQL Server 데이터베이스에 대한 사용자 이름 암호 자격 증명을 제공할 수 없습니다.
어댑터 서비스 사용 추가 기능을 사용하는 경우 어댑터 구성 대화 상자의 보안 탭에서 SQL Server 데이터베이스에 대한 사용자 이름 암호 자격 증명을 입력합니다.
송신 포트에서 SQL 어댑터에 대한 BizTalk WCF-Custom 어댑터를 구성하는 경우 WCF-사용자 지정 전송 속성 대화 상자의 자격 증명 탭에서 SQL Server 데이터베이스에 대한 사용자 이름 암호 자격 증명을 입력합니다.
수신 위치에서 SQL 어댑터에 대한 BizTalk WCF-Custom 어댑터를 구성하는 경우 WCF-사용자 지정 전송 속성 대화 상자의 기타 탭에서 SQL Server 데이터베이스에 대한 사용자 이름 암호 자격 증명을 입력합니다.
어댑터 서비스 추가 기능 사용을 사용하여 메타데이터를 생성하거나, 송신 포트를 구성하거나, 수신 포트를 구성하는 동안 Windows 인증을 사용할 수도 있습니다. Windows 인증을 사용하기 전에 windows 사용자를 SQL Server Management Studio 사용자로 추가해야 합니다. 자세한 내용은 SQL 어댑터에서 Windows 인증을 사용하여 SQL Server 연결을 참조하세요.
SQL 어댑터를 프로그래밍 솔루션과 함께 사용하는 보안 모범 사례
연결 URI에서 SQL Server 데이터베이스에 대한 사용자 이름 암호 자격 증명을 제공해야 하는 경우가 있습니다. 그러나 가능하면 이 작업을 수행하지 않아야 합니다.
어댑터 서비스 참조 Visual Studio 플러그 인 추가를 사용하는 경우 어댑터 구성 대화 상자의 보안 탭에서 SQL Server 데이터베이스에 대한 사용자 이름 암호 자격 증명을 입력합니다.
WCF 채널 모델 프로그래밍에서 채널 팩터리의 자격 증명 속성을 사용하여 SQL Server 데이터베이스에 대한 사용자 이름 암호 자격 증명을 설정합니다.
WCF 서비스 모델 프로그래밍에서 WCF 클라이언트의 ClientCredentials 속성을 사용하여 SQL Server 데이터베이스에 대한 사용자 이름 암호 자격 증명을 설정합니다.
SQL 어댑터를 사용하는 애플리케이션이 프로세스 경계를 넘어 중요한 데이터베이스 정보를 포함하는 메시지를 다른 서비스 또는 클라이언트로 보내는 경우 이러한 메시지에 사용자 환경에서 적절한 데이터 보호를 제공하기 위한 충분한 보안 조치가 적용되었는지 확인합니다.
어댑터 서비스 참조 플러그 인 추가를 사용하거나 .NET 애플리케이션에서 SQL Server 연결하는 동안 Windows 인증을 사용할 수도 있습니다. Windows 인증을 사용하기 전에 windows 사용자를 SQL Server Management Studio 사용자로 추가해야 합니다. 자세한 내용은 SQL 어댑터에서 Windows 인증을 사용하여 SQL Server 연결을 참조하세요.
자세한 내용은 SQL 어댑터를 사용한 보안 프로그래밍을 참조하세요.
IIS에서 SQL 어댑터를 호스팅하기 위한 보안 모범 사례
MICROSOFT 인터넷 정보 서비스(IIS)에서 SQL 어댑터를 웹 서비스로 호스팅하면 SQL 어댑터가 웹 클라이언트에 노출하는 작업이 노출됩니다. 이러한 작업에는 인터넷을 통해 중요한 데이터를 교환하는 작업이 포함될 수 있으므로 이 데이터가 최대한 안전한지 확인하는 데 도움이 되는 조치를 취해야 합니다.
WCF는 HTTP 전송을 위한 두 가지 표준 바인딩을 제공합니다. BasicHttpBinding 은 보안 메커니즘 없이 기본 HTTP 전송을 제공합니다. WSHttpBinding 은 전송 수준 및 메시지 수준 보안 메커니즘을 모두 지원합니다.
HTTPS 연결을 통해 BasicHttpBinding을 사용하거나 WSHttpBinding을 사용하여 데이터를 보호할 수 있습니다. WCF LOB 어댑터 SDK에는 LOB 아티팩트용 WCF 서비스를 생성하는 WCF LOB 어댑터 서비스 개발 마법사가 포함되어 있습니다. 이 마법사는 BasicHttpBinding 사용만 지원합니다.
사용자 지정 HTTP 바인딩을 개발하여 환경에서 제공하는 추가 보안 메커니즘을 활용할 수도 있습니다. WCF에서 제공하는 보안 기능에 대한 자세한 내용은 서비스 및 클라이언트 보안을 참조하세요.
웹 서비스로 SQL 어댑터를 호스팅할 때 웹 개발자는 사용자가 입력한 문자열이 SQL Server 데이터베이스에 직접 전달되지 않도록 조치를 취해야 합니다. 예를 들어 웹 사이트에서 사용자가 SELECT 문에서 WHERE 절의 일부가 될 값을 입력할 수 있는 경우 입력 문자열을 검사하여 문에 다른 명령을 추가하지 않도록 해야 합니다.
WCF 진단 추적 및 메시지 로깅에 대한 보안 모범 사례
WCF는 진단 추적 및 메시지 로깅을 지원합니다. 구성 파일을 통해 또는 WMI(Windows Management Instrumentation)를 사용하여 진단 추적 및 메시지 로깅을 구성합니다. 설정한 구성 옵션에 따라 WCF 진단 추적 또는 메시지 로깅은 로그 파일에 중요한 정보를 내보낼 수 있으며, 이 경우 권한이 없는 사용자가 관찰에 노출될 수 있습니다.
WCF 설명서에 제공된 권장 사항에 따라 이러한 기능을 사용하도록 설정하여 노출되는 잠재적인 보안 위협을 완화합니다. 최소한 진단 추적 및 메시지 로깅에 대한 다음 모범 사례를 관찰해야 합니다.
프로덕션 환경에서 "자세한 정보" 또는 "정보" 추적을 사용하도록 설정하지 마세요. 이로 인해 성능이 저하 될 수 있습니다. 그러나 프로덕션 환경에서 "경고" 및 "오류" 추적을 사용하도록 설정해야 합니다. 추적을 사용하도록 설정하는 경우 데이터를 보호하기 위해 적절한 보안 조치를 취해야 합니다. 자세한 내용은 WCF 설명서를 참조하세요.
로그 파일 및 구성 파일이 ACL(액세스 제어 목록)으로 보호되는지 확인합니다.
다음 경고는 클라이언트 애플리케이션과 SQL 어댑터 간에 교환되는 메시지에 특히 적용됩니다.
WCF 진단 추적은 SQL 어댑터와 교환된 메시지의 헤더(본문은 아님)를 기록할 수 있습니다. 메시지 작업은 메시지 헤더에 있으므로 클라이언트가 SQL 어댑터에서 호출한 작업을 표시합니다.
WCF 메시지 로깅을 사용하도록 설정하고
logMessagesAtServiceLevel
true
이면 어댑터 클라이언트와 SQL 어댑터 간에 교환된 메시지의 메시지 헤더(메시지 본문은 아님)가 기록됩니다. 메시지 작업은 메시지 헤더에 있으므로 클라이언트가 SQL 어댑터에서 호출한 작업을 표시합니다. 이 인true
경우logEntireMessage
메시지 본문이 기록됩니다. 이렇게 하면 중요한 데이터베이스 정보가 표시 될 수 있습니다.진단 추적을 사용하도록 설정할 때 보안을 개선하는 방법에 대한 자세한 내용은 보안 문제 및 추적에 대한 유용한 팁을 참조하세요. 메시지 로깅을 사용하도록 설정할 때 보안을 개선하는 방법에 대한 자세한 내용은 메시지 로 깅에 대한 보안 문제를 참조하세요.