SQL Server Reporting Services の場合の ID 委任 (SharePoint Server 2010)
適用先: SharePoint Server 2010
トピックの最終更新日: 2016-11-30
このシナリオでは、SharePoint 統合モードで実行されているスケール アウトされた構成で、ロード バランス型 SQL Server Reporting Services (SSRS) サーバーのペアを構成します。サーバーは、Kerberos 認証を受け入れるように構成され、認証をバックエンド SQL Server クラスターに委任します。
このシナリオでは、SharePoint Server ファームと Reporting Services データ ソースが同じドメイン内にあるので、バックエンド データ ソースへの ID 委任を許可するように Kerberos 制限付き委任を構成します。同じフォレスト内の他のドメインのデータ ソースで認証する必要がある場合は、基本 (制限なし) Kerberos 委任を構成する必要があります。Reporting Services は C2WTS を利用しないので、基本委任を使用できます。
注意
Windows Server 2008 にインストールする場合は、Kerberos 認証用に次の修正プログラムのインストールが必要になる可能性があります。
Kerberos 認証は 0X80090302 または 0x8009030f、AES アルゴリズムが使用するとき Windows Server 2008 や Windows Vista を実行がコンピューターには、エラー コードと共に失敗します。 (https://support.microsoft.com/kb/969083/ja-jp)
シナリオの依存関係
シナリオ 1: コア構成
シナリオ 2: SQL OLTP 用の Kerberos 認証
(オプション) シナリオ 3: SQL Analysis Services の Kerberos 認証
構成チェックリスト
構成の領域 | 説明 |
---|---|
Active Directory |
SSRS サービス アカウントを作成する Kerberos 制限付き委任を構成する |
SQL Server Reporting Services |
ロード バランス型のスケール アウト モードで SSRS をインストールして構成する Web.Config を変更する ReportingServer.config を変更する |
SharePoint Server を構成する |
Reporting Services 統合を構成する レポート サーバーを統合に追加する サーバーの既定値を設定する |
構成を確認する |
レポートのドキュメント ライブラリを作成する Reporting Services のサイト コレクション設定を構成する SQL Server Business Intelligence Studio でテスト レポートを作成して公開する Internet Explorer でテスト レポートを表示する |
シナリオ環境の詳細
このシナリオでは、Internet Information Services (IIS) アプリケーション プール サービス アカウントは、SQL Server Reporting Services (SSRS) サービスに委任するように構成されています。SSRS サービス アカウントは、資格情報を SQL Server サービスに委任するように構成されています。SharePoint 統合モードの SQL Server Reporting Services では、ファーム内クレーム認証を利用しません。委任された認証に対しては Kerberos 認証が必要です。詳細については、「要求認証と Reporting Services」を参照してください。
クロスドメイン Kerberos 委任
この例では、SSRS の接続先データ ソースは、SSRS サーバーと同じドメインにありますが、状況によっては、SSRS が存在するドメイン外のデータ ソースへのアクセスが必要になる場合があります。クロスドメインの委任によって認証するには、SSRS サービス アカウントで基本 (制限なし) 委任を構成する必要があります。これが可能なのは、SSRS サービスは Claims to Windows Token Service (C2WTS) に依存しておらず、Kerberos 制限付き委任によるプロトコルの移行が不要なためです。また、基本委任を使用しても、クロスフォレスト委任を行うことはできません。
構成手順
DNS を構成する
環境内で SSRS NLB サーバー グループの DNS を構成します。この例では、2 台の SSRS サーバー、VMSSRS01 および VMSSRS02 を使用しています。このサーバーはロード バランスされ、同じ NLB VIP (192.168.24.180/24) に解決されます。VIP はホスト FarmReports にマップされ、URL は http://FarmReports です。
DNS の構成方法に関する一般的な情報については、「Managing DNS Records (英語)」を参照してください。
SSRS ホストに対して新しい DNS A レコードを構成します。この例では、ロード バランスされた VIP に解決するようにホスト FarmReports が構成されています。
Active Directory ディレクトリ サービス
SSRS サービス アカウントを作成する
ベスト プラクティスとして、SQL Server Reporting Services は、独自のドメイン ID で実行する必要があります。この例では、次のアカウントが作成されました。
サービス | サービス ID |
---|---|
SQL Server Reporting Services |
vmlab\svcSQLRS |
サービス プリンシパル名を構成する
Kerberos 認証を使用して SSRS が外部データ ソースに接続し認証できるように、Report Server Web Service と Report Manager サービス アカウント、および外部データ ソースのサービスアカウントでは、サービス プリンシパル名が構成されている必要があります。SharePoint Server Web アプリケーションおよび SQL Server サービス アカウントで、必要な SPN を構成および検証する場合は、この一連の記事のシナリオ 1 および 2 (「コア構成」と「SQL OLTP 用の Kerberos 認証」) を参照してください。SSRS サーバーについて、次の SPN が定義されました。
DNS ホスト | IIS App プール ID | サービス プリンシパル名 |
---|---|---|
FarmReports.vmlab.local |
vmlab\svcSQLRS |
HTTP/FarmReports HTTP/ FarmReports.vmlab.local |
この例では、次のコマンドが実行されました。
SetSPN -S HTTP/FarmReports vmlab\svcSQLRS
SetSPN -S HTTP/FarmReports.vmlab.local vmlab\svcSQLRS
委任を構成する
Kerberos 委任は、SSRS によってクライアントの ID がバックエンド データ ソースに委任されるように構成されている必要があります。この例では、SSRS は、クライアントの ID を使用して SQL Server トランザクション データベースからデータを照会するので、Kerberos 委任が必要です。このシナリオではプロトコルの移行が不要なので、Kerberos 制限付き委任 (KCD) は必須ではありませんが、KCD はベスト プラクティスとして構成されています。
SSRS サービスを実行している SSRS サービス アカウントは、資格情報を各バックエンド サービスに委任できるように信頼されている必要があります。この例では、次の委任パスが必要です。
プリンシパルの種類 | プリンシパル名 | サービスへの委任 |
---|---|---|
ユーザー |
Vmlab\svcPortal10App |
HTTP/FarmReports HTTP/FarmReports.vmlab.local |
ユーザー |
Vmlab\svcSQLRS |
MSSQLSVC/MySqlCluster.vmlab.local:1433 |
オプションで、Analysis Services データ ソースに対してレポートする場合は、次の委任パスを構成します。
プリンシパルの種類 | プリンシパル名 | サービスへの委任 |
---|---|---|
ユーザー |
Vmlab\svcSQLRS |
MSOLAPSvc.3/MySqlCluster.vmlab.local |
制限付き委任を構成するには
Active Directory ユーザーとコンピューターで、Active Directory オブジェクトのプロパティを開きます。
[委任] タブを表示します。
[指定されたサービスへの委任でのみこのユーザーを信頼する] を選択します。
注意
SSRS サービス アカウントについては、同じフォレスト内にありながら、SSRS サーバーが存在するドメイン外のデータ ソースで認証する必要がある場合は、制限付き委任ではなく基本委任を構成します。このように構成するには、[任意のサービスへの委任でこのコンピューターを信頼する] を選択します。クロスフォレスト Kerberos 委任を行うことはできません。
必要に応じて、[任意の認証プロトコルを使う] を選択します。これにより、プロトコルの移行が有効になります。
[追加] をクリックして、委任先のサービス プリンシパルを選択します。
[ユーザーまたはコンピューター] を選択します。
委任するサービスを実行しているサービス アカウントを選択します。この例では、SQL Server Reporting Service のサービス アカウントです。
注意
選択したサービス アカウントには、SPN が適用されている必要があります。この例では、このアカウント (HTTP/FarmReports.vmlab.local) の SPN はシナリオで既に構成済みです。
[OK] をクリックします。次のページで委任する SPN を選択するように求められます。
サービスまたは [すべて選択] をクリックし、[OK] をクリックします。
これで、[このアカウントが委任された資格情報を提示できるサービス] リストに選択した SPN が表示されるはずです。
このセクションで既に特定した各委任パスで、これらの手順を繰り返します。SQL Server Reporting Services サービス アカウントから 1 つ以上のバックエンド データ ソース (このシナリオでは SQL OLTP または SQL AS) への委任を構成する必要があります。
注意
SSRS サービス アカウントについては、同じフォレスト内にありながら、SSRS サーバーが存在するドメイン外のデータ ソースで認証する必要がある場合は、制限付き委任ではなく基本委任を構成します。このように構成するには、[任意のサービスへの委任でこのコンピューターを信頼する] を選択します。クロスフォレスト Kerberos 委任を行うことはできません。
SQL Server でサービスを実行しているサービス アカウントの MSSQLSVC SPN を確認する (シナリオ 2 で実行)
以下の SetSPN コマンドを使用して、Analysis Services サービス アカウント (vmlab\svcSQL) の SPN が存在することを確認してください。
SetSPN -L vmlab\svcSQL
以下のように表示されます。
MSSQLSVC/MySqlCluster MSSQLSVC/MySqlCluster.vmlab.local:1433
SQL Server Analysis Services サーバーで SSAS サービスを実行しているサービス アカウントの MSOLAPSvc.3 SPN を確認する (シナリオ 3 で実行)
以下の SetSPN コマンドを使用して、SQL Server サービス アカウント (vmlab\svcSQLAS) の SPN が存在することを確認してください。
SetSPN -L vmlab\svcSQLAS
以下のように表示されます。
MSOLAPSvc.3/MySqlCluster MSOLAPSvc.3/MySqlCluster.vmlab.local
SQL Server Reporting Services
SharePoint Server 2010 をインストールする
SQL Server Reporting Services では、SharePoint Server 2010 を各 SSRS サーバーにインストールし、SharePoint 統合モードで SSRS を実行する必要があります。SharePoint Server 2010 を各レポート サーバーにインストールし、各サーバーを SharePoint Server ファームに参加させます。
ロード バランス型のスケール アウト モードで SSRS をインストールして構成する
このドキュメントでは、ロード バランス型のスケール アウト構成で SQL Server Reporting Services を構成する方法について段階ごとに詳しく説明しません。SSRS をインストールする方法の詳細については、「SharePoint 統合モードでの Reporting Services の配置トポロジ」を参照してください。SSRS をインストールしたら、以下に示す追加の SSRS 構成手順を実行して、インストールを完了させてください。
SSRS サーバーで Web.config を変更する
各 SSRS サーバーの web.config ファイルに対して以下の変更を行う必要があります。web.config ファイルは、SSRS がインストールされている Program Files ディレクトリにあります。
<machineKey> 要素を追加する
ロード バランスされた構成の SSRS サーバーでは、すべてのサーバーで同じコンピューター キーが必要です。コンピューター キー要素は、web.config で <system.web>
要素の子として追加される必要があります。コンピューター キーの例を以下に示します。
<machineKey
validationKey="54AEBD3BC893726E9B84D30F4970CB58F2086C2DAEE2F8D34A65A0632F4676DDBBC38779F2972C6596931E
13BD07A772BD4B9395BE38A43E461079E45D594E53"
decryptionKey=""
validation="SHA1"
decryption="AES"
/>
重要
この例の環境のサンプルのコンピューター キーは使用しないでください。使用している環境に合わせて独自のキー値を生成してください。
ReportingServer.config を変更する
各 SSRS サーバーの ReportingServer.config ファイルに対して以下の変更を行う必要があります。ReportingServer.config ファイルは、SSRS がインストールされているプログラム ファイル ディレクトリにあります。
Kerberos 認証を有効にする
Kerberos 認証を有効にするには、認証の種類を "RSWindowsNegotiate" に設定し、<AuthenticationTypes/>
要素を変更して、<RSWindowsNegotiate/>
を追加します。
<AuthenticationTypes>
<RSWindowsNegotiate/>
</AuthenticationTypes>
URL ルートを変更する
レポート サーバーの URL を、ReportingServer.Config の <service>
タグにある <UrlRoot>
タグに追加します。
<UrlRoot>http://FarmReports/reportserver</UrlRoot>
レジストリで BackConnectionHostNames を構成する
SQL Server Reporting Services が単一コンピューターで互いに認証できるように、NTLM ループバック検出に対処する必要があります。ループバック検出を無効にするのではなく、各 SSRS サーバーで BackConnectionHostNames 値を構成することをお勧めします。BackConnectionHostNames の詳細については、「SQL Server 2008 Reporting Services の使用時にエラー メッセージが表示される」を参照してください。
この例では、BackConnectionHostNames に対して以下の値を構成します。
FarmReports
FarmReports.vmlab.local
BackConnectionHostNames 値を設定したら、SSRS サーバーを再起動します。
SharePoint Server を構成する
SSRS のファーム構成オプションは、サーバーの全体管理にあります。SharePoint Server 2010 では、SSRS 管理および Web パーツ用に SSRS コンポーネントを個別にインストールする必要がありません。SSRS ファーム オプションにアクセスするには、サーバーの全体管理に移動し、[一般的なアプリケーションの設定] セクションの [Reporting Services] を確認します。
Web アプリケーションのコンテンツ データベースに Reporting Services サービス アカウント権限を与える
SharePoint 統合モードで SQL Server Reporting Services を構成するには、Reporting Services サービス アカウントが、レポートをホストする Web アプリケーションのコンテンツ データベースにアクセスできるようにする必要があります。この例では、Reporting Services アカウントが、Windows PowerShell を使用して "ポータル" Web アプリケーションのコンテンツ データベースにアクセスできるようにします。
SharePoint 2010 管理シェルから以下のコマンドを実行します。
$w = Get-SPWebApplication -Identity http://portal
$w.GrantAccessToProcessIdentity("vmlab\svcSQLRS")
Reporting Services 統合を構成する
[Reporting Service 統合] ダイアログ ボックスで、レポート サーバーのロード バランス URL を指定します。また、[すべての既存のサイト コレクションで機能をアクティブ化する] オプションを選択して、サイト コレクション内の Reporting Services 機能を自動的にアクティブにします。
各レポート サーバーを統合に追加する
[レポート サーバーを統合に追加] ダイアログ ボックスで、Reporting Services NLB グループの各ノードを指定します。このダイアログ ボックスは、統合に追加するサーバーごとに開く必要があります。1 回の操作で複数のサーバーを追加することはできません。
サーバーの既定値を設定する
この時点で、SSRS 統合が構成されているはずです。構成を検証するには、[サーバーの既定値] ページを開きます。このドキュメントの例では、変更は必要ありません。
構成を確認する
レポートのドキュメント ライブラリを作成する
ドキュメント ライブラリを作成して、SharePoint サイトで SSRS レポートをホストします。この例では、http://portal/reports に "reports" というドキュメント ライブラリが存在することを前提としています。
Reporting Services のサイト コレクション設定を検証する
ブラウザーで、SSRS レポートのドキュメント ライブラリをホストしているサイトの [サイトの設定] に移動します。[サイトの設定] には、[Reporting Services] という新しいカテゴリが表示されているはずです。
サイト コレクション機能の一覧に Reporting Services 機能が表示されていない場合は、その機能をサーバーの全体管理からアクティブ化しなければならない可能性があります。詳細については、「方法: サイトの設定でレポート サーバー機能をアクティブ化する」(https://go.microsoft.com/fwlink/?linkid=196878&clcid=0x411) を参照してください。
[Reporting Services のサイト設定] リンクをクリックし、設定にアクセスできることを確認します。
注意
このドキュメントでは、Reporting Services のサイト設定を変更する必要はありません。
SQL Server Business Intelligence Development Studio でテスト レポートを作成して公開する
SSRS および SharePoint Server との統合を構成したら、テスト レポートを作成して ID 委任が正しく動作していることを確認します。
SQL Server Business Intelligence Development Studio を開いて [ファイル] をクリックし、[新規作成] をポイントして、[プロジェクト] をクリックします。
[レポート サーバー プロジェクト ウィザード] を選択し、プロジェクト名を入力します。
次に、新しいデータ ソースを構成します。種類として [Microsoft SQL Server] を選択し、[編集] ボタンをクリックします。
[接続のプロパティ] で、シナリオ 2 で作成したデモ SQL Server クラスターへの接続に必要な情報を入力します。
クエリ デザイナーを開き、クエリ ウィンドウを右クリックして [テーブルの追加] を選択します。
[Sales] テーブル (シナリオ 2 で作成) を選択し、[すべての列] を選択します。
レポートの種類として表形式を選択します。
この例では、地域ごとにグループ化します。この手順は省略することができます。
プロジェクトが作成されたら、[プロジェクト] メニューでプロジェクトのプロパティを開きます。
次のプロジェクト プロパティを構成します。
TargetDatasetFolder - 前に作成したテスト レポート フォルダーに設定します
TargetReportFolder - 前に作成したテスト レポート フォルダーに設定します
TargetReportPartFolder - 前に作成したテスト レポート フォルダーに設定します
TargetServerURL - レポートをホストしている Web アプリケーション URL に設定します
レポートを SharePoint ライブラリに展開します。ビルド メニューで、[<project name> の配置] を選択します。
展開が適切に行われた場合は、[出力] ウィンドウに、展開が成功したことを示すメッセージが表示されます。
Internet Explorer でテスト レポートを表示する
このシナリオの手順で既に作成したレポート ドキュメント ライブラリをブラウザーで開くと、公開したレポート ファイルが表示されます。レポートが表示されない場合は、サイト コレクションで Reporting Services 機能をアクティブ化しなければならない可能性があります。詳細については、「方法: サイトの設定でレポート サーバー機能をアクティブ化する」(https://go.microsoft.com/fwlink/?linkid=196878&clcid=0x411) を参照してください。
レポートをクリックすると、そのレポートがブラウザーで表示されます。
さらに、委任およびデータ接続を確認するには、SQL Server Management Studio のソース データを変更し、ブラウザーで SSRS レポートのデータ接続を更新します。これにより、データの変更がレポートに反映されます。
Reporting Services の SSL 構成
環境によっては、フロントエンド Web サーバーと SSRS サーバー間の通信を SSL で保護しなければならない場合があります。このドキュメントでは、Reporting Services 用に SSL を構成する詳細なチュートリアルについては説明しませんが、実行する必要がある簡単な手順を以下に示します。
SSL 用に各レポート サーバーを構成します。「Secure Socket Layer (SSL) 接続用レポート サーバーの構成」(https://go.microsoft.com/fwlink/?linkid=196881&clcid=0x411) を参照してください。
ReportingServer.config を更新します。
<UrlRoot>
を新しい https:// URL に変更します。SQL Server Reporting Services サービスを再起動します。
サーバーの全体管理で、Reporting Services 統合の設定を変更し、レポート サーバー Web サービスの URL を新しい https:// URL に変更します。
Web アプリケーション サービスを実行している SharePoint Server の各インスタンスで IIS を再起動します。
前の手順で HTTP によって Reporting Services を構成したときに作成された SPN を変更する必要がありません。SSL 経由の HTTP サービス用 SPN は、HTTP/<service> のままです。これを確認するには、NetMon を使用して、Reporting Services サーバーと通信しているフロントエンド Web サーバーを表示します。