2016-05-10 9 views
4

私のWindowsサービスでは、同じネットワーク上のSQL Server 2012データベースに格納されているサードパーティのREST APIの資格情報を取得する必要があります。私の顧客のそれぞれに、異なるAPI資格が割り当てられている可能性があります。たとえば:このサービスの最初の繰り返しでSQL ServerデータベースにAPI資格情報を安全に保存する方法

Customer Name | API ID | API Password In Plain Text 
----------------------------------------------------- 
Customer 1  1234  somepassword 
Customer 2  1234  somepassword 
Customer 3  5678  anotherpassword 

、顧客のすべてが同じAPIの資格情報を使用し、それがSectionInformation.ProtectSectionを使用して、Windowsサービスのapp.configをで暗号化されました。

.NETフレームワークが提供する暗号化/復号化メソッドを使用し、その値をデータベースに格納するだけですか?たとえば、ここで提供されるソリューションの1つ:Encrypting & Decrypting a String in C#?私が調べることができる任意の提案や他の解決策?

+0

たぶんMS ProtectedDataクラスを使用して見て - https://msdn.microsoft.com/en-us/library/system.security.cryptography .protecteddata(v = vs.110).aspx – SyntaxGoonoo

+0

パスワードの保存には、PBKDF2のようなものを使用します。 – ProXicT

答えて

1

@SyntaxGoonooで提案されているように、データ保護API(DAPI)が提供するProtectedData Classを使用する予定です。 DataProtectionScopeをWindowsサービスに関連付けられたCurrentUserとして実行し、SQLデータベースから資格情報を復号化するように設定します。おそらく、資格情報を暗号化し、それをデータベースに保存する別のアプリケーションを作る必要があります(同じユーザーコンテキストを使用して)。

ここにありますいくつかの追加のリソース:

関連する問題