4

RESTアプリケーションにセキュリティレイヤーを追加するにはどうすればよいですか。サーバーとクライアントの両方を制御し、サーバーとしてNANCYを使用し、クライアントとしてRESTsharpを使用しています。

RESTがステートレスである場合、呼び出しを安全にする方法を理解するのに苦労しています。

ありがとうございました

4

1 に答える 1

4

クリスチャンのコメントはあなたのニーズに十分かもしれません。これは、BasicまたはFormsAuthにNancyアドインを使用する方法を示しており、RESTSharpはすぐに基本認証をサポートします。

私はかなり前からナンシー駆動のRESTAPIを構築してきました。クライアントとして、RESTSharpとプレーンHTML + JSの両方を使用し、独自のセッションベースの認証を実装することを選択しました(これらのアドインの理由もあります)。実装時に存在しませんでした)。しかし、それの良いところは、クライアントが何をサポートしているかに関係なく、それがいかに簡単に使用できるかということです。それがどのように機能するかを簡単に説明します。

クライアントは、ユーザー名とパスワード(または必要に応じて識別子と秘密鍵)を送信して、(HTTPSを使用)を使用して新しいセッションリソースを作成します。POST /sessionsこのリソースには、後続の呼び出しに使用できるセッションキーが含まれています。セッションは、X分間非アクティブになると期限切れになります。

サービスに対して行われる各呼び出しには、有効なセッションキーが必要です(セッションの作成を除く)。キーは、Cookieまたはクエリ文字列のいずれかで提供されます。RESTSharpを使用する場合、通常はこれをCookieとして設定し、有効期限が切れない限り再利用し続けます。

最後に、を呼び出すことでセッションを破棄できますDELETE /session/{key}

これは、REST APIを保護するためのシンプルですが効果的な(HTTPSを想定した)方法です。

または、OAuthを実装することもできます。これは、RESTSharpもそのままサポートしているようです。

于 2011-12-23T17:49:23.550 に答える