IIS 7.0 上の SQL Server Analysis Services への HTTP アクセスの構成
Analysis Services への HTTP アクセスを有効にするには、MSMDPUMP.dll を構成します。MSMDPUMP.dll は、インターネット インフォメーション サービス (IIS) を実行し、クライアント アプリケーションと Analysis Services サーバーの間で双方向にデータを送る ISAPI 拡張機能です。この方法は、OLAP ソリューションが次の機能を必要とする場合に 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 インスタンスで使用できます。
このトピックのセクションは次のとおりです。
概要
Web サーバー上のフォルダーへの MSMDPUMP.dll のコピー
IIS へのアプリケーション プールと仮想ディレクトリの作成
IIS 認証の構成と拡張機能の追加
MSMDPUMP.INI ファイルを編集して対象サーバーを設定する
構成のテスト
概要
MSMDPUMP は ISAPI 拡張機能で、IIS に読み込むと同じコンピューター上または同じドメイン内のリモート コンピューター上の Analysis Services インスタンスにリダイレクトできるようになります。接続する Analysis Services インスタンスごとに、それぞれ MSMDPUMP ファイルの独自のセットがある仮想ディレクトリを作成および構成する必要があります。MSMDPUMP ファイルの各セットにある構成ファイルは、各 HTTP エンドポイントに使用される Analysis Services サーバー インスタンスの名前を指定します。
IIS で MSMDPUMP は、Analysis Services OLE DB プロバイダーを使用して TCP/IP 経由で Analysis Services に接続します。ネイティブ接続を正常に確立するには、Analysis Services と IIS の両方が同じドメイン内にあるか、または信頼されているドメイン内にある必要があります。
MSMDPUMP が Analysis Services に接続するときは、Windows ユーザー ID が使用されます。このアカウントは、匿名接続の仮想ディレクトリを構成している場合は匿名アカウント、それ以外の場合は Windows ユーザー アカウントになります。アカウントには、Analysis Services サーバーおよびデータベースでの適切なデータ アクセス権限が与えられている必要があります。
注 |
|---|
リモートの Analysis Services サーバーへのクライアント接続を許可するため、Windows ファイアウォールでポートのブロックを忘れずに解除してください。詳細については、「Analysis Services アクセスに対して Windows ファイアウォールを構成する」を参照してください。 |
.gif)
次の表に、さまざまなシナリオで HTTP アクセスを有効にする場合のその他の検討事項を示します。
シナリオ |
構成 |
|---|---|
IIS と Analysis Services が同じコンピューター上にある場合 |
既定の構成 (サーバー名は localhost)、ローカルの Analysis Services OLE DB プロバイダー、および NTLM を使用した Windows 統合セキュリティを使用できるため、最も簡単な構成です。クライアントが同じドメインにあることを前提としているため、ユーザー認証をユーザーが認識することはなく、追加の作業も必要ありません。 |
IIS と Analysis Services が異なるコンピューター上にある場合 |
このトポロジでは、Web サーバーに Analysis Services OLE DB プロバイダーをインストールする必要があります。さらに、msmdpump.ini ファイルを編集してリモート コンピューター上の Analysis Services インスタンスの場所を指定する必要があります。 このトポロジでは、ダブルホップ認証手順が追加されます。この場合、資格情報がクライアントから Web サーバーを経由してバックエンドの Analysis Services サーバーまで到達する必要があります。Windows 資格情報と NTLM を使用している場合、NTLM では 2 番目のサーバーへのクライアント資格情報の委任が許可されないためにエラーが発生します。最も一般的なソリューションは、SSL (Secure Sockets Layer) で基本認証を使用する方法です。ただし、この場合、ユーザーは MSMDPUMP 仮想ディレクトリにアクセスするときにユーザー名とパスワードを入力する必要があります。さらにわかりやすい方法として、Kerberos を有効にして Analysis Services の制約付き委任を構成することで、ユーザーが認識することなく Analysis Services にアクセスできるようにする方法もあります。 Windows ファイアウォールでどのポートのブロックを解除するかを検討します。両方のサーバーでポートのブロックを解除して、IIS 上の Web アプリケーション、およびリモート サーバー上の Analysis Services にアクセスできるようにする必要があります。 |
クライアント接続が信頼されていないドメインからの接続、またはエクストラネット接続の場合 |
信頼されていないドメインからのクライアント接続の場合、認証にさらに厳しい制限が導入されます。既定では、Analysis Services は、Windows 統合認証を使用します。この認証では、ユーザーはサーバーと同じドメインにいる必要があります。既定の設定を使用するようにサーバーが構成されている場合、エクストラネット ユーザーがドメインの外から IIS に接続しようとすると接続エラーが表示されます。 対処方法として、エクストラネット ユーザーがドメインの資格情報を使用して VPN 経由で接続する方法がありますが、IIS Web サイト上で基本認証と SSL を有効にする方法をお勧めします。 |
Web サーバー上のフォルダーへの MSMDPUMP.dll のコピー
このセクションでは、Analysis Services プログラム フォルダーの MSMDPUMP 実行可能ファイル、構成ファイル、およびリソース ファイルをファイル システム上に作成した OLAP 仮想ディレクトリ フォルダーにコピーします。
ドライブは、NTFS ファイル システム用にフォーマットされている必要があります。作成するフォルダーのパスには、スペースを使用できません。
Web サーバー上に <ドライブ>:\inetpub\wwwroot\olap というフォルダーを作成します。
Analysis Services のコンピューターにある ISAPI フォルダーの内容を作成した \inetpub\wwwroot\olap フォルダーにコピーします。
ISAPI フォルダーは、<ドライブ>:\Program Files\Microsoft SQL Server\<インスタンス>\OLAP\bin\isapi にあります。このフォルダーには、MSMDPUMP.DLL、MSMDPUMP.INI、および言語リソース ファイルが保存されている Resources フォルダーが含まれています。
注SQL Server の最近のリリースでは、インスタンス名の形式が変更されていることに注意してください。SQL Server 2008 R2 を使用している場合、既定のインスタンス名は MSAS10_50.MSSQLSERVER です。以前のバージョンの SQL Server を使用している場合、インスタンス名は最初にインストールされたサービスが MSSQL.1、2 番目にインストールされたサービスが MSSQL.2 のように、インストール順に順番に作成されます。インスタンス フォルダーを開いてどのフォルダーに Analysis Services のプログラム ファイルが含まれているかを確認する必要がある場合があります。
Web サーバー上の \inetpub\wwwroot\olap\isapi フォルダーに MSMDPUMP.DLL、MSMDPUMP.INI、および Resources フォルダーが含まれていることを確認します。
IIS へのアプリケーション プールと仮想ディレクトリの作成
HTTP アクセスの構成は、アプリケーション プールと、ポンプにエンドポイントを提供する仮想ディレクトリの作成から開始します。
アプリケーション プールの作成
IIS マネージャーを起動します。[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックして「Inetmgr」と入力します。
.gif)
[アプリケーション プール] を右クリックし、[アプリケーション プールの追加] をクリックします。マネージ パイプライン モードを [クラシック] に設定し、.NET Framework v2.0.50727 を使用して、OLAP という名前のアプリケーション プールを作成します。
.gif)
既定では、IIS により、セキュリティ ID として Network Service を使用するアプリケーション プールが作成されます。作成したアプリケーション プールの ID を変更するには、[OLAP] を右クリックし、[詳細設定] をクリックします。
.gif)
[ID] で、IIS によって指定されたビルトイン アカウントをクリックします。これは、[Network Service] (スクリーン ショットに表示されている) または [ApplicationPoolIdentity] です (使用している Windows のバージョンによって異なります)。このプロパティの [変更] をクリックして、ビルトイン アカウントを使用するカスタム アカウントに置き換えます。
既定では、64 ビット オペレーティング システムの IIS では、[32 ビット アプリケーションの有効化] プロパティは false に設定されます。Analysis Services の 64 ビット インストールから msmdpump.dll をコピーした場合は、この設定が 64 ビット IIS サーバーの MSMDPUMP 拡張機能の正しい設定です。MSMDPUMP バイナリを 32 ビット インストールからコピーした場合、このプロパティを true に設定します。このプロパティの設定が適切かどうかを確認してください。
仮想ディレクトリの作成
IIS マネージャーで、[サイト] を開き、[既定の Web サイト] (またはポンプへのアクセスに使用する任意の Web サイト) を右クリックし、[仮想ディレクトリの追加] をクリックします。
[エイリアス] に「OLAP」と入力します。
[物理パス] で、参照ボタンをクリックし、C:\inetpub\wwwroot\olap に移動します。[OK] をクリックします。
.gif)
作成した OLAP 仮想ディレクトリを右クリックし、[アプリケーションへの変換] をクリックします。
[アプリケーションの追加] ダイアログ ボックスで、アプリケーション プールの横にある [選択] をクリックし、前のセクションで作成した OLAP アプリケーション プールを選択します。
[OK] を 2 回クリックして、変更を適用し、アプリケーションを変換します。
IIS 認証の構成と拡張機能の追加
このセクションでは、作成した OLAP 仮想ディレクトリの構成を進めます。認証方法を指定して、スクリプト マップを追加します。認証方法の詳細については、「IIS の認証方法」を参照してください。
IIS マネージャーで、[サイト] を開き、[既定の Web サイト] を開いて、OLAP 仮想ディレクトリを選択します。
メイン ページの [IIS] セクションで、[認証] をダブルクリックします。
.gif)
Windows 統合セキュリティを使用している場合は、[Windows 認証] を有効にします。
このモードが最も安全性が高く推奨されますが、Microsoft Active Directory® などのメカニズムを使用して IIS がユーザー ドメイン資格情報にアクセスできる必要があります。Analysis Services と IIS が異なるコンピューター上にある場合、Kerberos を有効にして Analysis Services の制約付き委任を構成する必要があります。可能なすべての構成については、このトピックでは説明しません。
.gif)
または、クライアント アプリケーションとサーバー アプリケーションが異なるドメインにある場合、[基本認証] を有効にします。このモードでは、ユーザーがユーザー名とパスワードを入力する必要があります。ユーザー名とパスワードは HTTP 接続経由で IIS に送信されます。IIS は入力された資格情報を使用してユーザーの権限の借用を行います。パスワードを送信するシステムを構築する場合は、通信チャネルをセキュリティで保護する手段が必要不可欠であることに注意してください。IIS には、チャネルをセキュリティで保護できる一連のツールが用意されています。詳細については、「IIS 7.0 で SSL を設定する方法」を参照してください。
基本認証は、クライアントからユーザーの資格情報を収集する場合に役立ちます。この認証方法を使用すると、ユーザーは個人の Windows ログイン アカウントとは異なる資格情報を使用して Web サイトにアクセスできます。基本認証を選択した場合、IIS は各要求の HTTP ヘッダーのユーザー名とパスワードを読み取ります。適切な資格情報がない場合、IIS はユーザー名とパスワードを要求する応答をクライアントに送信します。クライアントでは、ユーザーに資格情報を要求するプロンプトが表示され、ユーザー名とパスワードは Base64 エンコードを使用してサーバーに送信されます。資格情報はエンコードされますが、暗号化されないため、セキュリティで保護されていません。このため、Web サイトでは基本認証と SSL を組み合わせて使用して、クライアントがサーバーに送信する資格情報を暗号化することを強くお勧めします。
IUSR_<computername> を使用した接続をサポートしている場合を除き、[匿名認証] を無効にします。匿名認証を有効にすると、他の認証方法が有効になっている場合でも、IIS は常にこの認証方法を最初に使用します。
匿名認証を有効にする場合、Web サーバー上の IUSR_<computername> アカウントに Analysis Services データベースでの適切なデータ アクセス権限があることを確認してください。
このモードを選択すると、ポンプ (msmdpump.dll) は IUSR_<computername> の資格情報を使用して実行されます。そのため、Analysis Services への接続はすべて IUSR_<computername> ユーザーとして開かれます。このモードを選択した場合、IIS に接続しているユーザーと Analysis Services に接続しているユーザーは区別されません。このモードは通常、仮想ディレクトリのアクセス制御リストを使用してアクセスが許可または拒否される厳密に制御された環境で使用されます。
OLAP 仮想ディレクトリをクリックして、メイン ページを開きます。[ハンドラー マッピング] をダブルクリックします。
.gif)
ページ上の任意の場所を右クリックし、[スクリプト マップの追加] をクリックします。[スクリプト マップの追加] ダイアログ ボックスで、要求パスとして「*.dll」を指定し、実行可能ファイルとして「c:\inetpub\wwwroot\olap\msmdpump.dll」を指定し、名前として「OLAP」を入力します。
.gif)
[要求の制限] をクリックします。
[動詞] タブで、[すべての動詞] が選択されていることを確認します。[OK] をクリックし、[OK] をもう一度クリックして、スクリプト マッピングの追加を完了します。
.gif)
ISAPI 拡張機能を許可するように求めるメッセージが表示されたら、[はい] をクリックします。
.gif)
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 です。
Web アプリケーションが固定ポートをリッスンしている場合、サーバー名または 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 サーバーでの適切なアクセス権限を付与します (匿名接続を有効にする場合は IUSR_<computername>、または IIS を経由して MSMDPUMP に接続するユーザーの Windows ユーザー ID)。
関連項目