IIS 7.0에서 SQL Server Analysis Services에 대한 HTTP 액세스 구성

IIS(인터넷 정보 서비스)에서 실행되면서 HTTP 클라이언트 및 Analysis Services 서버로 데이터를 펌프하고 다시 반대로 펌프하는 ISAPI 확장인 MSMDPUMP.dll을 구성하여 Analysis Services에 대한 HTTP 액세스를 사용하도록 설정할 수 있습니다. 이 방법은 OLAP/IP 솔루션에서 다음과 같은 기능을 필요로 할 때 Analysis Services에 연결하는 대체 방법을 제공합니다.

  • 클라이언트 액세스가 인터넷 또는 엑스트라넷 연결을 통해 이루어집니다(설정할 수 있는 포트에 대한 제한 사항 있음) 또는 클라이언트 연결이 동일 네트워크의 트러스트되지 않은 도메인에서 시작됩니다.

  • 클라이언트 응용 프로그램이 HTTP는 허용하지만 TCP/IP 연결은 허용하지 않는 네트워크 환경에서 실행됩니다.

  • Windows 통합 보안 인증이 아닌 다른 인증 방법이 필요합니다. IIS는 익명 인증과 기본 인증을 지원합니다. HTTP 액세스를 위해 Analysis Services를 구성하면 Analysis Services와 함께 이러한 대체 인증 방법을 사용할 수 있습니다.

  • 클라이언트 응용 프로그램은 Analysis Services 클라이언트 라이브러리를 사용할 수 없습니다(예: UNIX 서버에서 실행하는 Java 응용 프로그램). 데이터 액세스를 위해 Analysis Services 클라이언트 라이브러리를 사용할 수 없는 경우 Analysis Services 인스턴스로의 직접 HTTP 연결을 통해 SOAP 및 XML/A를 사용할 수 있습니다.

이 항목에서는 IIS 7.0을 사용하여 Analysis Services 인스턴스에 대한 HTTP 액세스를 설정하는 방법에 대해 설명합니다. 이러한 지침은 SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 등을 비롯하여 IIS 7.0과 상호 작용하는 모든 지원되는 버전의 Analysis Services OLAP 인스턴스에 적용됩니다.

이 항목은 다음과 같은 섹션으로 구성됩니다.

개요

웹 서버의 폴더로 MSMDPUMP.dll 복사

IIS에 응용 프로그램 풀 및 가상 디렉터리 만들기

IIS 인증 구성 및 확장 추가

MSMDPUMP.INI 파일을 편집하여 대상 서버 설정

구성 테스트

개요

MSMDPUMP는 IIS로 로드되어 같은 컴퓨터 또는 같은 도메인 내의 원격 컴퓨터에 있는 Analysis Services 인스턴스에 대한 리디렉션을 제공하는 ISAPI 확장입니다. 연결할 각 Analysis Services 인스턴스에 대해 자체 MSMDPUMP 파일 집합을 포함하는 가상 디렉터리를 하나 만들고 구성해야 합니다. 각 MSMDPUMP 파일 집합의 구성 파일은 각 HTTP 끝점에 사용되는 Analysis Services 서버 인스턴스의 이름을 지정합니다.

IIS에서 MSMDPUMP는 TCP/IP를 통해 Analysis Services OLE DB 공급자를 사용하여 Analysis Services에 연결합니다. 네이티브 연결이 설정되려면 Analysis Services와 IIS가 동일한 도메인 또는 트러스트된 도메인에 있어야 합니다.

MSMDPUMP는 Windows 사용자 ID를 사용하여 Analysis Services에 연결합니다. 이 계정은 익명 연결을 위해 가상 디렉터리를 구성한 경우 익명 계정 또는 Windows 계정입니다. 이 계정에는 Analysis Services 서버 및 데이터베이스에 대한 적절한 데이터 액세스 권한이 있어야 합니다.

[!참고]

원격 Analysis Services 서버에 대한 클라이언트 연결을 허용하도록 Windows 방화벽에서 포트를 차단 해제해야 합니다. 자세한 내용은 Analysis Services 액세스를 허용하도록 Windows 방화벽 구성을 참조하십시오.

SSAS_HttpAccess_Pump

다음 표에는 여러 시나리오에 대해 HTTP 액세스를 사용하도록 설정할 때 추가적으로 고려해야 하는 목록이 나와 있습니다.

시나리오

구성

동일한 컴퓨터의 IIS와 Analysis Services 비교

이 구성은 기본 구성(서버 이름이 localhost), 로컬 Analysis Services OLE DB 공급자 및 NTLM과의 Windows 통합 보안을 사용하도록 허용하므로 가장 간단한 구성입니다. 클라이언트도 같은 도메인에 있다고 가정하므로 사용자 인증이 사용자의 추가 작업을 필요로 하지 않고 사용자가 인식하지 못하는 사이에 이루어집니다.

서로 다른 컴퓨터의 IIS와 Analysis Services 비교

이 토폴로지의 경우 웹 서버에 Analysis Services OLE DB 공급자를 설치해야 합니다. 또한 원격 컴퓨터에서 Analysis Services 인스턴스의 위치를 지정하도록 msmdpump.ini 파일을 편집해야 합니다.

이 토폴로지는 이중 홉 인증 단계를 추가합니다. 즉, 자격 증명이 클라이언트에서 웹 서버로 진행되고 다시 백 엔드 Analysis Services 서버로 진행됩니다. Windows 자격 증명 및 NTLM을 사용하는 경우 NTLM에서 두 번째 서버로의 클라이언트 자격 증명 위임을 허용하지 않으므로 오류가 발생합니다. 가장 일반적인 솔루션은 SSL(Secure Sockets Layer)과 함께 기본 인증을 사용하는 것이지만 MSMDPUMP 가상 디렉터리에 액세스할 때 사용자가 사용자 이름과 암호를 입력해야 합니다. 더 간단한 방법은 사용자가 자연스러운 방식으로 Analysis Services에 액세스할 수 있도록 Kerberos를 사용하도록 설정하고 Analysis Services 제한된 위임을 구성하는 것입니다.

Windows 방화벽에서 차단 해제할 포트를 고려합니다. IIS의 웹 응용 프로그램 및 원격 서버의 Analysis Services에 대한 액세스를 허용하도록 두 서버 모두에서 포트를 차단 해제해야 합니다.

클라이언트 연결이 트러스트되지 않은 도메인 또는 엑스트라넷 연결에서 시작됩니다.

트러스트되지 않은 도메인에서 시작된 클라이언트 연결의 경우 인증 제한 사항이 더 많아집니다. 기본적으로 Analysis Services는 사용자가 서버와 같은 도메인에 있도록 요구하는 Windows 통합 인증을 사용합니다. 도메인 외부에서 IIS에 연결하는 엑스트라넷 사용자가 있는 경우 서버가 기본 설정을 사용하도록 구성되면 해당 사용자에게 연결 오류가 발생합니다.

해결 방법으로 도메인 자격 증명을 사용하여 VPN을 통해 엑스트라넷 사용자를 연결할 수 있습니다. 하지만 IIS 웹 사이트에서 기본 인증과 SSL을 사용하도록 설정하는 것이 더 나을 수 있습니다.

웹 서버의 폴더로 MSMDPUMP.dll 복사

이 섹션에서는 Analysis Services 프로그램 폴더에서 OLAP 가상 디렉터리 폴더(파일 시스템에서 만든 폴더)로 MSMDPUMP 실행 파일, 구성 파일 및 리소스 파일을 복사합니다.

드라이브는 NTFS 파일 시스템용으로 포맷되어야 합니다. 사용자가 만든 폴더의 경로에 공백을 포함해서는 안 됩니다.

  1. 웹 서버에 <drive>:\inetpub\wwwroot\olap 폴더를 만듭니다.

  2. Analysis Services 컴퓨터에 있는 ISAPI 폴더의 내용을 앞서 만든 \inetpub\wwwroot\olap 폴더로 복사합니다.

    ISAPI 폴더는 <drive>:\Program Files\Microsoft SQL Server\<instance>\OLAP\bin\isapi에 있습니다. 여기에는 MSMDPUMP.DLL, MSMDPUMP.INI, 언어 리소스 파일이 포함된 Resources 폴더 등의 파일과 폴더가 들어 있습니다.

    [!참고]

    최신 SQL Server 릴리스에서는 인스턴스 이름의 형식이 변경되었습니다. SQL Server 2008 R2를 사용하는 경우 기본 인스턴스 이름은 MSAS10_50.MSSQLSERVER입니다. 이전 버전의 SQL Server를 사용하는 경우 인스턴스 이름은 설치 순서에 따라 순차적으로 지정됩니다. 즉, MSSQL.1은 첫 번째 설치된 서비스이고, MSSQL.2는 두 번째 서비스, 이런 식으로 이름이 지정됩니다. 어느 폴더에 Analysis Services 프로그램 파일이 있는지 확인하기 위해 인스턴스 폴더를 열어야 할 수 있습니다.

  3. 웹 서버의 \inetpub\wwwroot\olap\isapi 폴더에 MSMDPUMP.DLL, MSMDPUMP.INI 및 Resources 폴더가 있는지 확인합니다.

IIS에 응용 프로그램 풀 및 가상 디렉터리 만들기

HTTP 액세스를 구성하려면 먼저 펌프에 끝점을 제공하는 응용 프로그램 풀 및 가상 디렉터리를 만들어야 합니다.

응용 프로그램 풀 만들기

  1. IIS 관리자를 시작합니다. 시작을 클릭하고 실행을 가리킨 다음 Inetmgr을 입력합니다.

    SSAS_HttpAccess_Inetmgr

  2. 응용 프로그램 풀을 마우스 오른쪽 단추로 클릭하고 응용 프로그램 풀 추가를 클릭합니다. .NET Framework v2.0.50727을 사용하여, 관리되는 파이프라인 모드가 기본으로 설정된 OLAP이라는 응용 프로그램 풀을 만듭니다.

    SSAS_HttpAccess_AddAP

  3. 기본적으로 IIS는 네트워크 서비스를 보안 ID로 사용하여 응용 프로그램 풀을 만듭니다. 방금 만든 응용 프로그램 풀의 ID를 변경하려면 OLAP을 마우스 오른쪽 단추로 클릭한 다음 고급 설정을 선택합니다.

    SSAS_HttpAccess_AdvSettings

  4. ID에서 IIS가 지정한 기본 제공 계정을 클릭합니다. 사용 중인 Windows 버전에 따라 기본 제공 계정은 네트워크 서비스(스크린 샷에 표시됨) 또는 ApplicationPoolIdentity 중 하나입니다. 사용할 사용자 지정 계정으로 기본 제공 계정을 바꾸려면 이 속성의 변경 단추를 클릭합니다.

  5. 기본적으로 64비트 운영 체제에서 IIS는 32비트 응용 프로그램 사용 속성을 false로 설정합니다. Analysis Services의 64비트 설치에서 msmdpump.dll을 복사한 경우 이 설정이 64비트 IIS의 MSMDPUMP 확장에 대한 올바른 설정입니다. 32비트 설치에서 MSMDPUMP 이진을 복사한 경우에는 true로 설정해야 합니다. 이제 이 속성이 올바르게 설정되었는지 확인하십시오.

가상 디렉터리 만들기

  1. IIS 관리자에서 사이트를 열고 기본 웹 사이트(또는 펌프에 액세스하기 위해 사용하는 웹 사이트)를 마우스 오른쪽 단추로 클릭한 다음 가상 디렉터리 추가를 클릭합니다.

  2. 별칭에 OLAP을 입력합니다.

  3. 실제 경로에서 찾아보기 단추를 클릭하고 C:\inetpub\wwwroot\olap으로 이동합니다. 확인을 클릭합니다.

    SSAS_HttpAccess_AddVdir

  4. 방금 만든 OLAP 가상 디렉터리를 마우스 오른쪽 단추로 클릭하고 응용 프로그램으로 변환을 클릭합니다.

  5. 응용 프로그램 풀 옆의 응용 프로그램 추가 대화 상자에서 선택을 클릭한 다음 이전 단원에서 만든 OLAP 응용 프로그램을 선택합니다.

  6. 확인을 두 번 클릭하여 변경 내용을 적용하고 응용 프로그램을 변환합니다.

IIS 인증 구성 및 확장 추가

이 섹션에서는 방금 만든 OLAP 가상 디렉터리를 추가로 구성합니다. 인증 방법을 지정한 후 스크립트 매핑을 추가합니다. 인증 방법에 대한 자세한 내용은 IIS 인증 방법을 참조하십시오.

  1. IIS 관리자에서 사이트, 기본 웹 사이트를 차례로 연 다음 OLAP 가상 디렉터리를 선택합니다.

  2. 주 페이지의 IIS 섹션에서 인증을 두 번 클릭합니다.

    SSAS_HttpAccess_IIS

  3. Windows 통합 보안을 사용하는 경우 Windows 인증을 사용하도록 설정합니다.

    이 모드가 가장 안전하고 권장되는 모드이긴 하지만 IIS가 Microsoft Active Directory® 또는 다른 메커니즘을 사용하여 사용자 도메인 자격 증명에 액세스할 수 있어야 합니다. Analysis Services와 IIS가 서로 다른 컴퓨터에 있는 경우 Kerberos를 사용하도록 설정하고 제한된 위임을 위해 Analysis Services를 구성하는 것입니다. 이 항목에서는 가능한 모든 구성에 대해 설명하지는 않습니다.

    SSAS_HttpAccess_IISAuth

  4. 또는 클라이언트와 서버 응용 프로그램이 서로 다른 도메인에 있는 경우 기본 인증을 사용하도록 설정합니다. 이 모드에서는 사용자가 사용자 이름과 암호를 입력해야 합니다. 사용자 이름과 암호는 HTTP 연결을 통해 IIS로 전송됩니다. IIS는 제공된 자격 증명을 사용하여 사용자를 가장하려고 시도합니다. 암호가 전송되는 시스템을 구축하는 경우 통신 채널에 보안을 적용하는 방법이 반드시 있어야 합니다. IIS에서는 채널에 보안을 적용할 수 있는 도구 집합을 제공합니다. 자세한 내용은 IIS 7에서 SSQL을 설정하는 방법을 참조하십시오.

    개인 Windows 로그인 계정과 다른 자격 증명을 사용하여 웹 사이트에 액세스하는 방법을 사용자에게 제공함으로써 클라이언트에서 사용자 자격 증명을 수집하려고 할 때에는 기본 인증이 유용합니다. 기본 인증을 선택하면 IIS에서 사용자 이름 및 암호의 각 요청에 대한 HTTP 헤더를 읽습니다. 적절한 자격 증명을 찾지 못하면 IIS에서 사용자 이름과 암호를 묻는 클라이언트에 응답을 보냅니다. 클라이언트에서는 사용자에게 자격 증명을 묻는 메시지를 표시한 후 Base 64 인코딩을 사용하여 사용자 이름 및 암호를 서버로 보냅니다. 자격 증명이 인코딩되긴 하지만 암호화되지는 않으므로 안전하지 않습니다. 이런 이유로 웹 사이트에서 기본 인증과 SSL을 함께 사용하여 클라이언트에서 서버로 보내는 자격 증명을 암호화하는 것이 좋습니다.

  5. IUSR_<computername>을 통해 연결을 지원하지 않는 경우 익명 인증을 사용하지 않도록 설정합니다. 익명 인증을 사용하도록 설정한 경우, 다른 인증 방법도 사용하도록 설정했더라도 IIS는 항상 익명 인증을 가장 먼저 사용합니다.

    익명 인증을 사용하도록 설정한 경우 웹 서버의 IUSR_<computername> 계정에 Analysis Services 데이터베이스에 대한 적절한 데이터 액세스 권한이 있는지 확인해야 합니다.

    이 모드를 선택하면 펌프(msmdpump.dll)가 IUSR_<computername>의 자격 증명을 사용하여 실행됩니다. 따라서 Analysis Services에 대한 모든 연결이 IUSR_<computername> 사용자로 열립니다. 이 모드를 선택하면 IIS에 연결 중인 사용자와 Analysis Services에 연결 중인 사용자가 구분되지 않습니다. 이 모드는 사용자에게 가상 디렉터리에 대한 액세스 제어 목록을 통해 액세스 권한이 부여되거나 거부되는, 극도로 제어된 환경에서 주로 사용됩니다.

  6. OLAP 가상 디렉터리를 클릭하여 주 페이지를 엽니다. 처리기 매핑을 두 번 클릭합니다.

    SSAS_HttpAccess_IIS

  7. 페이지의 아무 곳이나 마우스 오른쪽 단추로 클릭한 다음 스크립트 매핑 추가를 선택합니다. 스크립트 매핑 추가 대화 상자에서 요청 경로로 *.dll을 지정하고, 실행 파일로 c:\inetpub\wwwroot\olap\msmdpump.dll을 지정하고, 이름으로 OLAP을 입력합니다.

    SSAS_HttpAccess_AddScript

  8. 요청 제한을 클릭합니다.

  9. 동사 탭에서 모든 동사가 선택되어 있는지 확인합니다. 확인을 클릭한 다음 확인을 다시 클릭하여 스크립트 매핑 추가 작업을 마칩니다.

    SSAS_HttpAccess_RequestRestrictions

  10. ISAPI 확장을 허용할지 묻는 메시지가 표시되면 를 클릭합니다.

    SSAS_HttpAccess_ISAPIPrompt

MSMDPUMP.INI 파일을 편집하여 대상 서버 설정

C:\inetpub\wwwroot\OLAP 폴더에 있는 msmdpump.ini 파일을 열어 파일의 내용을 살펴봅니다. 이 파일은 다음과 같아야 합니다.

<ConfigurationSettings>
<ServerName>localhost</ServerName>
<SessionTimeout>3600</SessionTimeout>
<ConnectionPoolSize>100</ConnectionPoolSize>
</ConfigurationSettings>

HTTP 액세스를 구성하는 Analysis Services 인스턴스가 로컬 컴퓨터에 있고 기본 인스턴스로 설치된 경우 이 설정을 변경할 이유가 없습니다. 그렇지 않은 경우에는 서버 이름(예: <ServerName>ADWRKS-SRV01</ServerName>)을 지정해야 합니다. 명명된 인스턴스로 설치한 서버의 경우 인스턴스 이름을 추가해야 합니다(예: <ServerName>ADWRKS-SRV01\Tabular</ServerName>).

기본적으로 Analysis Services는 TCP/IP 포트 2383에서 수신합니다. Analysis Services를 기본 인스턴스로 설치한 경우 Analysis Services가 포트 2383에서 자동으로 수신하는 방법을 인식하므로 <ServerName>의 어떤 포트도 지정할 필요가 없습니다. 하지만 Windows 방화벽에서 해당 포트에 대한 인바운드 연결을 허용해야 합니다. 자세한 내용은 Analysis Services 액세스를 허용하도록 Windows 방화벽 구성을 참조하십시오.

고정 포트에서 수신할 Analysis Services의 명명된 또는 기본 인스턴스를 구성한 경우 서버 이름에 포트 번호를 추가하고(예: <ServerName>AW-SRV01:55555</ServerName>) Windows 방화벽에서 해당 포트에 대한 인바운드 연결을 허용해야 합니다.

구성 테스트

MSMDPUMP의 연결 문자열 구문은 MSMDPUMP.dll 파일에 대한 URL입니다.

웹 응용 프로그램이 고정 포트에서 수신하는 경우 서버 이름 또는 IP 주소에 포트 번호를 추가합니다(예: http://my-web-srv01:8080/olap/msmdpump.dll 또는 http://123.456.789.012:8080/olap/msmdpump.dll).

연결을 빠르게 테스트하기 위해 Microsoft Excel 또는 SQL Server Management Studio를 사용하여 연결을 열 수 있습니다.

  • Excel의 데이터에서 연결을 클릭합니다. 외부 데이터 가져오기에서 기타 원본을 클릭한 다음 Analysis Services를 선택합니다. 서버 이름에 다음과 같이 msmdpump 확장의 HTTP 주소를 입력합니다. http://my-web-srv01/OLAP/msmdpump.dll.

  • Management Studio의 서버에 연결 대화 상자에서 서버 유형으로 Analysis Services를 선택합니다. 서버 이름에 다음과 같이 msmdpump 확장의 HTTP 주소를 입력합니다. http://my-web-srv01/OLAP/msmdpump.dll.

연결이 시작된 네트워크 환경에서 실행되는 실제 클라이언트 컴퓨터를 사용하여 좀 더 엄격한 테스트를 통해 후속 확인을 수행하십시오. Analysis Services 서버(익명 연결을 사용하도록 설정했거나 Windows에서 IIS를 통해 MSMDPUMP에 연결된 사용자를 식별하는 경우 IUSR_<computername>)에 대한 적절한 권한을 부여해야 합니다.