私たちは、MS SQL Server Analysis Services 2005 を使用して一部のレポート (特に OLAP キューブの参照) を使用するホスト アプリケーションを構築しています。非常に大規模なグローバル組織で使用されるように設計されているため、セキュリティは重要です。
OLAP キューブをブラウズするための Microsoft の優先クライアント ツールは Excel 2007 であり、インフラストラクチャ全体が Windows 統合認証に合わせて調整されているようです。ただし、インターネットに接続する Web アプリケーションを構築しようとしており、すべてのユーザーに Windows アカウントを作成する必要はありません。
また、優れた AJAXy Web ベースの OLAP キューブ ブラウジング ツール (高速、ディメンションのドラッグ アンド ドロップ、アクションのサポート、クロス ブラウザーなど) はあまりないようです。余談ですが、現在Dundas OLAP Gridを使用しています。しかし、 RadarCubeやその他のより高価な商用ソリューションも検討しており、 CellSetGridを採用してさらに開発することをまだ考えています。他の安価でオープンなソリューションを知っている場合は、お知らせください。
そのため、キューブ データへの 2 つのアクセス モードを提供することを計画しています。
- これらのサードパーティの Web ベースの OLAP ブラウジング ツールのいずれかを使用して、独自の Web アプリケーションを介して。
- msmdpump.dll データ ポンプを介して HTTPS 経由で Excel から直接アクセスします。これは、Web バージョンが遅すぎる/不格好な場合、またはユーザーがより強力な分析を必要とする場合に使用します。
Web アプリ アクセスの場合、SSAS データ ソースへの接続は Web サーバーから行われるため、どのユーザーが接続しているかを示す接続文字列で CustomData 項目を問題なく渡すことができます。個々の SSAS ロールを作成するには権限の組み合わせが多すぎる可能性があるため、接続文字列の CustomData アイテムと組み合わせて "Cube Users" ディメンションを使用し、他のさまざまなディメンション メンバーの許可セットを制限する動的ディメンション セキュリティを実装しました。それに応じて (「権限マッピング」を含むメジャー グループとの他の多対多のディメンション関係を介して)
Dimension Security に関する Mosha を参照してください: http://www.sqljunkies.com/WebLog/mosha/archive/2004/12/16/5605.aspx
これまでのところ、これはすべて正常に機能しているようです。
Excel からの「直接接続」については、HTTP アクセス用のデータ ポンプを設定します ( MS Technet の記事を参照)。ただし、Windows アカウントがないため、接続文字列を使用してアクセスを制御し、匿名アクセスを有効にしました。ただし、この場合、接続文字列はユーザーによって制御されます (Web アプリから .odc ファイルをプッシュしますが、好奇心旺盛なユーザーはそれを表示および変更できます)。 =grunt@corp.org から CustomData=superuser@corp.org への変更。結局のところ、 Windows 統合認証を使用していない場合、ロールも接続文字列で指定されるため、これはロールでも同じ問題を引き起こします。
したがって、問題は次のようになります。IIS で基本認証を Windows アカウントなしで動作させ、SSAS データ ポンプで使用して、どのユーザーが接続しているかを SSAS に知らせて、動的ディメンション セキュリティを使用できるようにする方法はありますか?うまく使う?
(これは StackOverflow に関する私の最初の質問であり、おそらく私が今までに尋ねた中で最も複雑な質問です。自分自身をよく説明していない場所を教えてください。明確にしようとします)