Excel Services の ID 委任 (SharePoint Server 2010)
適用先: Excel Services, SharePoint Server 2010
トピックの最終更新日: 2016-11-30
このシナリオでは、SharePoint Server 環境に Excel Services サービス アプリケーションを追加して、サービスが、外部の SQL Server データ ソースでワークシート内のデータを更新できるように Kerberos の制限付き委任を構成します。
注意
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 認証
構成チェックリスト
構成の領域 | 説明 |
---|---|
Active Directory の構成 |
Excel Services サービス アカウントを作成する Excel Services サービス アカウントの SPN を構成する Excel Services を実行中のサーバー用に Kerberos の制限付き委任を構成する Excel Services サービス アカウント用に Kerberos の制約付き委任を構成する |
SharePoint Server の構成 |
Excel Services サーバーで Claims to Windows Token Service を開始する Excel Services サーバーで Excel Services サービス インスタンスを開始する Excel Services サービス アプリケーションおよびプロキシを作成する Excel サービスの信頼できるファイルの場所と認証設定を構成する |
Excel Services 制限付き委任を確認する |
テスト ブックをホストする目的でドキュメント ライブラリを作成する テスト SQL データベースとテスト テーブルを作成する テスト Excel ブックと SQL データ接続を作成する ブックを SharePoint Server に公開し、データ接続を更新する |
シナリオ環境の詳細
Kerberos 制限付き委任のパス
このシナリオでは、SQL Server サービスへの Kerberos の制限付き委任の SharePoint Server Excel Services サービス アカウントを構成します。
注意
このシナリオでは、専用のサービス アカウントを使用するように Claims to Windows Token Services (C2WTS) を構成します。C2WTS を [ローカル システム] を使用する構成のままにした場合は、C2WTS と Excel Services を実行中のコンピューターのコンピューター アカウントに制限付き委任を構成する必要があります。
SharePoint Server 論理認証
このシナリオでの認証は、Web フロントエンドでの Kerberos 認証による、クライアント認証から始まります。SharePoint Server 2010 は、ローカル Security Token Service (STS) を使用して、Windows 認証トークンをクレーム トークンに変換します。Excel サービス アプリケーションは、クレーム トークンを受け取り、Windows Identity Framework (WIF) の一部であるローカル Claims to Windows Token Service (C2WTS) を使用して、Windows トークン (Kerberos) に変換します。次に、Excel サービス アプリケーションは、クライアントの Kerberos チケットを使用して、バックエンド DataSource で認証します。
構成手順
Active Directory の構成
Excel Services サービス アカウントを作成する
ベスト プラクティスとしては、Excel Services はそれ自身のドメイン ID で実行する必要があります。Excel Service アプリケーションを構成するには、Active Directory アカウントを作成する必要があります。この例では、以下のアカウントが作成されました。
SharePoint Server サービス | IIS App プール ID |
---|---|
Excel Services |
vmlab\svcExcel |
Excel Services サービス アカウントの SPN を構成する
Excel Services がクライアントのバック エンドデータ ソースに対する ID を委任する場合、Kerberos の制約付き委任を構成する必要があります。この例では、Excel Services が SQL のトランザクション データベースからデータにクエリーを実行することから、Kerberos 委任が必要です。
Kerberos 委任を構成する目的で、一般的には、Active Directory ユーザーとコンピューター MMC スナップインが使用されます。スナップインで委任設定を構成するには、構成する Active Directory オブジェクトにサービス プリンシパル名が適用されている必要があります。そうでない場合は、オブジェクトの [委任] タブは、オブジェクトのプロパティ ダイアログ ボックスに表示されません。このことから、Excel Services が機能するには SPN は不要ですが、この目的で SPN を構成する必要があります。
コマンド ラインで、次のコマンドを実行します。
SETSPN -S SP/ExcelServices
注意
SPN は有効な SPN ではありません。AD ユーザーとコンピューター アドインで委任オプションを表示する目的で、指定されたサービス アカウントに適用されます。委任設定を指定する、その他のサポートされる方法 (特に msDS-AllowedToDelegateTo AD 属性) もありますが、この文書では説明しません。
Excel Services の Kerberos の制限付き委任を構成する
Excel Services にクライアントの ID を委任することを許可するには、Kerberos の制限付き委任を構成する必要があります。また、WIF C2WTS によるクレーム トークンの Windows トークンへの変換のプロトコル移行でも制限付き委任を構成する必要があります。
Excel Services を実行中の各サーバーが、Excel が認証する各バック エンド サービスに資格情報を委任するよう信頼できる必要があります。さらに、Excel Services サービスのアカウントもまた、同じバック エンド サービスへの委任ができるように構成する必要があります。
この例では、以下の委任パスが定義されます。
プリンシパルの種類 | プリンシパル名 | サービスへの委任 |
---|---|---|
ユーザー |
svcExcel |
MSSQLSVC/MySqlCluster.vmlab.local:1433 |
*ユーザー |
svcC2WTS |
MSSQLSVC/MySqlCluster.vmlab.local:1433 |
**コンピューター |
VMSP10APP01 |
MSSQLSVC/MySqlCluster.vmlab.local:1433 |
* このシナリオで後で構成
** C2WTS がローカル システムとして実行中の場合にのみ必要
制限付き委任を構成するには
Active Directory ユーザーとコンピューターで、Active Directory オブジェクトのプロパティを開きます。
[委任] タブを表示します。
[指定されたサービスへの委任でのみこのユーザーを信頼する] を選択します。
[任意の認証プロトコルを使う] を選択します。これにより、サービス アカウントが C2WTS を使用する際に必要になるプロトコル移行が有効になります。
追加ボタンをクリックし、委任先のサービス プリンシパルを選択します。
[ユーザーまたはコンピューター] を選択します。
委任するサービスを実行中のサービス アカウントを選択します。この例では SQL サービスのサービス アカウントです。
注意
選択したサービス アカウントには、SPN が適用されている必要があります。この例では、このアカウントの SPN は以前のシナリオで構成済みです。
[OK] をクリックします。次の画面で、委任する SPN を選択するように求められます。
SQL クラスターのサービスを選択して、[OK] をクリックします。
これで、[このアカウントが委任された資格情報を提示できるサービス] リストに選択した SPN が表示されるはずです。
このセクションの初めに定義した各委任パスで、これらの手順を繰り返します。
SQL Server でサービスを実行しているサービス アカウントの MSSQLSVC SPN を確認する (シナリオ 2 で実行)
以下の SetSPN コマンドを持つ、Analysis Services サービス アカウント (vmlab\svcSQL) の SPN が存在することを確認してください。
SetSPN -L vmlab\svcSQL
以下のように表示されます。
MSSQLSVC/MySqlCluster MSSQLSVC/MySqlCluster.vmlab.local:1433
SharePoint Server の構成
Excel Services サーバーで Claims to Windows Token Service を構成して開始する
Claims to Windows Token Service (C2WTS) は、Windows Identity Foundation (WIF) のコンポーネントで、ユーザー クレーム トークンを Windows トークンに変換します。Excel Services は、統合 Windows 認証を使用するバック エンドシステムにサービスが資格情報を委任する必要があるとき、C2WTS を使用して、ユーザーのクレーム トークンを Windows トークンに変換します。WIF は SharePoint Server 2010 と同時に展開され、C2WTS はサーバーの全体管理から開始できます。
各 Excel Services アプリケーション サーバーは、C2WTS をローカルで実行する必要があります。C2WTS はどのポートも開かず、リモート コーラーはアクセスできません。さらに、C2WTS サービス構成ファイルは、ローカル呼び出しクライアント ID を、明示的に信頼するよう構成する必要があります。
ベスト プラクティスとしては、ローカル システム (既定の構成) としてではなく、専用のサービス アカウントを使用して C2WTS を実行する必要があります。C2WTS サービス アカウントはサービスが実行中の各サーバーで特別なローカル権限を必要とすることから、サービスがサーバーで開始されるたびに、これらの権限を構成する必要があります。最良の方法は、C2WTS を開始する前に、ローカル サーバーのサービス アカウントの権限を構成することです。もし C2WTS の開始後に行った場合は、Windows サービス管理コンソール (services.msc) から C2WTS を、再度、開始できます。
C2WTS を開始するには
サービスを実行するには、Active Directory でサービス アカウントを作成します。この例では、vmlab\svcC2WTS を作成しました。
Active Directory ユーザーとコンピューターで、このアカウントの委任オプションを公開する目的で、サービス アカウントに任意のサービス プリンシパル名前 (SPN) を追加します。Kerberos 認証を使用して C2WTS に対して認証しないことから、SPN ではあらゆる形式が使用できます。使用中の環境に重複する SPN を作成するのを避ける目的で、HTTP SPN を使用しないことが推奨されます。この例では、以下のコマンドを使用して vmlab\svcC2WTS に SP/C2WTS を登録しました。
SetSPN -S SP/C2WTS vmlab\svcC2WTS
C2WTS サービス アカウントに Kerberos の制限付き委任を構成します。このシナリオでは、MSSQLSVC/MySqlCluster.vmlab.local:1433 サービス プリンシパル名で実行中の SQL サービスに資格情報を委任します。
次に、C2WTS が必要とするローカル サーバー権限を構成します。C2WTS が実行する各サーバーで、これらの権限を構成する必要があります。この例では、VMSP10APP01 です。サーバーにログオンして、C2WTS に以下の権限を与えます。
ローカル Administrators グループにサービス アカウントを追加します。
ローカル セキュリティ ポリシー (secpol.msc) の、ユーザー権限割り当てで、サービス アカウントに以下の権限を与えます。
オペレーティング システムの一部として機能
認証後にクライアントを偽装
サービスとしてログオン
サーバーの全体管理を開きます。
[セキュリティ] セクションの [管理アカウントの構成] で、管理アカウントとして C2WTS サービス アカウントを登録します。
サービスで、[サーバーのサービスの管理] を選択します。
右上隅のサーバー選択ボックスで、Excel サービスを実行中のサーバーを選択します。この例では VMSP10APP01 です。
[Claims to Windows Token Service] を選択して、開始します。
[セキュリティ] セクションの [管理アカウントの構成] に移動します。C2WTS の ID を新しい管理アカウントに変更します。
注意
専用のサービス アカウントを構成する前に、C2WTS がすでに実行されていた場合、あるいは、C2WTS が実行された後で、サービス アカウントの権限を変更する必要がある場合、サービス コンソールから C2WTS を、再度、開始する必要があります。
さらに、サービスを、再度、開始した後で、C2WTS で問題が発生した場合、C2WTS と通信する IIS アプリケーション プールをリセットする必要があることがあります。
WIF C2WTS サービスに起動依存関係を追加する
C2WTS には、システム再起動時に、正常に自動開始しないことがあるという、既知の課題があります。この問題の回避策は、Cryptographic Services サービスにサービス依存関係を構成することです。
コマンド プロンプト ウィンドウを開きます。
「sc config "c2wts" depend= CryptSvc」と入力します。
サービス コンソールで Claims to Windows Token Service を探します。
サービスのプロパティを開きます。
[依存関係] タブを確認してください。[Cryptographic Services] が表示されていることを確認してください。
[OK] をクリックします。
Web アプリケーション コンテンツ データベースに Excel Services サービス アカウント権限を与える
SharePoint Server 2010 Office Web アプリケーションの構成で必要な手順は、特定の Web アプリケーションのコンテンツ データベースに、Web アプリケーションのサービス アカウント アクセスを許可することです。この例では、Windows PowerShell を使用して、"ポータル" Web アプリケーションのコンテンツ データベースに Excel Services アカウント アクセスを与えます。
SharePoint 2010 管理シェルから以下のコマンドを実行します。
$w = Get-SPWebApplication -Identity http://portal
$w.GrantAccessToProcessIdentity("vmlab\svcExcel")
Excel Services サーバーで Excel Services サービス インスタンスを開始する
Excel Services サービス アプリケーションを作成する前に、割り当てられたファーム サーバーで Excel Services を開始します。
サーバーの全体管理を開きます。
サービスで、[サーバーのサービスの管理] を選択します。
右上隅のサーバー選択ボックスで、Excel サービスを実行中のサーバーを選択します。この例では VMSP10APP01 です。
Excel Calculation Services サービスを開始します。
Excel Services サービス アプリケーションおよびプロキシを作成する
次に、Web アプリケーションが Excel Services を使用できるように、新しい Excel Services サービス アプリケーションとアプリケーション プロキシを構成します。
サーバーの全体管理を開きます。
[アプリケーション構成の管理] で [サービス アプリケーションの管理] を選択します。
[新規]、[Excel Service アプリケーション] の順にクリックします。
新しいサービス アプリケーションを構成します。適切なサービス アカウントを選択します (Excel Service アカウントがリストにない場合は、新しい管理アカウントを作成します)。
Excel サービスの信頼できるファイルの場所と認証設定を構成する
Excel Services アプリケーションが作成された後で、信頼できるホスト場所と認証設定を指定する目的で、新しいサービス アプリケーションでプロパティを構成する必要があります。
サーバーの全体管理を開きます。
[アプリケーション構成の管理] で [サービス アプリケーションの管理] を選択します。
新しいサービス アプリケーションへのリンク、この例では [Excel Services] をクリックします。
Excel Services の管理画面で、[信頼できるファイル保存場所] をクリックします。
信頼できるファイル保存場所を追加します。
テスト ライブラリの場所を指定します。
注意
この例では、ルート Web アプリケーション URL とすべての子を信頼します。運用環境では、信頼をより詳細な場所に限定できます。
[外部データ] で、[信頼できるデータ接続ライブラリと、埋め込まれている接続] を選択します。
注意
この例では、SQL Server に接続する目的で埋め込まれている接続を使用します。実際の環境では、個別の接続ファイルを作成して、信頼できるデータ接続ライブラリに保存できます。その場合、信頼できるデータ接続ライブラリのみを選択できます。
外部データ キャッシュ時間を変更する - テストの観点からは、外部データ キャッシュの有効期間を変更して、データ更新がキャッシュではなく、データ ソースから行われるようにするほうが便利です。[外部データ] で、以下の設定を変更します。
[自動更新 (定期的/開いたとき)] = 0
[手動更新] = 0
注意
運用環境では、0 より大きいキャッシュ設定を構成する必要があります。キャッシュを 0 に設定することは、テストのみを目的にしたものです。
Excel Services 制限付き委任を確認する
テスト ブックをホストする目的でドキュメント ライブラリを作成する
以前の手順で構成した、信頼できるパスでサイトを開きます。テスト Excel ブックをホストする目的で、新しいドキュメント ライブラリを作成します。
テスト Excel ブックと SQL データ接続を作成する
次に、新しいテスト データベースへのデータ接続を持つ Excel ブックを作成します。
Excel を開きます。
[データ] タブで、[その他のデータ ソース]、[SQL Server] の順に選択します。
テスト SQL データ ソースに接続します。
テスト データベースとテスト テーブル (この例では [Sales]) を選択します。
[次へ] をクリックします。[設定の変更] ボタンをクリックします。Windows 認証が指定されていることを確認してください。
[完了] をクリックします。
ピボット テーブル レポートを選択します。
ピボット テーブルを構成します。データが SQL ソースから返されるようにします。
ブックを SharePoint Server に公開し、データ接続を更新する
Excel Services アプリケーションを検証する最後の手順は、ブックを公開し、埋め込まれている SQL 接続の更新をテストすることです。
[ファイル] タブをクリックします。
[保存と送信]、[SharePoint に保存]、[場所の参照] の順にクリックします。
以前の手順で作成した、信頼できるライブラリの場所を入力します。
[ブラウザー上の Excel で開く] が選択されていることを確認してください。
新しいブラウザー ウィンドウが開き、テスト ブックが表示されます。ブックが表示された後で、[データ]、[すべての接続の更新] の順にクリックして、データ接続を更新します。
データ接続が更新されれば、Excel Services の Kerberos 委任は正常に構成されています。さらに接続をテストするには、SQL Management Studio からソース データを変更して、接続を更新します。新しく変更されたデータがブックに表示されるはずです。変更が表示されず、更新してもエラーが発生しない場合は、キャッシュされたデータが表示されている可能性があります。既定では、Excel Services は、外部ソースからのデータを 5 分間キャッシュします。このキャッシュ設定は変更できます。詳細については、この記事の「Excel Services の信頼できるファイルの場所および認証の設定を構成する」を参照してください。