次の方法で共有


インターネット インフォメーション サービス (IIS) 7.0 上の Analysis Services への HTTP アクセスの構成

Analysis Services への HTTP アクセスを有効にするには、MSMDPUMP.dll を構成します。MSMDPUMP.dll は、インターネット インフォメーション サービス (IIS) で実行され、クライアント アプリケーションと Analysis Services サーバーの間で双方向にデータをポンプする ISAPI 拡張機能です。この方法は、BI ソリューションが次の機能を必要とする場合に、Analysis Services への接続の代わりに使用できます。

  • クライアント アクセスが、有効にできるポートに制限があるインターネット接続またはエクストラネット接続を経由して接続する。

  • クライアント接続が同じネットワーク内の信頼されていないドメインからの接続である。

  • HTTP 接続は許可されているが TCP/IP 接続が許可されていないネットワーク環境でクライアント アプリケーションが実行される。

  • Windows 統合セキュリティ以外の認証メソッドが必要である。つまり、HTTP アクセス用に Analysis Services を構成する際に、匿名接続および基本認証を使用できる。ダイジェスト認証、フォーム認証、および ASP.NET 認証はサポートされていません。

  • クライアント アプリケーションが Analysis Services クライアント ライブラリを使用できない (UNIX サーバーで実行されている Java アプリケーションなど)。データ アクセスに Analysis Services クライアント ライブラリを使用できない場合は、Analysis Services インスタンスへの HTTP 直接接続で SOAP および XML/A を使用できます。

このトピックでは、IIS 7.0 を使用して Analysis Services インスタンスへの HTTP アクセスをセットアップする方法について説明します。これらの手順は、IIS 7.0 にインターフェイスを持つインスタンスであれば、SQL Server 2012、SQL Server 2008 R2、SQL Server 2008、および SQL Server 2005 を含む、サポートされているすべてのバージョンまたはエディションの Analysis Services インスタンスで使用できます。HTTP アクセスは、表形式モードと多次元モードの両方のサーバーでサポートされています。

注意

認証方法のサポートは、BI スタック上のクライアント アプリケーションおよびサーバー アプリケーションごとに異なります。Analysis Services への HTTP アクセスを利用することで可能になるシナリオの詳細については、「Microsoft BI 認証と ID 委任」を参照してください。

このトピックのセクションは次のとおりです。

  • 概要

  • 前提条件

  • MSMDPUMP.dll の Web サーバー上のフォルダーへのコピー

  • IIS へのアプリケーション プールと仮想ディレクトリの作成

  • IIS 認証の構成と拡張機能の追加

  • MSMDPUMP.INI ファイルの編集による対象サーバーの設定

  • 構成のテスト

概要

MSMDPUMP は、IIS に読み込まれ、同じコンピューター上または同じドメイン内のリモート コンピューター上の Analysis Services インスタンスへのリダイレクトを提供する ISAPI 拡張機能です。この ISAPI 拡張機能を構成して、Analysis Services インスタンスへの HTTP エンドポイントを作成します。

HTTP エンドポイントごとに 1 個の仮想ディレクトリを作成し、構成する必要があります。接続先の Analysis Services インスタンスごとに、各エンドポイントに独自の 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 ファイアウォールの構成」を参照してください。

コンポーネント間の接続を示す図

次の表には、さまざまなシナリオで 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 を有効にする方法が適している場合もあります。

前提条件

IIS Web サーバーで、SQL Server 2012 用の Analysis Services OLE DB プロバイダー (MSOLAP) がインストールされていることを確認してください。このプロバイダーは、SQL Server 2012 Feature Pack からダウンロードできます。

手順 1 :MSMDPUMP ファイルの Web サーバー上のフォルダーへのコピー

作成した各 HTTP エンドポイントに、独自の MSMDPUMP ファイル セットを用意する必要があります。この手順では、Analysis Services プログラム フォルダーの MSMDPUMP 実行可能ファイル、構成ファイル、およびリソース ファイルを、IIS が実行されているコンピューターのファイル システム上に作成する新しい仮想ディレクトリ フォルダーにコピーします。

ドライブは、NTFS ファイル システム用にフォーマットされている必要があります。作成するフォルダーへのパスには、スペースを使用することはできません。

  1. コピーする必要のある以下のファイルを見つけます。MSMDPUMP.DLL、MSMDPUMP.INI、および言語リソース ファイルが保存されている Resources フォルダー。このファイルとフォルダーは、<ドライブ>:\Program Files\Microsoft SQL Server\<インスタンス>\OLAP\bin\isapi にあります。

    注意

    SQL Server の最近のリリースでは、インスタンス名の形式が変更されていることに注意してください。SQL Server 2012 を使用している場合、既定のインスタンス名は MSAS11.MSSQLSERVER です。

  2. \OLAP\bin\isapi フォルダー内のすべてのファイルをコピーします。Resources サブフォルダー内のファイルもコピーします。

  3. Web サーバーで次の新規フォルダーを作成します。<ドライブ>:\inetpub\wwwroot\OLAP

  4. この新しいフォルダーに、コピーしておいたファイルを貼り付けます。

  5. Web サーバー上の \inetpub\wwwroot\OLAP フォルダーに、次が含まれていることを確認します。MSMDPUMP.DLL、MSMDPUMP.INI、および Resources フォルダー。フォルダー構造は次のようになります。

    • <ドライブ>:\inetpub\wwwroot\OLAP\MSMDPUMP.dll

    • <ドライブ>:\inetpub\wwwroot\OLAP\MSMDPUMP.ini

    • <ドライブ>:\inetpub\wwwroot\OLAP\Resources

手順 2 :IIS へのアプリケーション プールと仮想ディレクトリの作成

次に、アプリケーション プールと、ポンプへのエンドポイントとなる仮想ディレクトリを作成します。

アプリケーション プールの作成

  1. IIS マネージャーを起動します。[スタート] ボタンをクリックし、[ファイル名を指定して実行] をポイントして「Inetmgr」と入力します。

    inetmgr exe を使用した run コマンドのスクリーンショット

  2. [アプリケーション プール] を右クリックし、[アプリケーション プールの追加] をクリックします。マネージ パイプライン モードを [クラシック] に設定し、.NET Framework v2.0.50727 を使用して、OLAP という名前のアプリケーション プールを作成します。

    [アプリケーション プールの追加] ダイアログのスクリーンショット

  3. 既定では、IIS により、セキュリティ ID として Network Service を使用するアプリケーション プールが作成されます。作成したアプリケーション プールの ID を変更するには、[OLAP] を右クリックし、[詳細設定] をクリックします。

    [詳細設定] プロパティ ページのスクリーンショット

  4. [ID] で、IIS によって指定されたビルトイン アカウントをクリックします。これは、[Network Service] (スクリーン ショットに表示されている) または [ApplicationPoolIdentity] です (使用している Windows のバージョンによって異なります)。このプロパティの [変更] をクリックして、ビルトイン アカウントを目的のカスタム アカウントに置き換えます。

  5. 既定では、64 ビット オペレーティング システムの IIS では、[32 ビット アプリケーションの有効化] プロパティは false に設定されています。Analysis Services の 64 ビット インストールから msmdpump.dll をコピーした場合、64 ビット IIS サーバーの MSMDPUMP 拡張機能の設定はこの設定で合っています。MSMDPUMP バイナリを 32 ビット インストールからコピーした場合は、このプロパティを true に設定します。このプロパティをチェックして、設定が適切かどうか確認してください。

仮想ディレクトリを作成します。

  1. IIS マネージャーで、[サイト] を開き、[既定の Web サイト] (またはポンプへのアクセスに使用する任意の Web サイト) を右クリックし、[仮想ディレクトリの追加] をクリックします。

  2. [エイリアス] に「OLAP」と入力します。

  3. [物理パス] で、参照ボタンをクリックし、C:\inetpub\wwwroot\OLAP に移動します。[OK] をクリックします。

    [仮想ディレクトリの追加] ダイアログのスクリーンショット

  4. 作成した OLAP 仮想ディレクトリを右クリックし、[アプリケーションへの変換] をクリックします。

  5. [アプリケーションの追加] ダイアログ ボックスで、アプリケーション プールの横にある [選択] をクリックし、前のセクションで作成した OLAP アプリケーション プールを選択します。

  6. [OK] を 2 回クリックして変更を適用し、アプリケーションを変換します。

手順 3 :IIS 認証の構成と拡張機能の追加

この手順では、作成した SSAS 仮想ディレクトリの詳細を進めます。認証方法を指定してから、スクリプト マップを追加します。HTTP を使用した Analysis Services でサポートされている認証方法は次のとおりです。

  • Windows 認証 (Kerberos または NTLM)

  • [匿名認証]

  • 基本認証

匿名認証は、構成が容易で Analysis Services への HTTP 接続を短時間に検証できることから、初期テストによく使用されます。わずか数回の操作で、一意のユーザー アカウントを ID として割り当て、そのアカウントに Analysis Services の権限を付与し、そのアカウントを使用してクライアント アプリケーション内のデータ アクセスを検証した後、テストの完了時に匿名認証を無効にすることができます。

また、運用環境でユーザーが Windows ユーザー アカウントを持っていない場合にも匿名認証を使用できます。ただし、次の記事で示されているベスト プラクティスに従って、ホスト システムに対する権限をロックしてください。「匿名認証を有効にする (IIS 7)」。認証は仮想ディレクトリに対して設定し、親 Web サイトには設定しないでください。アカウント アクセスのレベルをさらに下げるためです。

匿名認証を有効にした場合、HTTP エンドポイントに接続するすべてのユーザーが匿名ユーザーとして接続できるようになります。個々のユーザーの接続を監査することも、ユーザー ID を使用してモデルのデータを選択することもできません。このように、匿名認証を使用すると、モデル デザインからデータ更新、データ アクセスに至るまで、広範囲に影響が及びます。ただし、ユーザーにまだ Windows ユーザー ログインがない状況では、匿名アカウントを使用せざるを得ない場合があります。

Windows 認証は最も安全性が高いと考えられ、Active Directory を使用するネットワークの既存インフラストラクチャを活用できます。Windows 認証を効果的に使用するには、すべてのブラウザー、クライアント アプリケーション、およびサーバー アプリケーションが Windows 認証をサポートする必要があります。これは最も安全性が高く推奨されるモードですが、接続を要求しているユーザーの ID を認証できる Windows ドメイン コントローラーに IIS がアクセスできる必要があります。

Analysis Services と IIS が別々のコンピューターに配置されているトポロジの場合、ユーザー ID をリモート コンピューターの 2 番目のサービスに委任するために、一般的には Analysis Services で Kerberos 制約付き委任を有効にしますが、その際に発生するダブルホップ問題を解決する必要があります。詳細については、「Kerberos の制約付き委任のための Analysis Services の構成」を参照してください。

基本認証は、Windows ID があるものの、ユーザーが信頼されないドメインから接続しており、委任や借用による接続の使用を禁止する場合に使用されます。基本認証では、接続文字列でユーザー ID とパスワードを指定することができます。現在のユーザーのセキュリティ コンテキストを使用せず、接続文字列の資格情報を使用して、Analysis Services に接続します。Analysis Services サービスでは Windows 認証のみがサポートされるため、Analysis Services サービスに渡される資格情報はすべて、Analysis Services がホストされているドメインのメンバーである Windows ユーザーまたは Windows グループであることが必要です。

認証の種類の設定とスクリプト マップの追加

  1. IIS マネージャーで、[サイト] を開き、[既定の Web サイト] を開いて、OLAP 仮想ディレクトリを選択します。

  2. メイン ページの [IIS] セクションで、[認証] をダブルクリックします。

    IIS マネージャー メイン ページのスクリーンショット

  3. Windows 統合セキュリティを使用している場合は、[Windows 認証] を有効にします。

    Vdir 認証設定のスクリーンショット

  4. または、クライアント アプリケーションとサーバー アプリケーションが異なるドメインにある場合、[基本認証] を有効にします。このモードでは、ユーザーがユーザー名とパスワードを入力する必要があります。ユーザー名とパスワードは HTTP 接続経由で IIS に送信されます。IIS は MSMDPUMP に接続するときに、指定された資格情報を使用してユーザーの権限を借用しようとしますが、その資格情報は Analysis Services に委任されません。代わりに、このドキュメントの手順 6. で説明するように、接続の有効なユーザー名とパスワードを渡す必要があります。

    セキュリティに関する注意セキュリティに関する注意

    パスワードを送信するシステムを構築する場合は、通信チャネルをセキュリティで保護する手段が必要不可欠であることに注意してください。IIS には、チャネルをセキュリティで保護できる一連のツールが用意されています。詳細については、「IIS 7 で SSL を設定する方法」を参照してください。

  5. Windows 認証または基本認証を使用する場合は、匿名認証を無効にします。匿名認証が有効な場合、他の認証方法が有効になっていても、IIS はこの認証方法を最初に使用します。

    匿名認証では、匿名ユーザーに対して確立したユーザー アカウントとしてポンプ (msmdpump.dll) が実行されます。IIS に接続しているユーザーと Analysis Services に接続しているユーザーは区別されません。既定では、IIS は IUSR アカウントを使用しますが、ネットワークの権限を持つドメイン ユーザー アカウントに変更することもできます。IIS と Analysis Services が別々のコンピューターにある場合は、この機能が必要になります。

    匿名認証用に資格情報を構成する方法については、「匿名認証」を参照してください。

    セキュリティに関する注意セキュリティに関する注意

    通常、匿名認証は、ファイル システムのアクセス制御リストによってユーザーのアクセスが許可または拒否される、厳密に制御された環境で使用されます。ベスト プラクティスについては、「匿名認証 (IIS 7) を有効にする」を参照してください。

  6. OLAP 仮想ディレクトリをクリックして、メイン ページを開きます。[ハンドラー マッピング] をダブルクリックします。

    IIS マネージャー メイン ページのスクリーンショット

  7. ページ上の任意の場所を右クリックし、[スクリプト マップの追加] を選択します。[スクリプト マップの追加] ダイアログ ボックスで、要求パスとして「*.dll」を指定し、実行可能ファイルとして「c:\inetpub\wwwroot\OLAP\msmdpump.dll」を指定し、名前として「OLAP」を入力します。

    [スクリプト マップの追加] ダイアログ ボックスのスクリーンショット

  8. [要求の制限] をクリックします。

  9. [動詞] タブで、[すべての動詞] が選択されていることを確認します。[OK] をクリックし、[OK] をもう一度クリックして、スクリプト マップの追加を完了します。

    [要求の制限] ダイアログのスクリーンショット

  10. ISAPI 拡張機能を許可するように求めるメッセージが表示されたら、[はい] をクリックします。

    ISAPI 拡張機能追加の確認のスクリーンショット

手順 4 :MSMDPUMP.INI ファイルの編集による対象サーバーの設定

MSMDPUMP.INI ファイルを使用して、MSMDPUMP.DLL が接続する Analysis Services インスタンスを指定します。これには、ローカルまたはリモートの、既定のインスタンスまたは名前付きのインスタンスとしてインストールされているインスタンスを指定できます。

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> にポートを指定する必要はありjません。ただし、Windows ファイアウォールでそのポートへの着信接続を許可する必要があります。詳細については、「Analysis Services のアクセスを許可するための Windows ファイアウォールの構成」を参照してください。

固定ポートをリッスンするように Analysis Services の名前付きインスタンスまたは既定のインスタンスを構成している場合、サーバー名 (<ServerName>AW-SRV01:55555</ServerName> など) にポート番号を追加し、Windows ファイアウォールでそのポートへの着信接続を許可する必要があります。

手順 5 :データ アクセス権限の付与

前に説明したように、Analysis Services インスタンスへのデータ アクセス権限を付与する必要があります。各データベース オブジェクトには特定レベルの権限 (読み取り、または読み取り/書き込み) を付与するロールがあり、各ロールに Windows ユーザー ID で構成されるメンバーが割り当てられます。

権限を設定するには、SQL Server Management Studio を使用します。Database フォルダーの下にある Roles フォルダーにロールを作成し、データベース権限を指定し、Windows ユーザー アカウントまたは Windows グループ アカウントにメンバーを割り当て、特定のオブジェクトに対する読み取り権限または書き込み権限を付与することができます。モデル データを使用するが更新しないクライアント接続の場合、一般的には、キューブに対する権限は "読み取り" で十分です。

ロールの割り当ては、認証の構成方法によって変わります。

匿名

IIS の [匿名認証資格情報の編集] で指定されたアカウントをメンバーシップ一覧に追加します。詳細については、「匿名認証」を参照してください。

Windows 認証

借用または委任によって Analysis Services データを要求する Windows ユーザー アカウントまたはグループ アカウントをメンバーシップ一覧に追加します。

基本認証

接続文字列で渡される Windows ユーザー アカウントまたはグループ アカウントをメンバーシップ一覧に追加します。

権限の設定の詳細については、「オブジェクトと操作に対するアクセスの承認 (Analysis Services)」を参照してください。

手順 6 :構成のテスト

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 を使用した接続テスト

  1. Excel の [データ] タブの [外部データの取り込み] で、[その他のデータ ソース][Analysis Services] の順にクリックして、データ接続ウィザードを起動します。

  2. [サーバー名] に、msmdpump 拡張機能の HTTP アドレス (http://my-web-srv01/OLAP/msmdpump.dll) を入力します。

  3. ログオン資格情報については、Windows 統合セキュリティ、NTLM、または匿名ユーザーを使用する場合は [Windows 認証を使用する] を選択します。

    基本認証の場合は、[以下のユーザー名とパスワードを使用する] を選択し、サインオンに使用する資格情報を指定します。指定した資格情報が接続文字列として Analysis Services に渡されます。

SQL Server Management Studio を使用した接続テスト

  1. Management Studio の [サーバーへの接続] ダイアログ ボックスで、サーバーの種類として [Analysis Services] を選択します。[サーバー名] に、msmdpump 拡張機能の HTTP アドレス (http://my-web-srv01/OLAP/msmdpump.dll) を入力します。

  2. 認証には Windows 認証を使用し、Management Studio を使用するユーザーが Analysis Services 管理者であることが必要です。

AMO を使用した接続テスト

AMO を使用したプログラムによる HTTP アクセスをテストできます。それには、サーバー名の代わりにエンドポイントの URL を使用します。詳細については、フォーラムの投稿 (ドメイン/フォレストとファイアウォールの境界を越えて HTTPS で SSAS 2008 R2 データベースを同期する方法) を参照してください。

次の接続文字列の例では、基本認証を使用した HTTP(S) アクセスに使用する構文を示しています。

Data Source=https://<servername>/olap/msmdpump.dll; Initial Catalog=AdventureWorksDW2012; Integrated Security=Basic; User ID=XXXX; Password=XXXXX;

プログラムからの接続の設定の詳細については、「ADOMD.NET でのセキュリティ保護された接続の確立」を参照してください。

最後に、接続が開始されるネットワーク環境内で実行されているクライアント コンピューターを使用して、より厳密な事後テストを必ず実行するようにしてください。

関連項目

概念

Analysis Services のアクセスを許可するための Windows ファイアウォールの構成

オブジェクトと操作に対するアクセスの承認 (Analysis Services)

その他の技術情報

フォーラムの投稿 (msmdpump と基本認証を使用した HTTP アクセス)

IIS の認証方法

IIS 7 で SSL を設定する方法