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

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

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

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

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

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

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

  • Kerberos を使用する Windows 認証

  • NT LAN Manager (NTLM) を使用する Windows 認証

  • フォーム認証

注意

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

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

長所

短所

Kerberos を使用する Windows 認証

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

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

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

複合ドメインおよび構成サーバーの構成が必要です。

NTLM 認証またはフォーム認証を使用する Windows 認証

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

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

SharePoint 要求認証

SharePoint 2010 製品は、要求ベースの認証をサポートしています。SharePoint 統合モードの SQL Server 2008 R2 Reporting Services は、信頼されたアカウント認証と SharePoint ユーザー トークンを使用することで、SharePoint 要求に対応した Web アプリケーションと機能します。Reporting Services で要求認証がどのようにサポートされるかの詳細については、「要求認証と Reporting Services」を参照してください。要求ベースの認証の詳細については、「要求ベースの ID の概要」を参照してください。

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

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

Kerberos を使用する Windows 統合セキュリティ

SharePoint Web アプリケーションが Kerberos を使用する Windows 認証用に構成される場合、SharePoint Web アプリケーションからレポート サーバーへの接続では、現在の Windows ユーザーの権限を借用した資格情報またはこの権限が委任された資格情報を使用できます。Windows 統合セキュリティと Kerberos および ID 委任を組み合わせて使用することにより、1 回の接続の後 Windows 資格情報の有効期限が切れる従来の "ダブルホップ" 問題を解消できます。また、レポートやモデルに対してデータ ソース接続を構成するときのオプションも増えます。次の図は、レポート サーバーが SharePoint 統合用に構成され、SharePoint Web アプリケーションで Windows 認証と Kerberos および ID 委任を組み合わせて使用している場合の接続を示しています。

SharePoint 統合モードでの接続

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

  • 接続 2
    SharePoint Web アプリケーションからレポート サーバーに、トークンと要求が送信されます。接続要求はユーザーの委任された Windows ID で送信されます。レポート サーバーによってユーザーの認証が行われ、そのユーザーにレポート サーバーへのアクセスを許可するかどうかを確認します。

  • 接続 3
    認証が成功した場合、レポート サーバーは Reporting Services インスタンスのユーザー アカウントを使用して SharePoint コンテンツ データベースへの接続を確立し、アイテムまたは操作へのアクセスをユーザーに承認することを確認します。承認が成功した場合、レポート サーバーは要求に対応します。

  • 接続 4
    ユーザーがレポートを表示している場合、レポート サーバーではレポートの処理中にユーザーの Windows ID を委任して、外部データ ソースからデータを取得できます。つまり、レポートのデータ ソース プロパティを設定するときに、データ ソース接続に対して [Windows 統合セキュリティ] オプションを選択できます。詳細については、SQL Server オンライン ブックの「レポート データ ソースに関する資格情報と接続情報の指定」および「共有データ ソースを作成および管理する方法 (Reporting Services の SharePoint 統合モード)」を参照してください。

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

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

信頼関係接続の接続図

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

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

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

  • 接続 3
    認証が成功した場合、レポート サーバーは Reporting Services インスタンスのユーザー アカウントを使用して SharePoint コンテンツ データベースへの接続を確立し、アイテムまたは操作へのアクセスを SPUser に承認することを確認します。承認が成功した場合、レポート サーバーは要求に対応します。

  • 接続 4
    ユーザーがレポートを表示している場合、"ダブルホップ" 問題により、レポート サーバーでは SPUser を使用して外部データ ソースからデータを取得することはできません。つまり、レポートのデータ ソース プロパティを設定するときに、データ ソース接続に対して [Windows 統合セキュリティ] オプションを選択することはできません。ただし、保存された資格情報や要求された資格情報など、他の接続オプションを使用するようにレポートを構成できます。詳細については、SQL Server オンライン ブックの「レポート データ ソースに関する資格情報と接続情報の指定」および「共有データ ソースを作成および管理する方法 (Reporting Services の SharePoint 統合モード)」を参照してください。

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

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

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

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

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

Reporting Services のスケールアウト配置と 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 データベースに接続することはできません。これは、レポート サーバーが SharePoint データベースと同じコンピューターで実行されているためです。

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

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

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

SharePoint と SSRS 認証トポロジ

SharePoint、SSRS 認証方法、および使用方法のサポートされる組み合わせを次の表に示します。

SharePoint と SSRS が同一コンピューター上にある

SharePoint 認証

SSRS 統合モード

SSRS 認証

SSRS にアクセスするアカウント

データ ソースの資格情報

はい

Kerberos

統合

Negotiate

ユーザー (ユーザーのセキュリティ コンテキストを委任できる)

統合、保存された資格情報、プロンプト

はい

Kerberos

統合

NTLM

サポートされていません

はい

Kerberos

信頼済み

Negotiate または NTLM

サイト サービス アカウント

保存された資格情報、プロンプト、統合 (+)

はい

NTLM

統合

Negotiate

サポートされていません

はい

NTLM

統合

NTLM

ユーザー (ユーザーのセキュリティ コンテキストを委任できない)

保存された資格情報、プロンプト、統合、ローカル

はい

NTLM

信頼済み

Negotiate または NTLM

サイト サービス アカウント

保存された資格情報、プロンプト、統合 (+)

はい

フォーム

統合

IUSR

サポートされていません

はい

フォーム

信頼済み

Negotiate または NTLM

サイト サービス アカウント

保存された資格情報、プロンプト、統合 (+)

いいえ

Kerberos

統合

Negotiate

ユーザー委任可能

統合、保存された資格情報、プロンプト

いいえ

Kerberos

統合

NTLM

サポートされていません

いいえ

Kerberos

信頼済み (*)

Negotiate

サイト サービス アカウント

保存された資格情報、プロンプト、統合 (+)

いいえ

Kerberos

信頼済み (*)

Negotiate

サイト サービス アカウント

保存された資格情報、プロンプト、統合、SSRS に対してローカルの場合のみ

いいえ

NTLM

統合

匿名

サポートされていません

いいえ

NTLM

信頼済み (*)

Negotiate

サイト サービス アカウント

保存された資格情報、プロンプト、統合 (+)

いいえ

NTLM

信頼済み (*)

NTLM

サイト サービス アカウント

保存された資格情報、プロンプト、統合、ローカルの場合のみ

いいえ

フォーム

統合

匿名

サポートされていません

いいえ

フォーム

信頼済み (*)

Negotiate

サイト サービス アカウント

保存された資格情報、プロンプト、統合 (+)

いいえ

フォーム

信頼済み

NTLM

サイト サービス アカウント

保存された資格情報、プロンプト、統合、ローカルの場合のみ

(+) SharePoint サイト サービス アカウントがローカル サイトの場合、データ ソースは Report Server コンピューターに対してローカルである必要があります。サイト サービス アカウントがドメイン アカウントの場合は、データ ソースは別のコンピューター上に存在することができます。

(*) SharePoint サイト サービス アカウントはドメイン アカウントである必要があります。

変更履歴

変更内容

認証トポロジ テーブルを追加しました。