SharePoint 統合モードの Reporting Services のセキュリティ概要

SharePoint 統合モードで動作するようにレポート サーバーを構成すると、レポート サーバーでは、SharePoint Web アプリケーションで定義されている認証プロバイダと権限を使用することにより、レポート サーバーのアイテムと操作に対するアクセスが制御されます。

アイテムと操作にアクセスするための権限は、SharePoint セキュリティ ポリシーによって与えられます。このポリシーは、ユーザー アカウントやグループ アカウントをアイテムに対して相対的に権限レベルにマップするものです。概念的には、これはネイティブ モードのレポート サーバー配置におけるロールの割り当ての使用方法と同じです。この場合はロールの割り当てによって、ユーザー アカウントやグループ アカウントがアイテムに対して相対的に、可能な一連のタスクにマップされます。ほとんどのロール ベースの認証モデルでは一般的なことですが、SharePoint セキュリティでは多数のポリシーを維持する際の複雑さとオーバーヘッドを軽減するため、権限が継承されます。

レポート サーバー コンテンツの種類を SharePoint サイトに配置する場合は、次のことについて知っておく必要があります。

権限を設定するには、その前に各サーバーを統合用に構成する必要があります。詳細については、「SharePoint 3.0 統合用の Reporting Services の構成」を参照してください。

SharePoint テクノロジの認証プロバイダ

SharePoint Web アプリケーションでは Windows 認証またはフォーム認証を使用でき、レポート サーバーではどちらの認証からの要求も処理されます。認証は次の組み合わせで構成できます。

  • Windows 認証、統合セキュリティを使用 (Kerberos 有効)

  • Windows 認証、権限借用または委任を使用しない

  • フォーム認証

注意注意

Reporting Services および SharePoint の製品とテクノロジの両方で、フォーム認証がサポートされます。実装は製品グループによって異なり、互換性はありません。Reporting Services のカスタムの認証拡張機能は、SharePoint 統合モードで動作するレポート サーバーに対してはサポートされません。

次の表に、各認証プロバイダの長所と短所をまとめます。

長所

短所

Windows 認証 (Kerberos 認証が有効)

シングル サーバーおよび複数サーバーの配置シナリオで機能します。

外部データ ソースに対して Windows 統合資格情報の使用がサポートされます。

複数サーバー配置で NTLM 認証と連動しません。

Windows 認証 (Kerberos 認証が無効) またはフォーム認証

Kerberos 認証およびあらゆる非 Kerberos 認証のシナリオで機能します。

外部データ ソースに対して Windows 統合資格情報の使用がサポートされません。

レポート サーバーへの要求の送信

レポート サーバーのアイテムまたは操作に対する要求はすべて、有効な認証済み要求である必要があります。使用している認証プロバイダによって、要求の処理方法が決まります。

Windows 統合セキュリティ

SharePoint Web アプリケーションが Windows 認証用に構成され、Kerberos が有効になっている場合、SharePoint Web アプリケーションからレポート サーバーへの接続は、現在の Windows ユーザーの権限を借用した資格情報またはこの権限が委任された資格情報によって行われます。次の図は、レポート サーバーが SharePoint 統合用に構成され、SharePoint Web アプリケーションで Kerberos が有効な Windows 認証が使用されている場合の接続を示しています。

SharePoint 統合モードでの接続

  • 接続 1
    ユーザーが、ネットワークへのログオン時に作成されたユーザー トークンで SharePoint サイトにアクセスします。トークンにはユーザー ID とグループのメンバシップが含まれています。SharePoint Web アプリケーションによって、ユーザーが認証されます。ユーザーは、レポート サーバーのアイテムまたは操作を要求します。

  • 接続 2
    SharePoint Web アプリケーションからレポート サーバーに、トークンと要求が送信されます。接続要求はユーザーの Windows ID で送信されます。レポート サーバーによって、ユーザーがそのレポート サーバーにアクセスするための権限を持っているかどうかが確認されます。

  • 接続 3
    確認が成功すると、レポート サーバーでは、ユーザーがアイテムまたは操作にアクセスするための権限を持っているかどうかが確認されます。

    ユーザーの権限の確認には内部的なセキュリティ拡張機能が使用されます。この拡張機能を使用することにより Windows SharePoint Services オブジェクト モデルが呼び出され、SharePoint コンテンツ データベースに保存されている権限が確認されます。このセキュリティ拡張機能を構成または管理することはできません。この機能は、SharePoint 統合モードで動作するレポート サーバーに対して使用される内部的なコンポーネントです。

    ユーザーが、レポートやその他のアイテムまたは操作にアクセスするための権限を持っている場合、要求は処理されます。

Windows 統合セキュリティを使用することにより、1 回の接続の後 Windows 資格情報の有効期限が切れる従来の "ダブルホップ" 問題を解消できます。また、レポートやモデルに対してデータ ソース接続を構成するときのオプションも増えます。レポート サーバーへの接続で Windows ユーザー ID が使用される場合、レポート サーバーではレポートの処理中にその ID を使用して、外部データ ソースからデータを取得できます。つまり、レポートのデータ ソース プロパティを設定するときに、データ ソース接続に対して [Windows 統合セキュリティ] オプションを選択できます。詳細については、SQL Server オンライン ブックの「レポート データ ソースに関する資格情報と接続情報の指定」を参照してください。

Windows 認証またはフォーム認証と信頼されたアカウント

SharePoint Web アプリケーションがフォーム認証用に構成されている場合、レポート サーバーへの接続は定義済みの信頼されたアカウントの下、ネットワークを介して送信されます。この信頼されたアカウントは、レポート サーバー上で SharePoint ユーザーの権限を借用する権限を持っているアカウントです。同様に、SharePoint Web アプリケーションが Windows 認証用に構成され、Kerberos が有効になっていない場合も、同じ方法が使用されます。次の図は、信頼されたアカウントと SharePoint ユーザー ID が使用される場合の接続を示しています。

信頼関係接続の接続図

  • 接続 1
    ユーザーが SharePoint サイトにログオンします。SharePoint Web アプリケーションによって、ユーザーが認証されます。ユーザー ID が SharePoint ユーザー ID (SPUser) に変換され、このユーザー用の新しいユーザー トークンが SPUser のコンテキストで作成されます。トークンにはユーザー ID とグループのメンバシップが含まれています。ユーザーは、レポート サーバーのアイテムまたは操作を要求します。

  • 接続 2
    SharePoint Web アプリケーションで SharePoint ユーザー ID の権限が借用され、レポート サーバーへの要求が行われます。接続要求は信頼されたアカウントを使用して送信されます。このアカウントは SharePoint Web アプリケーションのプロセス ID です。

    レポート サーバーによって、その接続要求が信頼されたアカウントからのものかどうかが確認されます。これは、レポート サーバーが起動時に SharePoint 構成データベースから取得したアカウント情報と比較することによって行われます。レポート サーバー上では、信頼されたアカウントは SharePoint Web アプリケーションの権限を借用する権限を持つ Windows ユーザーであり、SPUser の権限を借用するためにだけ使用されます。レポート サーバーのアイテムと操作へのアクセスは許可されません。

  • 接続 3
    確認が成功すると、レポート サーバーでは、SPUser がアイテムまたは操作にアクセスするための権限を持っているかどうかが確認されます。

    レポート サーバーでは内部的なセキュリティ拡張機能を使用することにより、ユーザーの権限が確認され、Windows SharePoint Services オブジェクト モデルが呼び出され、SharePoint コンテンツ データベースに保存されている権限が確認されます。ユーザーが、レポートやその他のアイテムまたは操作にアクセスするための権限を持っている場合、要求は処理されます。

アカウントの有効期限とサブスクリプション処理

レポートのサブスクリプションを作成すると、レポート サーバーで SPUser のアカウント情報が保存されます。これによって、配信時にユーザーがレポートを表示する権限を持っているかどうかを確認できるようになります。SPUser の有効期限が切れている場合、サブスクリプションは失敗し、rsSharePointError エラーが返されます。TokenTimeout という名前のファーム レベルのプロパティによって、SPUser の有効期間が決まります。

一意なドメイン ユーザー アカウントを使用するように管理者アカウントおよびサービス アカウントを構成する

配置された SharePoint の製品またはテクノロジでは、サービスの実行や、フロントエンド/バックエンド サーバーへのアクセスに、多様なアカウントが使用されます。配置のドメイン アカウントを指定する場合は、推奨事項に従って、SharePoint Web アプリケーションによって排他的に使用されているアカウントを指定します。SharePoint サイトにアクセスする可能性のある実際の人物のドメイン ユーザー アカウントで実行されるようなサービス アカウントは構成しないでください。サービス資格情報を使用して SharePoint サイトにアクセスした場合、エラーが発生する可能性があります。サービス アカウント要件および推奨事項の詳細については、Windows SharePoint Services 3.0 の製品ドキュメントの「管理アカウントおよびサービス アカウントを計画する」を参照してください。

スケールアウト配置で認証プロバイダを構成する際の推奨事項

Reporting Services のスケールアウト配置と SharePoint 製品または SharePoint テクノロジを使用している場合に、複数の異なる認証プロバイダをその環境で構成すると、ユーザー認証で問題が発生する可能性があります。たとえば、レポート環境でインターネット接続にフォーム認証、イントラネット接続に Windows 認証を使用している場合、要求の認証タイプと一致しない認証プロバイダを使用している Web フロントエンド コンピュータに要求が転送される可能性があります。これが原因で Reporting Services が要求のアクセスを拒否したり、要求したユーザーではなくアプリケーション プール ID を使用して要求が実行される場合があります。

通常は、別々の URL を使用してインターネットとイントラネットのコンテンツにアクセスすることをお勧めします。または、インターネットに接続しているサイトのインターネット プロトコル (IP) アドレスをインターネット URL にマッピングして、Web フロントエンド コンピュータ上のホスト ファイルがドメイン名システム (DNS) 参照をオーバーライドするように構成すると、インターネット URL への要求が DNS によってイントラネット URL に転送されるのを防ぐことができます。

レポート サーバーから SharePoint コンテンツ データベースへのアクセス方法

SharePoint Web アプリケーションとレポート サーバーは、どちらも各自のデータベースにアクセスしてアプリケーションの状態やその他のデータを保存しますが、レポート サーバーはさらに、SharePoint データベースに接続してアイテム、プロパティ、構成の設定を保存および取得する必要があります。次の図は、各種データベースへのサーバー接続を示しています。

接続図

SharePoint Web アプリケーションでは、ローカルまたはリモートのデータベースを内部記憶域として使用できます。SharePoint データベースがリモート コンピュータ上に存在しない場合は、接続にドメイン アカウントを使用する必要があります。

レポート サーバーでは、ローカルまたはリモートのデータベースを内部記憶域として使用できます。どちらの種類でも、データベース接続はドメイン アカウント、SQL Server ログイン、または Network Service や Local System などのビルトイン アカウントを使用して実行できます。

レポート サーバーから SharePoint データベースへの接続

Reporting Services では、Web サービスと Windows サービスの両方で SharePoint へのアクセスが必要です。これら 2 つのサービスのサービス アカウントは、SharePoint Web アプリケーション内では信頼されたユーザーとして実行され、SharePoint データベースにアクセスするための権限が自動的に与えられます。

接続は内部的に管理されます。つまり、SharePoint のサーバー管理を使用して、SharePoint Web アプリケーションがレポート サーバーをポイントするようにし、信頼されたアカウントを設定することで、接続を構成します。レポート サーバーから自身のデータベースへの接続は Reporting Services 構成ツールを使用して設定または変更できますが、対照的に、レポート サーバーから SharePoint データベースへの接続は明示的に構成および管理を行うことができません。

SharePoint 統合モードでレポート サーバーを実行すると、Reporting Services でサービス アカウントを作成する方法に関して制約が発生します。サービス アカウントを構成するときは、次のガイドラインに従ってください。

  • レポート サーバーのサービス アカウントでリモート コンピュータ上の SharePoint データベースに接続する必要がある場合は、ネットワークへのログオン権限を持つアカウントを選択します。

  • レポート サーバーと SharePoint データベースが 1 台のコンピュータ上にあり、SharePoint Web アプリケーションがリモート コンピュータ上にある場合は、ビルトイン アカウント (Local SystemNetwork Service など) を使用しないようにします。SharePoint データベースがリモート コンピュータ上で実行されている場合、SharePoint Web アプリケーションではそのリモート コンピュータで定義されているビルトイン アカウントへのデータベース アクセスは明示的に拒否されます。つまり、そのコンピュータ上のビルトイン アカウントで実行されているすべてのサービスは、SharePoint データベースに接続できません。

  • 同じコンピュータまたは異なるコンピュータ上にサーバーとデータベースを置くその他のすべてのトポロジでは、Reporting Services のサービス アカウントをドメイン アカウントまたはビルトイン アカウントとして構成できます。

SharePoint データベースへの接続時のエラー

レポート サーバーから SharePoint データベースにアクセスできない場合で、構成エラーがある場合 (サービス アカウントまたはパスワードが有効でない場合や、Windows SharePoint オブジェクト モデルがインストールされていない場合など) は、rsServerConfigurationError エラーが発生します。その他のすべての接続エラーには、rsSharePointError エラーが返されます。ローカルの Windows SharePoint Services インスタンスからの追加のエラー情報がある場合もあります。

変更履歴

変更内容

「SharePoint テクノロジの認証プロバイダ」セクションに認証プロバイダの長所と短所をまとめた表を追加しました。

「スケールアウト配置で認証プロバイダを構成する際の推奨事項」に新しいセクションを追加しました。