2009-07-23 23 views
5

私はいくつかのクライアント(デスクトップ、モバイルデバイス、Webポータル)を持つアプリを開発中です。 SOAのようなアーキテクチャに移行し、WCFを使用します。Compact FrameworkでWCFを使用して保護する最も良い方法は?

WCFの話は、デスクトップとWebポータル側でnetTcp +トランスポート/メッセージセキュリティ+ Windows認証(またはUsernameTokenとカスタムUsernameValidatorプロバイダー)を使用する場合に優れています。

コンパクトなフレームワーク側では完全に分解されています...それがサポートするWCFのサブセットは非常に限定的です。私は単純にbasicHttp + Username/Passwordをヘッダ全体でSSLを使用して辞職しましたが、コンパクトなフレームワークスタック(OperationContextScopeなし)ではヘッダーを追加できないようです - そのため、username/passwordをEVERYサービスにおける単一の操作方法。

私が間違っていると教えてください、より良い方法があります。

+0

これは試していませんが、HTTPS経由で基本認証を使用できますか? –

+0

CFでWCFスタックを使用する方法が見つかりませんでした。これは、WCFサービスを従来のWebサービス(Add Web Reference ...)としてコンパクトなフレームワークで扱うことを選択した理由の1つと考えています。 –

答えて

1

WS-Security標準に準拠したWCFエンドポイントを公開するのが最善の策です。

これで、メッセージベースのセキュリティ(おそらくX.509を使用している)にこれらの標準を使用できるはずです。ここでは、MSDNのリンクを始めるためにです:

Messaging in the .NET Compact Framework

1

代替ソリューションは、チケットを渡すことです(読み:GUID)。

クライアントはログインします(ユーザ名とパスワードを送信します)。ランダムに生成されたチケットが生成され(再度guid)、サーバーにキャッシュされ、クライアントに送り返されます。このチケットは、ユーザー名とパスワードの代わりに前後に渡されます。

もちろん、セッション状態を利用するだけではないことを前提としています。

しかし、言い換えれば、私は同じ問題を抱えていました。それは吸う。これは私がそれをちょっと回って、使い方が分かりました。

とにかく、別の良い参考資料はWCF Guidance for Mobileです。

+0

私は、同様にそのようなものに落ちることを考えていました。おそらく、パスワード(またはパスワードのNTハッシュ)から計算してステートレスにすることができるものになるかもしれません。 もちろんSSL経由で安全です。 –

関連する問題