3

servicestack.netライブラリを使用してWebサービスを開発しています。

私のシナリオでは、WebサービスはWPFアプリケーションから呼び出されます。承認されたクライアントアプリのみが自分のサービスを呼び出していることを認証する機能が必要です。

これは、クライアントアプリケーションで「ユーザー名」と「パスワード」をハードコーディングするのと同じくらい簡単ですか?これは確かに適切なアプローチのようには思えません。もっと良い方法はありますか?

編集 さらに、クライアント側では、ユーザー自身がユーザー名/パスワードを使用してログインし、サービスへのリクエストを開始できます(これが何かに影響するかどうかはわかりませんので、言及したいと思います)、

4

1 に答える 1

5

ServiceStackでの認証の背景情報については、この質問を参照してください

通常は、追加で実行しているように見えるクライアントではなく、ユーザーを認証します。ただし、サービスをロックダウンして、特定のクライアントセットを介してのみアクセスできるようにする場合は、クライアントとサーバーにPKIを採用することを検討する必要があります。

基本的には、次のようなものです。クライアントは、ログイン時に、暗号化されたバージョンのuser:passwordと、アプリに埋め込まれた秘密鍵を使用して追加のトークンを送信します。サーバーにはクライアント公開鍵があるため、ログイン時に追加の検証手順を実行して、user:passトークンの暗号化を解除し、検証済みのユーザー資格情報と比較します。

PKIソリューションが重すぎる場合、暗号化を使用しない別の戦略は、クライアントがログイン時にGuidのMD5ハッシュバージョンと現在の時刻、およびハッシュされていないバージョンのGuidを送信する秘密のGuidを使用して出荷することです。時間。時間が指定されたしきい値内にあり、MD5ハッシュが有効である場合、認証されたクライアントを使用します。

于 2011-10-11T14:23:33.940 に答える