リモートボックスで実行されている既存のアプリケーションとのインターフェイスで作業しているアプリ。リモートアプリとの通信は、パブリックWebサービスを介して行われます。安全に送信する必要のある機密データを処理するためにWebサービスを利用するクライアントを含む拡張機能を構築するように依頼されました。
誰かが私にどのように進めるのが最善かについてのいくつかの指針を教えてもらえますか?
リモートボックスで実行されている既存のアプリケーションとのインターフェイスで作業しているアプリ。リモートアプリとの通信は、パブリックWebサービスを介して行われます。安全に送信する必要のある機密データを処理するためにWebサービスを利用するクライアントを含む拡張機能を構築するように依頼されました。
誰かが私にどのように進めるのが最善かについてのいくつかの指針を教えてもらえますか?
まず、SSLを使用し、SSLを使用していないリクエストをすべて拒否する必要があります。これにより、インターネット経由で送信されるデータが暗号化されます。
SOAPを使用している場合は、ユーザー名/パスワードを受け取るカスタムヘッダーをサービスに定義できます。次に、各パブリックメソッドの最初の行で、データベースに対してユーザー名とパスワードを検証します。成功した場合は、HttpContext.Current.Userを適切に設定すると、サービスは組み込みのAsp.NETインフラストラクチャとうまく連携します。
追加:以下は、認証用のユーザー名/パスワードを含むサンプルのSoapHeaderです。
// define the header
public class AuthenticationHeader : SoapHeader
{
public String UserName { get; set; }
public String Password { get; set; }
}
// your service
public class PublicWebService : WebService
{
// defines an instance of the header as part of the service
public AuthenticationHeader Authentication;
private void Authenticate()
{
// validate the username / password against a database
// set the HttpContext.Current.User if successful.
// Maybe throw a SoapException() if authentication fails
}
// Notice the SoapHeader("Authentication") attribute...
// This tells ASP.Net to look for the incoming header for this method...
[WebMethod]
[SoapHeader("Authentication")]
public void PublicMethod1()
{
Authenticate();
// your code goes here
}
// Expose another method with the same authentication mechanism
[WebMethod]
[SoapHeader("Authentication")]
public void PublicMethod2()
{
Authenticate();
// your code goes here
}
}
ここで、wsdlツールを実行すると、生成されたプロキシクラスに定義済みの認証ヘッダーが含まれます。
PublicWebService s = new PublicWebService();
s.Authentication = new AuthenticationHeader();
s.Authentication.UserName = "xxxxxxxx";
s.Authentication.Password = "yyyyyyyy";
s.PublicMethod1();
s.PublicMethod2();
DIYルート:
セキュリティについて読んでください(技術に進む前に、「秘密と嘘」や他のそのような一般的な本から始めてください)
リスク分析とスレッド評価を実行します。何を保護し、何から、どこから脅威が発生するかを理解します。「高セキュリティ」 1が必要になる可能性はほとんどありません。
TLS(別名SSL)を使用します。
クライアントで、サーバーの証明書が正しいことを確認します。
より良いルート:あなたを助けるために確立された評判を持っている専門家を雇ってください。
1あなたが本当に核兵器工場などを建設しているのでなければ。