다음을 통해 공유


ADOMD.NET의 연결 - 보안 연결 설정

ADOMD.NET 연결을 사용하는 경우 연결에 사용되는 보안 방법은 메서드를 호출 OpenAdomdConnection할 때 사용되는 연결 문자열의 ProtectionLevel 속성 값에 따라 달라집니다.

ProtectionLevel 속성은 인증되지 않은, 인증, 서명 및 암호화된 네 가지 수준의 보안을 제공합니다. 다음 표에서는 이러한 여러 보안 수준에 대해 설명합니다.

참고

데이터베이스 연결 풀링을 사용하기로 선택한 경우에는 데이터베이스에서 보안을 관리할 수 없습니다. 이는 데이터베이스 연결 풀링을 사용하려면 연결 문자열이 풀 연결과 같아야 하기 때문입니다. 따라서 다른 곳에서 보안을 관리해야 합니다.

보안 수준 ProtectionLevel 값
인증되지 않은 연결
인증되지 않은 연결에는 인증 형식이 없습니다. 이 연결 유형은 가장 널리 지원되지만 보안 수준이 가장 낮은 연결 형식을 나타냅니다.
없음
인증된 연결
인증된 연결은 연결을 설정한 사용자를 인증합니다. 그러나 추가 보안 통신을 지원하지는 않습니다. 이 연결 유형은 분석 데이터 원본에 연결하고 있는 사용자 또는 응용 프로그램의 ID를 설정할 수 있을 때 유용합니다.
연결
서명된 연결
서명된 연결은 연결을 요청하는 사용자를 인증한 후 전송이 수정되지 않았는지 확인합니다. 이 연결 유형은 전송된 데이터의 신뢰성을 확인해야 하는 경우에 유용합니다. 서명된 연결에서는 데이터 패킷의 내용을 수정할 수 없지만 전송 중인 내용을 볼 수는 있습니다.



서명된 연결은 MicrosoftSQL ServerAnalysis Services에서 제공하는 XML for Analysis 공급자에서만 지원됩니다.
Pkt 무결성 또는 PktIntegrity
암호화된 연결
암호화된 연결은 ADOMD.NET에서 사용되는 기본 연결 유형입니다. 이 연결 유형은 연결을 요청하는 사용자를 인증한 후 전송되는 데이터를 암호화합니다. 암호화된 연결은 ADOMD.NET에서 만들 수 있는 연결 중 보안 수준이 가장 높은 연결입니다. 데이터 패킷의 내용을 보거나 수정할 수 없기 때문에 전송 중인 데이터를 안전하게 보호할 수 있습니다.



암호화된 연결은 SQL ServerAnalysis Services에서 제공하는 분석 공급자용 XML에서만 지원됩니다.
Pkt 개인 정보 또는 PktPrivacy

모든 연결 유형에 모든 보안 수준을 사용할 수 있는 것은 아닙니다.

  • TCP 연결은 네 가지 보안 수준 중 한 수준만 사용할 수 있습니다. 실제로 TCP 연결을 Windows 통합 보안과 함께 사용하게 되면 가장 높은 보안 수준으로 분석 데이터 원본에 연결할 수 있습니다.

  • HTTP 연결은 인증된 연결만 가능합니다. 따라서 ProtectionLevel 속성은 커넥트 설정해야 합니다.

  • HTTPS 연결은 암호화된 연결만 가능합니다. 따라서 ProtectionLevel 속성을 Pkt Privacy 또는PktPrivacy로 설정해야 합니다.

TCP 연결 보안 설정

TCP 연결의 경우 ProtectionLevel 속성은 다음 표와 같이 네 가지 보안 수준을 모두 지원합니다.

ProtectionLevel 값 TCP 연결 사용 여부 결과
없음 인증되지 않은 연결을 지정합니다.

공급자에서 TCP 스트림을 요청하지만 해당 스트림을 요청하는 사용자에 대해 수행되는 인증 형식이 없습니다.
연결 인증된 연결을 지정합니다.

공급자로부터 TCP 스트림을 요청한 다음 스트림을 요청하는 사용자의 보안 컨텍스트가 서버에 대해 인증됩니다. 인증이 성공하면 다른 작업이 수행되지 않습니다. 인증에 실패하면 개체가 AdomdConnection 다차원 데이터 원본에서 연결을 끊고 예외가 throw됩니다.

인증이 성공 또는 실패한 후 연결을 인증하는 데 사용된 보안 컨텍스트는 삭제됩니다.
Pkt 무결성 또는 PktIntegrity 서명된 연결을 지정합니다.

공급자에서 TCP 스트림을 요청한 후 해당 스트림을 요청하는 사용자의 보안 컨텍스트가 서버에 대해 인증됩니다.



인증에 성공하면 개체는 AdomdConnection 기존 TCP 스트림을 닫고 서명된 TCP 스트림을 열어 모든 요청을 처리합니다. 데이터 또는 메타데이터에 대한 각 요청은 연결을 여는 데 사용된 보안 컨텍스트를 사용하여 인증됩니다. 또한 각 패킷은 TCP 패킷의 페이로드가 변경되지 않았음을 보장하기 위해 디지털 서명됩니다.



인증에 실패하면 개체가 AdomdConnection 다차원 데이터 원본에서 연결을 끊고 예외가 throw됩니다.
Pkt 개인 정보 또는 PktPrivacy 암호화된 연결을 지정합니다.



연결 문자열에서 ProtectionLevel 속성을 설정하지 않음으로써 암호화된 연결을 지정할 수도 있습니다.



공급자에서 TCP 스트림을 요청한 후 해당 스트림을 요청하는 사용자의 보안 컨텍스트가 서버에 대해 인증됩니다.



인증에 성공하면 개체가 AdomdConnection 기존 TCP 스트림을 닫고 암호화된 TCP 스트림을 열어 모든 요청을 처리합니다. 데이터 또는 메타데이터에 대한 각 요청은 연결을 여는 데 사용된 보안 컨텍스트를 사용하여 인증됩니다. 또한 각 TCP 패킷의 페이로드는 공급자와 다차원 데이터 원본에서 지원되는 최고 수준의 암호화 방법을 사용하여 암호화됩니다.



인증에 실패하면 개체가 AdomdConnection 다차원 데이터 원본에서 연결을 끊고 예외가 throw됩니다.

연결에 Windows 통합 보안 사용

Windows 통합 보안은 Analysis Services 인스턴스에 대한 연결을 설정하고 보호하는 가장 안전한 방법입니다. Windows 통합 보안은 인증 프로세스 동안 사용자 이름 또는 암호 같은 보안 자격 증명을 노출하지 않고 대신 현재 실행 중인 프로세스의 보안 식별자를 사용하여 ID를 설정합니다. 대부분의 클라이언트 응용 프로그램에서 이 보안 식별자는 현재 로그온한 사용자의 ID를 나타냅니다.

Windows 통합 보안을 사용하려면 연결 문자열을 다음과 같이 설정해야 합니다.

  • 통합 보안 속성의 경우 이 속성을 설정하거나 이 속성을 SSPI로 설정하지 마세요.

    참고

    Windows 통합 보안은 TCP 연결에만 사용할 수 있습니다. HTTP 연결은 통합 보안 속성에 대한 기본 설정을 사용해야 하기 때문입니다.

  • ProtectionLevel 속성의 경우 이 속성을 커넥트, Pkt 무결성 또는 Pkt 개인 정보로 설정합니다.

HTTP 연결 보안 설정

HTTPS 및 SSL(Secure Sockets Layer)은 분석 데이터 원본과의 HTTP 통신을 외부에서 보안 설정하는 데 사용할 수 있습니다.

XMLA 공급자가 보안 HTTP만을 사용하므로 ADOMD.NET의 HTTP 연결은 다음 표와 같이 서명된 연결이어야 합니다.

ProtectionLevel 값 HTTP 또는 HTTPS 사용
없음 아니요
연결 HTTP
Pkt 무결성 또는 PktIntegrity 아니요
Pkt 개인 정보 또는 PktPrivacy HTTPS

보안 HTTP 연결 열기

다음 예제에서는 ADOMD.NET 사용하여 AdventureWorksAS 샘플 Analysis Services 데이터베이스에 대한 HTTP 연결을 여는 방법을 보여 줍니다.

Public Function GetAWEncryptedConnection( _  
    Optional ByVal serverName As String = "https:\\localhost\isapy\msmdpump.dll") _  
    As AdomdConnection  
  
    Dim strConnectionString As String = ""  
    Dim objConnection As New AdomdConnection  
  
    Try  
        ' To establish an encrypted connection, set the   
        ' ProtectionLevel setting to PktPrivacy.  
        strConnectionString = "DataSource=" & serverName & ";" & _  
            "Catalog=AdventureWorksAS;" & _  
            "ProtectionLevel=PktPrivacy;"  
  
        ' Note that username and password are not supplied here.  
        ' The current security context is used for authentication  
        ' purposes.  
  
        objConnection.ConnectionString = strConnectionString  
        objConnection.Open()  
    Catch ex As Exception  
        objConnection = Nothing  
        Throw ex  
    Finally  
        ' Return the encrypted connection.  
        GetAWEncryptedConnection = objConnection  
    End Try  
End Function