2

これは、そのスレッドに長い投稿を送信できないため、 Reporting Services 認証のアドバイスを求めた投稿の延長です(管理者に申し訳ありません)。

基本的に、Windows 認証を使用するようにレポート サービスのローカル インストールを構成しています (ネットワーク上でこの認証を実装することを最終的な目的としています)。

私の現在の設定:

IIS (5.1): ASP.NET v2.0.50727 を使用する「ReportServer」という名前のアプリケーションを作成しました。このアプリケーションのセキュリティは「統合 Windows 認証」に設定されています。「匿名アクセス」チェックボックスをオフにしました。これにより、IIS への匿名アクセス (つまり、IIS の ReportServer アプリケーションへのアクセス) のみが防止されると考えてよろしいですか? したがって、ユーザーはログインの詳細を求められ、Windows/AD に対して検証されますか?

レポート: データベースが別のサーバーに存在する共有データ ソースを作成し、データ ソースが "Windows 認証" (SQL Server 認証ではない) を使用するように構成したところ、接続を正常にテストできました。BIDS でレポートを実行することにより、簡単なレポートを作成してテストすることもできます。

レポートを展開すると、ログインを求めるプロンプトが表示されません (問題ありません)。これは、IIS のアプリケーション ディレクトリが、ログインした PC ユーザー アカウントを使用する「統合 Windows 認証」を使用するように構成されているためだと思います (正しいですか?)。

ブラウザからレポート サービスをロードすると、Windows ドメインのユーザー名とパスワードの入力を求めるプロンプトが正しく表示されますが、それはローカル PC からレポートを実行した場合のみです。認証されると、自分に該当するすべてのレポートを表示できます。同僚が私の PC のレポート インスタンスに接続しようとすると、ログインしなくても許可されます。どうしてこれなの?!

しかし、デプロイされたレポートをブラウザーで実行すると、「レポートの処理中にエラーが発生しました。データ ソースへの接続を作成できません。ユーザー '(null)' のログインに失敗しました。理由: 信頼済みに関連付けられていません」というエラーが表示されます。 SQL サーバー接続。」SQL Server 認証を使用するようにデータ ソースを変更し、SQL Server に存在するログインを指定すると、ブラウザーでレポートを正常に実行できます。

私が実装したい理想的なソリューションは次のとおりです。

  1. ユーザーは、レポート サーバーの URL をブラウザーに読み込みます。
  2. ユーザーは、Windows/AD 資格情報 (ドメイン プレフィックスを含む) の入力を求められます。
  3. バックグラウンドで、ユーザーはレポート サーバーにアクセスできます。
  4. ユーザーは、閲覧が許可されているレポート フォルダとレポートのみを閲覧できます。これは、許可された AD グループ/ユーザーをレポート フォルダーとレポートに追加することによって制御されます (私はこの方法を少し知っています)。別の SQL Server ユーザー アカウントを維持する必要はありません。

つまり、レポート サーバーに接続すると、レポート サーバーへのアクセスを許可する前に、ユーザーに Windows 資格情報の入力を求めるプロンプトが表示されます。

誰か教えてください:

a) ブラウザーを介してローカルでレポートにアクセスすると Windows ログインを求められるのに、別の Windows ユーザーがブラウザー ウィンドウを介してレポート サーバーにリモート アクセスする場合、ログインを求められないのはなぜですか?

b) より良い全体的な解決策を実装する必要がある場合は、アドバイスまたは関連するリソースを教えてください。

c) 将来的に問題を引き起こす可能性がある現在のセットアップで注意すべきことはありますか?

よろしくお願いします。

JFB

4

2 に答える 2

2

対処すべきセキュリティの側面は2つあります

  1. レポートにアクセスするユーザーの認証
  2. データベースにアクセスするデータソースの認証

通常、ポイント#1で許可されていないユーザーを追い出し、(ユーザーが許可されていると仮定して)データソースに静的な接続資格情報のセットを提供する必要があることがわかりました。これには、接続プールやDBAは、「レポートデータソースユーザー」に対して構成するだけでよいため、どのユーザーがどのデータベースにアクセスし、どのレポートSPROCなどを実行できるかを判断する際の煩わしさを大幅に軽減します。

ポイント#1は、レポート/フォルダーに追加されたグループ/ユーザーによって制御されます。

ポイント2は、データソースのドメインクレデンシャルを設定し、このユーザーにアクセスする必要のあるさまざまなデータベースへの適切な読み取り/実行アクセスを割り当てることで実行できます。

おそらくあなたが見逃しているかもしれない1つのポイントは、データソースのクレデンシャルが機能するために必要に応じて「ローカルにログオンする」権限で実行されるということですか?

FWIWデータソースの設定は次のとおりです。

  • レポートサーバーに安全に保存された資格情報
  • チェック:データソースに接続するときにWindowsクレデンシャルとして使用する

あなたを実行しているアカウント

于 2012-11-22T15:50:44.533 に答える
1

これが発生している(つまり、user = null)理由は、レポートサーバーにKerberos資格情報の検証を要求しているためです。ここには広範な投稿がありますが、問題の核心は、レポートサーバーにWindowsクレデンシャルの検証を要求しているが、ActiveDirectoryはマシンがこれらを渡すことを信頼していないことです。委任が正しく設定されていれば、ログインプロンプトがなくても要件を満たし、ポイント#4を介して可視性を制御できます。

于 2012-11-22T15:50:10.883 に答える