Reporting Services でカスタム認証またはフォーム認証を構成する方法

Reporting Services に用意されている拡張可能なアーキテクチャを使用すると、カスタム認証モジュールまたはフォームベースの認証モジュールを組み込むことができます。配置の要件に Windows 統合セキュリティまたは基本認証が含まれていない場合は、カスタム認証拡張機能を実装することを検討してください。カスタム認証を使用する最も一般的なシナリオは、インターネットまたはエクストラネットを介した Web アプリケーションへのアクセスをサポートすることです。既定の Windows 認証拡張機能の代わりにカスタム認証拡張機能を使用することで、レポート サーバーへのアクセスを外部ユーザーに許可する方法をより細かく制御できます。

実際に、カスタム認証拡張機能を配置するには、アセンブリとアプリケーション ファイルのコピー、構成ファイルの変更、テストを含む、複数の手順を実行する必要があります。ここでは、構成ファイルで指定する認証設定のみに焦点を当てて説明します。実行する必要のあるすべての手順を含む完全なチュートリアルについては、「Security Extension Sample」を参照してください。

注意注意

カスタム認証拡張機能を作成するには、カスタム コードと ASP.NET セキュリティに関する専門知識が必要です。カスタム認証拡張機能を作成しない場合は、Microsoft Active Directory のグループとアカウントを使用できます。ただし、レポート サーバーの配置のスコープを大幅に縮小する必要があります。カスタム認証の詳細については、「セキュリティ拡張機能の実装」を参照してください。

さらに、Windows SharePoint Services (WSS) 3.0 または MicrosoftOffice SharePoint Server (MOSS) 2007 と統合された Reporting Services 環境でフォーム認証またはカスタム認証拡張機能を使用する場合は、選択した認証方法を使用するように SharePoint サイトを構成する必要があります。SharePoint における認証の構成に関する詳細については、Microsoft Developer Network (MSDN) の「認証の例」を参照してください。

注記注意

ブルート フォース攻撃を緩和するのはフォーム プロバイダーの仕事です。この攻撃では、悪意のあるユーザーが、サーバーに悪影響が及ぶまでエンドポイントへの呼び出しを頻繁に繰り返します。フォーム プロバイダーでは、この種のセキュリティ上の脅威を緩和する一般的な手段として、誤ったログイン試行が特定の回数行われたときにアカウントをロックする機能を実装しています。Windows 統合セキュリティでは、ドメインのロックアウト ポリシーに従ってロックアウトがサポートされています。ドメインのロックアウト ポリシーは、ドメイン管理者が構成する必要があります。ただし、フォーム認証の場合に、潜在的な脅威に対して保護を提供するのはフォーム プロバイダーの役割です。

カスタム認証を使用するようにレポート サーバーを構成するには

  1. テキスト エディターで RSReportServer.config を開きます。

  2. <Authentication> を探します。

  3. 次の XML 構造をコピーします。

    <Authentication>
          <AuthenticationTypes>
                 <Custom />
          </AuthenticationTypes>
          <EnableAuthPersistence>true</EnableAuthPersistence>
    </Authentication>
    
  4. これを <Authentication> の既存のエントリに貼り付けて上書きします。

    Custom は他の認証の種類と併用できないので注意してください。

  5. ファイルを保存します。

  6. レポート サーバーの Web.config ファイルを開きます。このファイルは、既定では \Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\ReportServer にあります。

  7. authentication mode を探して、Forms を設定します。

    <authentication mode = "Forms" />
    
  8. identity impersonate を探して、False を設定します。

    <identity impersonate = "false" />
    
  9. レポート マネージャーの Web.config ファイルを開きます。このファイルは、既定では \Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Serivces\ReportManager にあります。

  10. authentication mode を探して、Forms を設定します。

    <authentication mode = "Forms" />
    
  11. identity impersonate を探して、False を設定します。

    <identity impersonate = "false" />
    
  12. 構成ファイルに PassThroughCookies 要素構造を追加します。詳細については、「レポート マネージャでカスタム認証 Cookie を送信できるようにする方法」を参照してください。

  13. ファイルを保存します。

  14. スケールアウト配置を構成した場合は、配置内の他のレポート サーバーに対して上記の手順すべてを繰り返します。

  15. レポート サーバーを再起動して、現在開いているセッションを消去します。