0

これが状況です。私は古いデータベースにアクセスするための新しいウェブサイトの開発に取り組んでいます。これはDoDインストールであるため、周囲には多くのセキュリティがあります。

現在のアプリケーションは、従来のASP、VBScript、および一部のjavascriptで記述されています。新しいシステムはASP.NETです。

古いシステムのデータベースにアクセスするということは、自分の資格情報(domainname \ username)でサーバーにアクセスすることを意味していました。今、私は私が行った初期の開発のいくつかをテストしようとしています。カッシーニ(VS2008で)を使用したとき、ourdomain \myusernameがSQLServerインスタンスに信頼できる接続として登録されていたため、データベースに問題なくアクセスできました。私が書かなければならないセキュリティの側面のために、カッシーニはもはやテストサーバーとして機能することができません-私はIISを使用する必要があります(ここにセキュリティカードリーダーがあります)。カッシーニはそれらを処理できません。

そのため、IISを使用しながらVS2008でデバッグできるように、ローカルPCの管理者に適切なアカウントを追加するというすべての問題を経験したとき、データベースに接続しようとしましたが、MYPC\ASPNETが信頼できないため拒否されました繋がり。

既存のデータベースを変更することは問題外です。データベースにアクセスするためのユーザー名とパスワードをハードコーディングすることは問題外です。

DBAにドメイングループのMYPC\ASPNETを追加して、SQL Serverがそれを信頼できる接続と見なすことができるかどうかを尋ねました(MYDOMAIN \ MYNAMEは信頼できる接続と見なされるグループに含まれていたため)。彼はそれは技術的に不可能だと私に言った。

最終的に、ASPNETアカウントが2つのSQLサーバー(ライブとテスト)にアクセスする3台または4台のマシン(私の、別の開発者、最終的なライブWebサーバーおよび将来のテ​​ストWebサーバー)が存在することになります。

既存のSQLサーバーに私を敵ではなく友人として表示させるにはどうすればよいですか?なりすましを調べましたが、システムと互換性がないという印象を受けました。ビジネスルールは、共通のルーチンを呼び出してSqlConnectionオブジェクトを作成し、それを開きます(おそらく、それに対応するSqlTransactionオブジェクトも)。このオブジェクトが使用されます。残りのビジネスルールとデータアクセスレイヤーは、完了するまで。SqlConnectionが開かれると(そして、ByRefが呼び出し元のルーチンに戻されると)、なりすましが持続するようには見えませんでした。

アドバイスをよろしくお願いします。

4

4 に答える 4

1

次の 2 つのオプションがあります。

  1. ドメイン アカウントのコンテキストで実行するように構成されたアプリケーション プールで Web アプリケーションを実行します。
  2. 偽装を使用し、Windows 認証のみを使用するように Web アプリケーションを構成する
于 2009-03-27T16:37:49.693 に答える
0

偽装を使用する

于 2009-03-27T16:34:02.340 に答える
0

Web サイトにアクセスしているクライアントを偽装したいようですね。なりすましを使おうとしたことがありますか、それともうまくいかないと思いますか?

編集

Albert が指摘しているように、偽装するには、Windows 認証を使用してユーザーを認証する必要があります。匿名アクセスを無効にし、IIS 管理ツールで Windows 認証を有効にします。

于 2009-03-27T16:34:32.307 に答える
0

すでに提案されているように、偽装を使用する必要があります。

ただし、SQL Server が Web サーバーとは別のマシンで実行されている場合、ユーザーの資格情報が SQL Server (サーバー ホップ) に委任されないため、偽装では不十分です。その場合、AD で委任を有効にするか、SQL Server で Windows 以外のログインを作成して代わりに使用する必要があります (SQL Server が実際にテーブルなどへのアクセス制御に Windows ログインを使用している場合、これは機能しません)。 .

于 2009-03-27T16:47:37.627 に答える