3

個別のRESTAPIサーバーと、REST APIを使用するWebサイトを提供するだけのWebアプリサーバーを開発して、「サービスとしてのAPI」を作成しています。WebアプリはAPIのクライアントとして機能します。Webアプリは、ユーザーがログインしてAPIの使用状況を確認し、APIシークレットとキーを表示して、APIに安全にアクセスできるようにするシンプルなダッシュボードです。

AWSのような共有シークレットを使用して、APIのクライアントが保護されたリソースにアクセスできるようにすることを計画しています。

しかし、混乱していることの1つは、ユーザーがダッシュボードWebサイトにログインするときに、これをRESTAPIまたはWebアプリサーバーで処理する必要があるかどうかです。

REST APIエンドポイントによって処理される場合、APIサーバーはリクエスト間のセッション状態をどのように維持しますか。APIは、ユーザーがログインしているかどうかをどのように認識しますか?ステートレスであると想定されていても、セッション状態をAPIサーバーに保存しても大丈夫ですか。Twitterのような他のRESTのようなAPIはどのようにこれを行いますか?

4

1 に答える 1

2

ReSTfulセキュリティはサーバー側で処理されます。基本的に:

  • クライアントが認証されていないリソースを要求すると、サーバーは401ステータスコードを返します
  • すべてのクライアント呼び出しは、WWW-Authenticateヘッダーを介して認証を提供する必要があります
  • このヘッダーは、ログインに成功した後、クライアント側でCookieに保存できます。

この問題については、 ReSTfulWebServicesCookbookという本で大きな助けが得られます。基本/ダイジェスト認証に関する説明を探してください。

これは、実際に動作するサンプルを使用した優れた紹介です。

于 2012-10-12T15:34:12.983 に答える