セキュリティ拡張機能の概要

Reporting Services セキュリティ拡張機能を使用すると、ユーザーまたはグループの認証と承認を行えます。つまり、複数のユーザーがレポート サーバーにログオンし、それぞれ異なるタスクや操作を実行できます。既定では、Reporting Services は Windows ベースの認証拡張機能を使用します。この拡張機能は Windows アカウント プロトコルを使用して、システムのアカウントを持っていると主張するユーザーの ID を検証します。Reporting Services は、ロールベースのセキュリティ システムを使用してユーザーを承認します。Reporting Services のロールベースのセキュリティ モデルは、他の技術に見られるロールベースのセキュリティ モデルと類似しています。

セキュリティ拡張機能はオープンで拡張可能な API に基づいているので、認証と承認の新しい拡張機能を Reporting Services に作成できます。以下は、フォームベースの認証と承認を使用する一般的なセキュリティ拡張機能の実装例です。

Reporting Services のセキュリティ拡張フロー

図に示すように、認証と承認は次のように行われます。

  1. ユーザーが URL を使用してレポート マネージャへのアクセスを試行します。このユーザーは、クライアント アプリケーションに必要なユーザー資格情報を収集するフォームにリダイレクトされます。

  2. ユーザーが資格情報をフォームに送信します。

  3. ユーザー資格情報は、LogonUser メソッドによって Reporting Services Web サービスに送信されます。

  4. Web サービスは顧客指定のセキュリティ拡張機能を呼び出し、カスタム セキュリティ機関に存在するユーザー名とパスワードを検証します。

  5. 認証後、Web サービスは認証チケット (Cookie) を作成、管理し、レポート マネージャのホーム ページに対するユーザーのロールを検証します。

  6. Web サービスが Cookie をブラウザに返し、レポート マネージャに適切なユーザー インターフェイスを表示します。

  7. ユーザーの認証後、HTTP ヘッダーに Cookie を追加して転送する際、ブラウザはレポート マネージャに要求を発信します。これらの要求は、レポート マネージャ アプリケーション内でユーザーが行った操作に対応しています。

  8. HTTP ヘッダーの Cookie は、要求されたユーザー操作と共に Web サービスに転送されます。

  9. Cookie の有効性が確認された場合は、レポート サーバーがセキュリティ記述子を返します。さらに、要求された操作に関するレポート サーバー データベースからの情報を返します。

  10. Cookie が有効な場合、レポート サーバーはセキュリティ拡張機能を呼び出して、ユーザーが特定の操作の実行を許可されているかどうかを調べます。

  11. ユーザーに許可が与えられている場合、レポート サーバーは要求された操作を実行して、呼び出し元に制御を返します。

  12. ユーザーの認証後、レポート サーバーへの URL アクセスでは常に同じ Cookie が使用されます。Cookie は、HTTP ヘッダーの一部として転送されます。

  13. セッションが終了するまで、ユーザーは引き続き、レポート サーバーに対する操作を要求します。

セキュリティ拡張機能を実装すべき状況

可能な限り Windows 認証を使用することをお勧めします。ただし、次の場合は、Reporting Services でカスタム認証と承認を使用した方が適していることがあります。

  • Windows アカウントを使用できないインターネット アプリケーションまたはエクストラネット アプリケーションを実行する。

  • ユーザーとロールを独自に定義しており、それに合わせた承認方法を Reporting Services で使用する必要がある。