1

タイトルのためにこれをどのように表現するかは正確ではありませんが、ご容赦ください。また、この質問をグーグルで検索する方法さえわからないようですので、正しい方向に導くことができることを願っています.

私のソフトウェア (VB.NET アプリ) の一部には、共有ネットワーク フォルダーへのアクセス/読み取り/書き込み機能が必要です。上記のフォルダーにアクセスするために必要な資格情報をユーザーが指定するオプションがあります。

構成の一部として SQL Server データベースに指定されたこれらの資格情報を保存したい (構成を含むテーブルがあります)。

私の懸念は、ユーザー アカウントのパスワードが暗号化されないことです。ただし、パスワードを暗号化すると、パスワードが使用前に暗号化されていない限り、VB.NET アプリおよび/またはデータベースはファイル i/o 操作に資格情報を使用できなくなります。

この状況をより適切に処理する方法についての提案を求めています。

4

3 に答える 3

0

独自の暗号化アルゴリズムを使用するか、パスワードを暗号化して保存する場合はパスワードを再度解読できるアルゴリズムを使用する必要があります。これを行うには多くの方法がありますが、より一般的な方法の 1 つは、セーフワードで暗号化して、同じ単語を使用して再度復号化できるようにすることです。

まあ、おそらく本当の言葉ではありませんが、ランダムなバイト配列などのようなものです。

于 2010-04-26T17:16:05.353 に答える
0

SQL Server 自体には、Windows 資格情報を格納する手段があります。CREATE CREDENTIALを参照してください。

資格情報は、SQL Server の外部のリソースに接続するために必要な認証情報を含むレコードです。ほとんどの資格情報には、Windows ユーザーとパスワードが含まれています。

ただし、アプリケーションにユーザー資格情報を保存することは、どのような形式であっても、常に悪い考えです。1 つは、ユーザーがパスワードを変更すると同期が失われることです。次に、リソースにアクセスするためにユーザーを偽装することは決して正しい解決策ではありません。正しい解決策は、実際にグループ メンバーシップを設定し、リソースのアクセス制御リストを適切に定義することです。

リソースにアクセスするための唯一の正しいシナリオは次のとおりです。

  • アプリケーションを実行しているユーザーとして、つまり。通常のありふれたユースケース
  • NegotiateStream.RemoteIdentityのように、SSPI 認証からリモート ID トークンを取得することによって行われる、接続されたユーザーになりすますサービスとして
于 2010-04-26T17:33:42.350 に答える
0

アプリケーションで Windows 認証を使用することをお勧めします。これを行うと、共有フォルダーとデータベースにアクセス許可を設定し、データベースにあらゆる種類の資格情報を保存しないようにすることができます。

于 2010-04-26T17:14:08.247 に答える