web-dev-qa-db-ja.com

Auth0のid_tokenとaccess_tokenの違いは何ですか

Auth0では、 トークンの更新 を使用できます。このリンクでは、返される多くのパラメーターを確認できます。

lock.showSignin({
  authParams: {
    scope: 'openid offline_access'
  }
}, function (err, profile, id_token, access_token, state, refresh_token) {
  // store refresh_token
});

どうやら、access_tokens を使用してユーザープロファイルデータを取得できます。しかし、これはoauthに固有のようで、auth0はopenidを使用すると思いましたか?

違いは何ですか id_tokenおよびaccess_token

24
Scott Coates

OpenID Connectは、OAuth2の上に構築されています。

  • access_tokenは、Auth0で特定のAPI(/userinfoなど)またはAuth0で定義したAPIを呼び出すのに役立ちます。
  • id_token[〜#〜] jwt [〜#〜] であり、ログインしたユーザーを表します。アプリでよく使用されます。
  • refresh_token(モバイル/デスクトップアプリでのみ使用)は期限切れにならず(ただし、取り消すことができます)、新しく作成されたaccess_tokensおよびid_tokenを取得できます。
28
Eugenio Pace

リソースサーバー(サーバー側アプリケーション)は、クライアントからのアクセストークンのみを受け入れます。これは、アクセストークンがリソースへの承認アクセスを目的としているためです。一方、IDトークンは、認証を目的としています。これは、エンドユーザーに関する情報を含むOpenIDプロバイダーによって付与されます。 ソース

アクセストークンは、アプリケーションがユーザーに代わってAPIリクエストを行うために使用するものです。アクセストークンは、ユーザーのデータの特定の部分にアクセスするための特定のアプリケーションの承認を表します。アクセストークンは機密に保つ必要があります。

refresh tokensの考え方は、アクセストークンが危険にさらされた場合、それは短命であるため、攻撃者はそれを悪用するための限られたウィンドウしか持たないということです。 。攻撃者がアクセストークンを取得するために更新トークンに加えてクライアントIDとシークレットを必要とするため、更新トークンが侵害された場合は役に立ちません。 ソース

更新トークンの有効期間は(AS)承認サーバー次第です。有効期限が切れたり、取り消されたりする可能性があります。更新トークンとアクセストークンの違いはオーディエンスです。更新トークンは承認サーバーにのみ戻ります。アクセストークンは(RS)リソースサーバーに送られます。 ソース

0
Premraj