apicontrollerを使用して最初のRESTサービスを作成しました。mvc-4の代わりにWebフォームで使用しています。Webサービスにセキュリティを実装するにはどうすればよいですか。ブラウザ以外のクライアントがサービスを使用する可能性があることを念頭に置いて、セキュリティの設定をどのように進めますか。フォーム認証を使用しているasp.netアプリケーションに対してブラウザーから自分自身を認証すると、アプリは認証Cookieを返します。この認証クッキーは、後続の各要求でブラウザーによって転送され、アプリケーションは、ユーザーがCookieを復号化してサインインしていることを認識します。
私は複数の光景のチュートリアルを見ていましたWebAPIのセキュリティについて。彼らは、jsonデータが渡された場合にユーザーにログインできるメソッドが必要であると主張しています。ログインすると、メソッドは認証Cookieをクライアント(ブラウザおよびその他のサービスクライアント)に返します。クライアントは、後続の各要求でこのCookieを送信して、自分自身を承認する必要があります。この認証スキームはWebサービスでは正常ですか、それとも他の推奨される方法がありますか?問題は、どのように実装するかというよりも、何を実装するかということです。
編集:この質問に対する@AliOstadの回答から得たアイデアつまり、httpsで理想的に機能するサービス用に別のログインメソッドを作成する必要があります。このメソッドは、ユーザーの電子メールと発行時刻を含む暗号化された認証ヘッダーを返す必要があります。クライアントがトークンを取得すると、認証ヘッダーでこのトークンを(andriodアプリなどに)渡すことでサービスを使用できます。データサービス(httpsで動作するログインサービスとは対照的に)がトークンはx分後に期限切れになるため、httpで動作します。サーバー側では完全に問題ありませんが、クライアントはトークンの有効期限が切れていることをどのようにして知ることができ、データサービスからデータを取得する前に別のトークンを取得する必要がありますか?私の2番目の懸念は、この方法で実装した場合、asp.netアプリケーション(asp。ネットアプリケーションとWebAPIは同じアプリケーションで実行されています)。そこで(javascriptで)、認証トークンを取得するために認証トークンまたはユーザー名とパスワードのいずれかが必要になりますが、どちらも実行可能ではないようです?
これらのシナリオをどのように処理する必要がありますか?