2009-06-23 19 views
5

私は、ユーザーとそのデータに応じたWebサイトを持っています。Webサービス/ APIを実装する最も安全な方法は何ですか?

ウェブサービス/ APIを実装する最も安全な方法は、ユーザーのログイン資格情報とデータが安全であるようにすることです。 oAuthは本当にオプションではありません。なぜなら、使用法は必ずしも他のWebアプリケーションに含まれるわけではないからです。

私の懸念は、入力としてユーザー名とパスワードを使用すると、明示的に送信するのが危険であり、トークンを盗まれて悪意のあるものに再利用する可能性があるということです。

データを暗号化および復号化する独自の方法を考え出す必要がありますか、または既に使用されている一般的な方法がありますか?

重要な点は、世界中の誰もが使用できるようにできる限りオープンであることですが、それにもかかわらず、定義上安全です。ドキュメンテーションは誰もが利用できるようになります。

答えて

4

WS-Security標準は常にあります:

WS-Security (Wikipedia)

.NETは、マイクロソフトのWebサービスの機能強化を通じて、.NET 1.1と.NET 2.0での実装があります:

WSE 2.0 (.NET 1.1)
WSE 3.0 (.NET 2.0)

SOAP Envelopeをワイヤで送信する前に暗号化するさまざまな方法を提供し、安全に内部でデータを送信する。

+0

あなたはそれに私を打ち負かす... +1 ;-) – fretje

3

独自の暗号化を作成しないでください。

SSLの問題は何ですか? 「通常の」WSDL/SOAPクライアント(asmx)では、これにSOAPヘッダーを使用することは珍しくありません(SSL経由)。

WCFでは、これはTransportWithMessageCredential(検索のみ)に形式化されています。もちろん、あなたが、セキュリティ(SSL)を輸送するほか、証明書、フェデレーション、ケルベロス、等...

を使用することができ、WCFは、メッセージベースのセキュリティをサポートしています - あなたはだけセキュリティを暗号化することができます追加機能とヘッダー。個人的には、TransportWithMessageCredential(つまりSSL)を使用して簡単に保つのが好きです。

0

なぜ、標準WS-Securityを使用しないのですか?

編集:ちょうどジャスティンの答えに加えて、WCFにも実装されています。

0

第三者と共有されている認証方法は、悪用される可能性があるため、どこかに線を引く必要があります。 HTTP/SとWS- *サービスを使用して接続を保護するのがおそらく最善の方法です。 IPアドレスが固定されている既知のシステムによってのみサービスにアクセスする場合は、ファイアウォールを使用して外部干渉からボックスをさらに保護します。

+0

それをサポートするドキュメントで開きます。 –

関連する問題