2

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

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

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

最初のシナリオは保守が比較的簡単に見えますが、アプリケーションにセキュリティ ホールがあり、データベース全体が危険にさらされている場合に懸念が生じます。

2 番目のシナリオはより安全に見えますが、データベースのストアド プロシージャに多くのビジネス ロジックが必要になるという反対の懸念があります。これにより、Nhibernate や LINQ などの非常に優れたテクノロジの使用が制限されているようです。しかし、人々が非常に多くの異なる方法でデータを使用できるこの時代では、たとえばマッシュアップなどは、これが最善のアプローチであるとは予測していません。

4

5 に答える 5

2

デール - その通りです。これらのユーザーに基礎となるデータストアへのアクセスを提供したい場合は、サービスを介して行います。そして私の経験では、物事に最も大きなダメージを与えるのは、Uni/College を卒業した経験豊富なコンピューター ユーザーです。ことわざにあるように、彼らは危険であることを十分に知っています。

仕事の一部を自動化する必要があり、必要な知識があることを示すことができる場合は、バックエンドへのドメイン アカウントアクセスを許可してください。そうすれば、小さな VBA 自動化を介して彼らが行うことはすべてアカウントに結び付けられ、データが流出したときに誰を調べればよいかを正確に知ることができます。

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

コンサルタントとして、誰かが通常のユーザーにデータベースへのアクセスを許可したと聞くと、目を輝かせます。なぜなら、それを修正するように呼び出されたときに、最終的には高額の報酬になることを知っているからです。

于 2008-09-17T02:16:50.777 に答える
1

個人的には、データベースに通常のエンド ユーザーを入れたくありません。イントラネット アプリケーション (特にドメイン上に存在するアプリケーション) の場合、アプリケーションが機能するために必要な権限のみを持つ、データベースへのアプリケーション アクセス用の 1 つのアカウントを提供します。

アプリケーションへのアクセスは、ユーザーのドメイン アカウントを介して制御されます (IIS で匿名アクセスを無効にするなど)。

ユーザーがデータベースへの直接アクセスを必要とし、それを正当化できる場合、そのドメイン アカウントにはデータベースへのアクセスが与えられ、適切なツールを使用して DBMS にログインできます。

于 2008-09-17T01:43:15.320 に答える
0

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

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

私たちの目的は、既存の企業 ID/パスワードを使用して簡単にログインできるようにすることだけでした。また、既存の部門が引き続きアクセス許可の確認と管理を担当するようにしたいと考えていました。

Nhibernate や LINQ に関する議論には答えられませんが、実装できる特定のキラー機能がない限り、Active Directory や LDAP は簡単に実装および維持できるので、試してみる価値があります。

于 2008-09-17T01:48:06.197 に答える
0

私はスティーブン・ライトンに同意します。ドメインのセキュリティは、行く方法です。マッシュアップなどを使用したい場合は、機械可読な RESTful インターフェイスを介してデータベースの一部を公開できます。SubSonicには 1 つが組み込まれています。

于 2008-09-17T02:15:08.520 に答える
0

Stephen - 通常のエンド ユーザーをデータベースから遠ざけるのは良いことですが、多くの経験豊富なコンピューター ユーザーが大学から出てくるこの時代に、これが正しい道なのかどうか疑問に思っています。データベースへの VBA 更新を含むジョブの一部を自動化したい場合、通常のアプリケーションを介して行うことができますが、このようにアクセスを制限することで利益を失うことになります。

ここで暗示されているもう 1 つのパスは、サービスを介してアプリケーションを開き、グループを介してこれらのサービスを保護し、ユーザーをデータベースから分離したままにすることができると思います。

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

于 2008-09-17T02:01:41.140 に答える