2008-09-17 1 views
2

内部Webアプリケーションのデータベースレイヤへのエンドツーエンド認証のベストプラクティスを探しています。イントラネットアプリケーションのデータベース認証

私が見た中で最も一般的なシナリオは、アプリケーションで必要とされるものに設定されたアクセス権を持つ単一のSQLアカウントを使用することです。このアカウントはすべてのアプリケーション呼び出しで使用されます。次に、クエリツールを使用してデータベースにアクセスする必要がある場合や、クエリアクセスで別のグループが作成され、そのグループにアクセス権が与えられた場合。

私が見たもう1つのシナリオは、完全なWindows認証エンドツーエンドを使用することです。したがって、ユーザ自身が、すべての権限が設定されているグループに追加され、ユーザはアプリケーションのパラメータの外で更新や変更を行うことができます。これは通常、適切なストアドプロシージャを使用してテーブルを直接更新しないようにします。

最初のシナリオは維持することが比較的容易と思われるが、その後データベース全体が危険にさらされているアプリケーションにセキュリティホールが存在する場合の懸念を提起します。

2つ目のシナリオでは、より安全なようだが、データベースのストアド・プロシージャで多くのビジネス・ロジックを有するの反対の懸念を持っています。これはNhibernateやLINQのような本当にクールなテクノロジーの使用を制限しているようです。しかし、人々が非常に多くの異なる方法でデータを使用することができるこの頃と現在では、我々は予期していない。マッシュアップなどはこれが最善のアプローチです。

答えて

2

デール - それは正確です。これらのユーザーに基盤となるデータストアへのアクセスを提供する場合は、サービス経由でアクセスします。そして私の経験では、Uni/Collegeから出てきた経験豊富なコンピュータユーザーが、最も被害を与えるのです。言い伝えが進むにつれて、彼らは危険にさらされるだけのことを知っています。

ジョブの一部を自動化し、必要な知識があると表示できる場合は、ドメインアカウントにバックエンドへのアクセスを許可します。そうすれば、小さなVBAの自動化で行うことは自分のアカウントに結びついていて、データが絡み合ったときに誰が見守るべきか正確に知ることができます。

私の基本的なポイントは、データベースがアプリケーションの誇大な聖杯であることです。あなたはその特定のパイにできるだけ少ない指が欲しいです。

コンサルタントとして、誰かがデータベースに通常のユーザーを許可していると聞くたびに、私がそれを修正するために呼び出されるときに私にとって大きな収入になることを知っているので、私の目が輝きます。

1

私は個人的には、通常のエンドユーザーをデータベースに入れないようにします。イントラネットアプリケーション(特にドメイン上にあるアプリケーション)では、アプリケーションが機能するために必要な権限しか持たないデータベースへのアプリケーションアクセス用の単一のアカウントを提供します。アプリケーションへ

アクセスは、(IISで匿名アクセスなどをオフにする)ユーザーのドメインアカウントを介して制御されるだろう。

IFユーザーのニーズ、および正当化することができ、データベースへの直接アクセスは、その後、そのドメインアカウントは、データベースへのアクセス権を与えられるであろう、と彼らは適切なツールを使用してDBMSにログインすることができます。

0

私は過去1年間にいくつかの社内Webアプリケーションの開発を担当してきました。

私たちのソリューションは、Windows認証(Active DirectoryまたはLDAP)を使用していました。

私たちの目的は、単に既存の会社ID /パスワードを使用して簡単なログインを許可することでした。また、既存の部門が引き続きアクセス権限の検証と管理を担当することを確認したかったのです。

NhibernateまたはLINQに関する議論には答えられませんが、Active DirectoryまたはLDAPは、これらの機能が実装できる特定のキラー機能がないかぎり、実装することはできません。

0

スティーブン - データベースのうち、通常のエンドユーザーを保つことはいいですが、この日および年齢であれば、私は非常に多くの経験豊富なコンピュータユーザーは、この場合には大学/専門学校のうち、正しい道を来て疑問に思って。もし私が彼らが通常のアプリケーションを介して行うことを許可しているデータベースへのVBAアップデートを含む仕事の一部を自動化したいのであれば、このようにアクセスを制限することで利益が失われます。

私はここで暗黙の他のパスはあなたがサービスを介してアプリケーションを開き、その後基を介してそれらのサービスを確保し、まだデータベースから分離し、ユーザーを保つことができていると思います。

次に、委任によって、部門が自分のアカウントへのアクセスを、ジョナサンの投稿ごとにグループを介して制御できるようにすることができます。

0

私はStephen Wrightonに同意します。ドメインセキュリティは道のりです。マッシュアップと無駄を使用する場合は、マシンの読取り可能なRESTfulインターフェイスを使用してデータベースの一部を公開することができます。 SubSonicには、built inが1つあります。

関連する問題