2017-10-03 12 views
3

非対話型クライアントに関する質問があります oauth2の流れに基づくバックエンドアプリです。oauth2のフローで非対話型クライアントに対して新しいaccess_tokenを要求するタイミングは?

https://auth0.com/docs/api-auth/grant/client-credentials

非対話型のクライアントのためのOAuth2に従い、フローは次のとおりです。

  • アプリケーションはAuth0はそのクライアントIDとクライアントシークレットを使用して認証します。
  • Auth0はこの情報を検証し、access_tokenを返します。
  • アプリケーションは、access_tokenを使用して、それ自体のためにAPIを呼び出すことができます。この上

ベース、私の質問は以下のとおりです。

  • バックエンド・アプリケーションは、ローカルにaccess_tokenはを保存したり、同じクライアントのために、クライアントがアプリケーションを使用するたびに新しいaccess_tokenはを要求する必要がありますか?
  • access_tokenがローカルに保存されている場合、有効期限のあるものは何ですか?
  • 非対話型クライアントのアクセストークンは、対話型ユーザー(ログインWeb)のaccess_tokenと同じ有効期限を持つ必要がありますか?

答えて

1

バックエンド・アプリケーションは、ローカルにaccess_tokenはを保存する必要がありますまたはクライアントが アプリケーションを使用するたびに同じクライアントのために 新しいaccess_tokenはを要求しますか?クライアントの資格情報については

返さJWTアクセストークンがあなたの要件に依存する流れ、頻繁に更新するかどうかの決定、または「キャッシュ」を付与 - 例えばスコープが頻繁に変更された場合、それは新たなアクセスを取得しても意味がありこれらの変更が反映されるように頻繁にトークンを使用します。個人的な経験から言えば、これは一般的ではないので、有効期限の間トークンをキャッシュすることは理にかなっており、Auth0への余分な呼び出しを保存して、それぞれの要求で新しいトークンを取得します。

access_tokenがローカルに保存されている場合、有効期限が切れていますか?

期限切れをチェックして有効期限が切れた場合は新しいアクセストークンをフェッチするか、チェックせずにアクセストークンを使用してから試してみてください既存のトークンを使用しているときに障害を受け取ります。非対話型のクライアント用

access_tokenは、インタラクティブなユーザー (ログインWeb)用access_tokenはと比較して、同じ 有効期限を持っている必要がありますか?

最初のものと同様の質問です。クライアント資格認可フローを使用すると、通常は機密性の高い/信頼できるクライアント(クライアントシークレットを保管している)が表示されるため、マシンとマシンのシナリオで頻繁に使用されるため、有効期限が長くなります。しかし、すでに述べたように、スコープが変更された場合などは、有効期限が短くなると構成の変更(スコープ)がより迅速に行われます。

+0

ありがとう@arcseldon。 (1)「たとえばスコープが頻繁に変更される場合」とは、ビジネスおよびセキュリティプロジェクトの要件、またはjsonレスポンスからの読み取り/書き込みスコープの作成を意味します(https://www.oauth.com/oauth2-servers/access-tokens/access-token-response /)? (2)安定した企業環境では、セキュリティエンドポイントのすべてのアプリクライアントに影響を与えないように、セキュリティプロジェクトの要件を変更するべきではありません。したがって、安定したセキュリティプラットフォームを前提とすると、有効期限の長いaccess_tokenは有効でしょうか?また、セキュリティ上の理由から、access_tokenは期限切れになると(頻繁に)更新する必要がありますか?ありがとう – JRichardsz

+0

こんにちは。ここでは、あなたがかなり「固定された」認可権を持っているかどうか、例えば、 APIに割り当てられたスコープは 'read:book write:book'のようなもので、より長い有効期限が適しています(他のすべてのものは同じです - 例えば信頼できるクライアントなど)。ただし、権限が変更される可能性があり、非対話型クライアントが新しい変更を取得したい場合は、有効期限を短くする方が適しています。スコープとして 'delete book'を追加し、既存の非インタラクティブクライアントがその変更をピックアップすることを望みます。彼らは早くアクセストークンを更新するのは簡単です。 – arcseldon

関連する問題