Windowsサービスのユーザー名とパスワードを保存するための最良の方法は何ですか?
サービスは、リモートマシン上のMSSQLServerデータベースにアクセスできる必要があります。NT認証の代わりにMSSQLServer認証(混合モード)をサポートする必要があります。
Windowsサービスのユーザー名とパスワードを保存するための最良の方法は何ですか?
サービスは、リモートマシン上のMSSQLServerデータベースにアクセスできる必要があります。NT認証の代わりにMSSQLServer認証(混合モード)をサポートする必要があります。
.Net を想定すると、構成ファイルを暗号化できます。これを参照してください。
DP APIは、Windows で機密データをローカルに保存する標準的な方法です。使用しているプログラミング言語については触れていませんが、.NET ではSystem.Security.ProtectedDataクラスから公開されています。
理想的には、このパスワードを保存する必要がないことに同意しますが、保存する場合でも、自分でハッシュする必要はありません。CryptProtectData . この記事の下部にある警告をお読みください。ただし、実際にはLsaStorePrivateDataを使用してパスワードを保存しました。
Windows サービスのユーザー名とパスワードを安全に保存する方法はありません。そのため、SQL Server へのアクセスに使用するアカウントには、必要なことを実行するために必要な最小限のデータベース アクセス許可を与えることが非常に重要です。
編集:そして、ユーザー名とパスワードを暗号化してはならないという意味ではありません-他の回答で言及されているツールの1つを使用してください。
それはあなたの環境に依存します。
このサービスはセキュリティで保護されていないマシンで実行されていますか?
管理者のみがアクセスできるサーバールーム内のサーバーのファイアウォール内で実行されるサービスがあります。
NT認証を使用してこれらのファイルへのアクセスを直接制限しているため、このような情報を構成ファイルに直接展開します。ただし、これは、サービスを実行するマシンが単なるサーバーであり、ユーザー マシンではない場合です。
これまでの回答に感謝します:)
最善の方法は、次のクラスを使用してユーザー名とパスワードを暗号化する構成ファイルを使用することです: System.Security.Cryptography.ProtectedData
ここに良い背景説明があります: Windows Data Protection