Visio Services の ID 委任 (SharePoint Server 2010)

 

適用先: SharePoint Server 2010

トピックの最終更新日: 2016-11-30

このシナリオでは、SharePoint Server 環境に Visio Services サービス アプリケーションを追加して、サービスが、外部の SQL Server データ ソースで Visio Web 図面のデータを更新できるように Kerberos の制限付き委任を構成します。

注意

Windows Server 2008 にインストールする場合は、Kerberos 認証用に次の修正プログラムのインストールが必要になる可能性があります。
Kerberos 認証は 0X80090302 または 0x8009030f、AES アルゴリズムが使用するとき Windows Server 2008 や Windows Vista を実行がコンピューターには、エラー コードと共に失敗します。 (https://support.microsoft.com/kb/969083/ja-jp)

シナリオの依存関係

このシナリオを完了するには、以下をすでに完了している必要があります。

構成チェックリスト

構成の領域 説明

Active Directory の構成

Visio Services サービス アカウントを作成する

Visio Services サービス アカウントで SPN を構成する

Visio Services を実行中のサーバー用に Kerberos の制限付き委任を構成する

Visio Services サービス アカウント用に Kerberos の制約付き委任を構成する

SharePoint Server の構成

Visio Services サーバーで Claims to Windows Token Service を開始する

Web アプリケーションのコンテンツ データベースに Visio Services サービス アカウント権限を与える

Visio Services サーバーで Visio Services サービス インスタンスを開始する

Visio Services サービス アプリケーションとプロキシを作成する

Visio Services 制限付き委任を確認する

Visio サービス キャッシュ設定を構成する

テスト Visio 図面をホストする目的でドキュメント ライブラリを作成する

SQL Server データ接続図形を含むテスト Visio Web 図面を作成する

Visio 図面を SharePoint Server に公開し、データ接続を更新する

シナリオ環境の詳細

Kerberos 制限付き委任のパス

委任パスの図

このシナリオでは、SQL Server サービスへの Kerberos の制限付き委任の SharePoint Server Visio サービス アプリケーション サーバーおよびサービス アカウントを構成します。

SharePoint Server 論理認証

認証フローの図

このシナリオでの認証は、Web フロントエンドでの Kerberos 認証による、クライアント認証から始まります。SharePoint Server 2010 は、ローカル Security Token Service (STS) を使用して、Windows 認証トークンをクレーム トークンに変換します。Visio サービス アプリケーションは、クレーム トークンを受け取り、Windows Identity Foundation (WIF) の一部であるローカル Claims to Windows Token Service (C2WTS) を使用して、Windows トークン (Kerberos) に変換します。次に、Visio サービス アプリケーションは、クライアントの Kerberos チケットを使用して、バックエンド データ ソースで認証します。

構成手順

Active Directory の構成

Visio Services サービス アカウントを作成する

ベスト プラクティスとしては、Visio Services はそれ自身のドメイン ID で実行する必要があります。Visio Service アプリケーションを構成するには、Active Directory アカウントを作成する必要があります。この例では、以下のアカウントが作成されました。

SharePoint Server サービス IIS App プール ID

Visio Services

vmlab\svcVisio

Visio Services サービス アカウントを作成する

Visio Services サービス アカウントで SPN を構成する

Visio Services がクライアントのバック エンド データ ソースに対する Windows ID を委任する場合、Kerberos の制約付き委任を構成する必要があります。この例では、Visio Services が SQL Server トランザクション データベースからクライアントとしてデータにクエリを実行することから、Kerberos 委任が必要です。

Kerberos 委任を構成する目的で、一般的には、Active Directory ユーザーとコンピューター MMC スナップインが使用されます。スナップインで委任設定を構成するには、構成する Active Directory オブジェクトにサービス プリンシパル名が適用されている必要があります。そうでない場合は、オブジェクトの [委任] タブは、オブジェクトのプロパティ ダイアログ ボックスに表示されません。このことから、Visio Services が機能するには SPN は不要ですが、この目的で SPN を構成する必要があります。

コマンド ラインで、次のコマンドを実行します。

SETSPN -S SP/VisioServices svc\VisioServices

注意

SPN は有効な SPN ではありません。AD ユーザーとコンピューター アドインで委任オプションを表示する目的で、指定されたサービス アカウントに適用されます。委任設定を指定する、その他のサポートされる方法 (特に msDS-AllowedToDelegateTo AD 属性) もありますが、この文書では説明しません。

Visio Services の Kerberos の制限付き委任を構成する

Visio Services にクライアントの ID を委任することを許可するには、Kerberos の制限付き委任を構成する必要があります。また、WIF C2WTS によるクレーム トークンの Windows トークンへの変換のプロトコル移行でも制限付き委任を構成する必要があります。

Visio Services を実行中の各サーバーが、Visio が認証する各バック エンド サービスに資格情報を委任するよう信頼できる必要があります。さらに、Visio Services サービスのアカウントもまた、同じバック エンド サービスへの委任ができるように構成する必要があります。

この例では、以下の委任パスが定義されます。

プリンシパルの種類 プリンシパル名 サービスへの委任

ユーザー

Vmlab\svcVisio

MSSQLSVC/MySqlCluster.vmlab.local:1433

*ユーザー

Vmlab\svcC2WTS

MSSQLSVC/MySqlCluster.vmlab.local:1433

**コンピューター

Vmlab\vmsp10app01

MSSQLSVC/MySqlCluster.vmlab.local:1433

*このシナリオで後で構成

**オプション。コンピューター アカウントでの制限付き委任は、ローカル システムとして C2WTS を実行するときのみ必要です

制限付き委任を構成するには

  1. Active Directory ユーザーとコンピューターで、Active Directory オブジェクトのプロパティを開きます。

  2. [委任] タブを表示します。

  3. [指定されたサービスへの委任でのみこのユーザーを信頼する] を選択します。

  4. [任意の認証プロトコルを使う] を選択します。これにより、Visio サービス アカウントが C2WTS を使用する際に必要になるプロトコル移行が有効になります。

  5. 追加ボタンをクリックし、委任先のサービス プリンシパルを選択します。

  6. [ユーザーまたはコンピューター] を選択します。

  7. 委任するサービスを実行しているサービス アカウントを選択します。この例では、SQL Server サービスのサービス アカウントです。

    注意

    選択したサービス アカウントには、SPN が適用されている必要があります。この例では、このアカウントの SPN は以前のシナリオで構成済みです。

  8. [OK] をクリックします。次に、委任する SPN を選択するように求められます。

  9. SQL Server クラスターのサービスを選択し、[OK] をクリックします。

  10. これで、[このアカウントが委任された資格情報を提示できるサービス] リストに選択した SPN が表示されるはずです。

  11. このセクションの初めに定義した各委任パス (コンピューターとユーザー) で、これらの手順を繰り返します。

SQL Server でサービスを実行しているサービス アカウントの MSSQLSVC SPN を確認する (シナリオ 2 で実行)

以下の SetSPN コマンドを持つ、Analysis Services サービス アカウント (vmlab\svcSQL) の SPN が存在することを確認してください。

SetSPN -L vmlab\svcSQL

以下のように表示されます。

MSSQLSVC/MySqlCluster MSSQLSVC/MySqlCluster.vmlab.local:1433

SharePoint Server の構成

Visio Graphics サーバーで Claims to Windows Token Service を構成して開始する

Claims to Windows Token Service (C2WTS) は、Windows Identity Foundation (WIF) のコンポーネントで、ユーザー クレーム トークンを Windows トークンに変換します。Visio Graphics Service は、Windows 認証を使用するバック エンドシステムにサービスが資格情報を委任する必要があるとき、C2WTS を使用して、ユーザーのクレーム トークンを Windows トークンに変換します。WIF は SharePoint Server 2010 と同時に展開され、C2WTS はサーバーの全体管理から開始できます。

各 Visio Graphics Service アプリケーション サーバーは、C2WTS をローカルで実行する必要があります。C2WTS はどのポートも開かず、リモート コーラーはアクセスできません。さらに、C2WTS サービス構成ファイルは、ローカル呼び出しクライアント ID を、明示的に信頼するよう構成する必要があります。

ベスト プラクティスとしては、ローカル システム (既定の構成) としてではなく、専用のサービス アカウントを使用して C2WTS を実行する必要があります。C2WTS サービス アカウントはサービスが実行中の各サーバーで特別なローカル権限を必要とすることから、サービスがサーバーで開始されるたびに、これらの権限を構成する必要があります。最良の方法は、C2WTS を開始する前に、ローカル サーバーのサービス アカウントの権限を構成することです。もし C2WTS の開始後に行った場合は、Windows サービス管理コンソール (services.msc) から C2WTS を、再度、開始できます。

C2WTS を開始するには

  1. サービスを実行するには、Active Directory でサービス アカウントを作成します。この例では、vmlab\svcC2WTS を作成しました。

  2. Active Directory ユーザーとコンピューターで、このアカウントの委任オプションを公開する目的で、サービス アカウントに任意のサービス プリンシパル名前 (SPN) を追加します。Kerberos 認証を使用して C2WTS に対して認証しないことから、SPN ではあらゆる形式が使用できます。使用中の環境に重複する SPN を作成するのを避ける目的で、HTTP SPN を使用しないことが推奨されます。この例では、以下のコマンドを使用して vmlab\svcC2WTS に SP/C2WTS を登録しました。

    SetSPN -S SP/C2WTS vmlab\svcC2WTS

  3. C2WTS サービス アカウントに Kerberos の制限付き委任を構成します。このシナリオでは、MSSQLSVC/MySqlCluster.vmlab.local:1433 サービス プリンシパル名で実行中の SQL Server サービスに資格情報を委任します。

  4. 次に、C2WTS が必要とするローカル サーバー権限を構成します。C2WTS が実行する各サーバーで、これらの権限を構成する必要があります。この例では、VMSP10APP01 です。サーバーにログオンして、C2WTS に以下の権限を与えます。

    1. ローカル Administrators グループにサービス アカウントを追加します。

    2. ローカル セキュリティ ポリシー (secpol.msc) の、ユーザー権限割り当てで、サービス アカウントに以下の権限を与えます。

      1. オペレーティング システムの一部として機能

      2. 認証後にクライアントを偽装

      3. サービスとしてログオン

  5. サーバーの全体管理を開きます。

  6. [セキュリティ] の、[管理アカウントの構成] セクションで、管理アカウントとして C2WTS サービス アカウントを登録します。

  7. サービスで、[サーバーのサービスの管理] を選択します。

  8. 右上隅のサーバー選択ボックスで、Visio Graphics Service を実行中のサーバーを選択します。この例では VMSP10APP01 です。

  9. [Claims to Windows Token Service] を選択して、開始します。

  10. [セキュリティ] セクションの [サービス アカウントの構成] に移動します。C2WTS の ID を新しい管理アカウントに変更します。

    注意

    専用のサービス アカウントを構成する前に、C2WTS がすでに実行されていた場合、あるいは、C2WTS が実行された後で、サービス アカウントの権限を変更する必要がある場合、サービス コンソールから C2WTS を、再度、開始する必要があります。

さらに、サービスを、再度、開始した後で、C2WTS で問題が発生した場合、C2WTS と通信する IIS アプリケーション プールをリセットする必要があることがあります。

WIF C2WTS サービスに起動依存関係を追加する

C2WTS には、システム再起動時に、正常に自動開始しないことがあるという、既知の課題があります。この問題の回避策は、Cryptographic Services サービスにサービス依存関係を構成することです。

  1. コマンド プロンプト ウィンドウを開きます。

  2. sc config "c2wts" depend= CryptSvc」と入力します。

  3. サービス コンソールで Claims to Windows Token Service を探します。

  4. サービスのプロパティを開きます。

  5. [依存関係] タブを確認してください。[Cryptographic Services] が表示されていることを確認してください。

  6. [OK] をクリックします。

Web アプリケーションのコンテンツ データベースに Visio Services サービス アカウント権限を与える

SharePoint Server 2010 Office Web アプリケーションの構成で必要な手順は、特定の Web アプリケーションのコンテンツ データベースに、Web アプリケーションのサービス アカウント アクセスを許可することです。この例では、Windows PowerShell を使用して、ポータル Web アプリケーションのコンテンツ データベースに Visio Graphics Service アカウント アクセスを与えます。

SharePoint 2010 管理シェルから以下のコマンドを実行します。

$w = Get-SPWebApplication -Identity http://portal

$w.GrantAccessToProcessIdentity("vmlab\svcVisio")

Visio サーバーで Visio Graphics Service インスタンスを開始する

Visio Services サービス アプリケーションを作成する前に、割り当てられたファーム サーバーで Visio Services サーバー サービスを開始します。

  1. サーバーの全体管理を開きます。

  2. サービスで、[サーバーのサービスの管理] を選択します。

  3. 右上隅のサーバー選択ボックスで、Visio サービスを実行中のサーバーを選択します。この例では VMSP10APP01 です。

  4. [Visio Graphics Service] を開始します。

Visio Graphics Service アプリケーションとプロキシを作成する

次に、Web アプリケーションが Viso Services を使用できるように、新しい Visio Services サービス アプリケーションとアプリケーション プロキシを構成します (まだ存在しない場合)。

  1. サーバーの全体管理を開きます。

  2. [アプリケーション構成の管理] で [サービス アプリケーションの管理] を選択します。

  3. [新規作成]、[Visio Graphics Service] の順に選択します。

  4. 新しいサービス アプリケーションを構成します。適切なサービス アカウントを選択します (Visio Service アカウントがリストにない場合は、新しい管理アカウントを作成します)。

Visio Graphic Service 制限付き委任を確認する

Visio サービス キャッシュ設定を構成する

既定では、Visio Graphics Service は、サービスのキャッシュ設定 (単位は分) に基づいて、Web クライアントで表示する Web 図面をキャッシュします。委任をテストし、Visio Web 図面のデータ更新を簡単に確認する目的で、図面をキャッシュしないようにサービスを構成します。

注意

レンダリング キャッシュを無効にすることは、運用環境では推奨されません。Visio での委任のテストを完了した後で、キャッシュを、再度、有効にするよう注意してください

  1. サーバーの全体管理を開きます。

  2. [アプリケーション構成の管理] で [サービス アプリケーションの管理] を選択します。

  3. 以前の手順で作成した Visio Graphics Service アプリケーションを選択します。

  4. [グローバル設定] を選択します。

  5. [最小キャッシュ時間] 設定で、キャッシュを 0 (キャッシュなし) に設定します。

    注意

    最小キャッシュ時間を 0 に設定するのはテスト目的のみであり、運用環境ではこのように指定しないでください。

テスト Visio Web 図面をホストする目的でドキュメント ライブラリを作成する

ポータル アプリケーション (http: //portal) に移動します。テスト Visio ブックをホストする目的で、新しいドキュメント ライブラリを作成します。

SQL Server データ接続図形を含むテスト Visio Web 図面を作成する

  1. Visio 2010 を開始します。

  2. [ホーム] の [全般] セクションで新しい [基本図] を作成します。

  3. [データ] リボン タブで、[図形にデータをリンク] を選択します。

  4. データ選択ウィザードのダイアログ ボックスで、[Microsoft SQL Server データベース] を選択します。

  5. シナリオ 2 で作成した SQL Server クラスターを指定し、[Windows 認証] を選択します。

  6. [Test] データベースと [Sales] テーブルを選択します。

  7. 接続のフレンドリ名を指定し、以前の手順で作成したドキュメント ライブラリに接続を保存します。

  8. [データ選択ウィザード] のダイアログ ボックスで、新しく作成された接続を選択し、[完了] を押します。

    図面ウィンドウの下部に、以前に作成したサンプル データを含む外部データ ウィンドウが表示されるはずです。

  9. 図面領域に最初のデータ行をドラッグします。これにより、データ行にリンクされた新しい図形が作成されます。テスト図面は委任をテストする目的のものであり、完全に機能する、運用目的の Web 図面方法の作成を示すわけではないことに注意してください。

Visio 図面を SharePoint Server に公開し、データ接続を更新する

  1. 図面をテスト SharePoint ドキュメント ライブラリに公開します。[ファイル] タブで、[保存と送信]、[SharePoint に保存]、[場所の参照]、[Web 図面] の順にクリックします。

  2. テスト ドキュメント ライブラリを参照して、テスト図面の名前を指定し、[保存] をクリックします。

    図面がブラウザーで開きます。

  3. 無効な更新の通知で、[有効 (常に更新)] を選択します。

  4. データ接続は自動的に更新され、エラーは発生しないはずです。

  5. SQL Server Management Studio を開いて、Web 図面に表示されるデータ行を変更します。

  6. 図面ウィンドウの上部の [更新] ボタンを押して、データ接続を更新します。委任が適切に構成されている場合は、データが更新されたことを確認できます。