Kerberos の制約付き委任のための Analysis Services の構成

Kerberos 認証用に Analysis Services を構成するのは、次のいずれかまたは両方を実現する必要がある場合です。データを照会するときに Analysis Services がユーザー ID の権限を借用する。または、Analysis Services が下位レベル サービスをユーザー ID に委任する。これらのシナリオで求められる構成要件はそれぞれ異なります。どちらのシナリオでも、構成が正しく行われたことを確認するための検証が必要になります。

ヒントヒント

Microsoft Kerberos Configuration Manager for SQL Server は、SQL Server と Kerberos に関する接続性の問題のトラブルシューティングに役立つ診断ツールです。Kerberos 認証の詳細については、「Microsoft® Kerberos Configuration Manager for SQL Server®」を参照してください。

このトピックには、次のセクションが含まれます。

  • Analysis Services によるユーザー ID の権限の借用

  • 信頼された委任のための Analysis Services の構成

  • 権限が借用された ID または委任された ID のテスト

注意

Analysis Services への接続がシングル ホップである場合や、SharePoint Secure Store Service または Reporting Services によって提供された保存された資格情報をソリューションで使用する場合、委任は必要ありません。すべての接続が Excel から Analysis Services データベースに対する直接接続である場合、または保存された資格情報に基づいている場合は、制約付き委任を構成せずに Kerberos (または NTLM) を使うことができます。

ユーザー ID を複数のコンピューター接続に渡す場合 ("ダブルホップ" と呼ばれます) は、Kerberos の制約付き委任が必要です。Analysis Services データ アクセスがユーザー ID に基づき、接続要求が委任サービスから発信される場合は、次のセクションのチェック リストを使用して、Analysis Services が元の呼び出し元の権限を借用できることを確認します。Analysis Services の認証フローの詳細については、「Microsoft BI 認証と ID 委任」を参照してください。

セキュリティのベスト プラクティスとして、制約なし委任よりも制約付き委任を常にお勧めします。制約なし委任は、(制約付き委任で明示的に定義されたサービスとは対照的に) サービス ID が下流にある任意のコンピューター、サービス、またはアプリケーションに対して別のユーザーの権��を借用できるため、重大なセキュリティ リスクになります。

Analysis Services によるユーザー ID の権限の借用

Reporting Services、IIS、SharePoint などの上位レベル サービスに Analysis Services 上のユーザー ID の権限を借用することを許可するには、これらのサービスに対して Kerberos の制約付き委任を構成する必要があります。このシナリオでは、Analysis Services は、委任サービスで提供された ID を使用して現在のユーザーの権限を借用し、そのユーザー ID のロールのメンバーシップに基づく結果を返します。

作業

説明

手順 1 :アカウントが委任に適していることを確認する

サービスの実行に使用されるアカウントの適切なプロパティが Active Directory にあることを確認します。Active Directory のサービス アカウントは、機微なアカウントとしてマークされていてはならず、委任シナリオから明確に除外されている必要があります。詳細については、「ユーザー アカウントとは」を参照してください。

重要な注意事項重要

一般的に、すべてのアカウントおよびサーバーは、同じ Active Directory ドメインか、同じフォレスト内の信頼されたドメインに属している必要があります。ただし、Windows Server 2012 はドメイン境界を越えた委任をサポートしているため、ドメイン機能レベルが Windows Server 2012 の場合、ドメインの境界を越えて Kerberos の制約付き委任を構成できます。別の方法としては HTTP アクセス用に Analysis Services を構成して、クライアント接続で IIS 認証方式を使用します。詳細については、「インターネット インフォメーション サービス (IIS) 7.0 上の Analysis Services への HTTP アクセスの構成」を参照してください。

手順 2 :SPN を登録する

制約付き委任をセットアップする前に、Analysis Services インスタンス用に SPN (Service Principle Name) を登録する必要があります。中間層サービスの Kerberos の制約付き委任を構成するときに Analysis Services SPN が必要となります。手順については、「Analysis Services インスタンスの SPN 登録」を参照してください。

SPN (Service Principle Name) は、Kerberos 認証用に構成されたドメイン内のサービスの一意の ID を指定します。通常、統合セキュリティを使用するクライアント接続は、SSPI 認証の一部として SPN を要求します。この要求は、Active Directory ドメイン コントローラー (DC) に転送されます。その際、クライアントによって示された SPN に対応する SPN が Active Directory 内に登録されている場合は、KDC によりチケットが提供されます。

手順 3 :制約付き委任を構成する

まず、使用するアカウントを検証し、そのアカウントの SPN を登録します。次に、上位レベル サービス (IIS、Reporting Services、SharePoint Web サービスなど) を制約付き委任用に構成し、委任が許可される特定のサービスとして Analysis Services SPN を指定します。

SharePoint で実行されるサービス (たとえば、Excel Services、SharePoint モードの Reporting Services) は、通常、Analysis Services の多次元データまたはテーブル データを使用するブックやレポートをホストします。これらのサービスに対して制約付き委任を構成することは一般的な構成タスクであり、Excel Services からのデータの更新をサポートするために必要です。SharePoint サービスに加え、Analysis Services データに対するダウンストリーム データ接続要求を表すと思われるその他のサービスに対する手順については、次のリンクを参照してください。

手順 4 :接続のテスト

テスト中、異なる ID でリモート コンピューターから接続し、ビジネス ユーザーと同じアプリケーションを使用して Analysis Services をクエリします。SQL Server Profiler を使用すると接続を監視できます。要求にあるユーザー ID を確認する必要があります。詳細については、このセクションの「権限が借用された ID または委任された ID のテスト」を参照してください。

信頼された委任のための Analysis Services の構成

Kerberos の制約付き委任用に Analysis Services を構成すると、サービスは、下位レベル サービス (リレーショナル データベース エンジンなど) のクライアント ID の権限を借用して、クライアントが直接接続されているかのようにデータを照会できます。

Analysis Services の委任シナリオは、DirectQuery 用に構成されたテーブル モデルに限られます。これは、委任された資格情報を Analysis Services が別のサービスに渡すことができる唯一のシナリオです。前のセクションで説明した SharePoint のシナリオなど、他のすべてのシナリオでは、Analysis Services は委任チェーンの受信側にあります。DirectQuery の詳細については、「DirectQuery モード (SSAS テーブル)」を参照してください。

注意

一般に、ROLAP ストレージ、処理操作、またはリモート パーティションへのアクセスでは、何らかの形で制約付き委任が必要になるという誤解があります。これは正しくありません。これらの操作は、いずれもサービス アカウント (処理アカウントとも呼ばれる) が自身のために直接実行します。Analysis Services では、このような操作の権限がサービス アカウントに直接付与される (たとえば、リレーショナル データベースに対する db_datareader 権限が付与され、サービスがデータを処理できるようになる) ことから、これらの操作に関して委任は必要ありません。サーバーの操作と権限の詳細については、「サービス アカウントの構成 (Analysis Services)」をご覧ください。

このセクションでは、信頼された委任用に Analysis Services を設定する方法について説明します。このタスクを完了した後は、表形式ソリューションで使われる DirectQuery モードをサポートするため、Analysis Services で委任された資格情報を SQL Server に渡すことができます。

開始前の準備:

  • Analysis Services が開始されていることを確認します。

  • Analysis Services に対して登録されている SPN が有効であることを確認します。手順については、「Analysis Services インスタンスの SPN 登録」を参照してください。

両方の前提条件が満たされたら、次の手順を実行します。制約付き委任を設定するには、ドメイン管理者である必要があります。

  1. [Active Directory ユーザーとコンピューター] で、Analysis Services サービスが実行されているサービス アカウントを見つけます。サービス アカウントを右クリックし、[プロパティ] を選択します。

    わかりやすくするために、以降のスクリーン ショットでは、OlapSvc と SQLSvc を使用して Analysis Services と SQL Server をそれぞれ表しています。

    OlapSvc は、SQLSvc への制約付きの委任用に構成されるアカウントです。このタスクを完了すると、データを要求するときに元の呼び出し元の権限を借用して、サービス チケットの委任された資格情報を SQLSvc に渡す権限が OlapSvc に与えられます。

  2. [委任] タブで、[指定されたサービスへの委任でのみこのユーザーを信頼する] を選択し、[Kerberos のみを使う] を選択します。Analysis Services による資格情報の委任を許可するサービスを指定するために、[追加] をクリックします。

    [委任] タブは、ユーザー アカウント (OlapSvc) がサービス (Analysis Services) に割り当てられ、このサービスの SPN が登録されている場合にのみ表示されます。SPN を登録するには、このサービスが実行されている必要があります。

    Active Directory の [アカウントのプロパティ] ページ

  3. [サービスの追加] ページで、[ユーザーまたはコンピューター] をクリックします。

    Active Directory の [サービスの追加] ページ

  4. [ユーザーまたはコンピューターの選択] ページで、Analysis Services のテーブル モデル データベースにデータを提供する SQL Server インスタンスを実行するために使用するアカウントを入力します。[OK] をクリックして、サービス アカウントを受け入れます。

    目的のアカウントを選択できない場合は、SQL Server が実行されていて、そのアカウント用に SPN が登録されていることを確認します。データベース エンジンの SPN の詳細については、「Kerberos 接続用のサービス プリンシパル名の登録」を参照してください。

    Active Directory でのユーザーまたはコンピューターの選択

  5. SQL Server インスタンスが [サービスの追加] に表示されます。このアカウントを使用している他のサービスも一覧に表示されます。使用する SQL Server インスタンスを選択します。[OK] をクリックして、インスタンスを受け入れます。

    Active Directory でのサービスの追加

  6. 次のスクリーン ショットに示すような Analysis Services サービス アカウントのプロパティ ページが表示されます。[OK] をクリックして変更を保存します。

    設定済みの [アカウントのプロパティ] ページ

  7. 異なる ID を使用してリモート クライアント コンピューターから接続して委任が成功するかどうかをテストし、テーブル モデルに対してクエリを実行します。要求のユーザー ID は、SQL Server Profiler で確認できます。

権限が借用された ID または委任された ID のテスト

データを照会しているユーザーの ID を監視するには、SQL Server Profiler を使用します。

  1. Analysis Services インスタンスで SQL Server Profiler を開始し、新しいトレースを開始します。

  2. [イベントの選択] で、[Security Audit] セクションの [Audit Login] および [Audit Logout] のチェック ボックスがオンになっていることを確認します。

  3. リモート クライアント コンピューターから、アプリケーション サービス (SharePoint、Reporting Services など) を介して Analysis Services に接続します。Audit Login イベントに、Analysis Services に接続しているユーザーの ID が表示されます。

徹底的なテストを行うには、ネットワーク上の Kerberos 要求と応答を取得できるネットワーク監視ツールを使用する必要があります。このタスクには、Kerberos 用にフィルター処理されたネットワーク モニター ユーティリティ (netmon.exe) を使用できます。Kerberos 認証をテストするための Netmon 3.4 などのツールの使用方法については、「Kerberos 認証を構成する: コア構成 (SharePoint Server 2010)」をご覧ください。

また、Active Directory オブジェクトのプロパティ ダイアログ ボックスの [委任] タブに含まれる各オプションの詳細については、「The Most Confusing Dialog Box in Active Directory」をご覧ください。この記事では、LDP を使ったテスト方法とテスト結果の解釈方法についても説明されています。

関連項目

概念

Analysis Services への接続

Analysis Services インスタンスの SPN 登録

接続文字列プロパティ (Analysis Services)

その他の技術情報

Microsoft BI 認証と ID 委任

Kerberos を使用した相互認証