2017-09-14 10 views
0

プロバイダで認証された後、アプリケーションは、ユーザーに代わってIDトークンとアクセストークンの両方を受信することがよくあります。今は、ユーザーが誰であるかを示す2つの方法があるようです。IDアサーションのIDトークンまたは/ userinfo

  1. IDトークンを確認し、IDトークンを読み取ってください。
  2. アクセストークンをuserinfoエンドポイントに渡し、JSON応答を読み取ります。

どちらも許容可能な手段のようですが、いずれか一方を使用する必要があるシナリオがありますか?

答えて

2

トークンとIDトークンの両方が必要な場合は、どちらの方法でも使用できます。以下は、私の頭に浮かんだいくつかの相違点である。(あなたはその証明書が既にローカルにダウンロードした場合)

  • 確認とIDトークンを読んだが、そののOAuth2サーバーにアクセスすることなく行うことができ、それはより速くなり、より少ない可能性があります対処するエラー - ネットワーク要求なし。
  • ユーザー情報が頻繁に変更されていた場合、IDトークンには古いデータが含まれる可能性がありますが、ほとんどの場合はそうではありません。
  • アクセストークンは取り消すことができます(IDトークンではできません)。必要に応じて、より良い仕事をします。
1

技術的な違いに加えて、意味の違いもあります:id_tokenとそこにある情報は、認証されたユーザーを表しています。そのユーザーは「存在」し、アプリケーションにログインします。

access_tokenであり、userinfoエンドポイントから返される情報は、それを提示するエンティティにアクセストークンを発行したユーザーに関する情報を表します。そのユーザーは「存在する」またはログインする必要はありません。

アンid_tokenは、典型的には、「ワンタイム使用量」であるとaccess_tokenは、通常、時間の短い期間のために使用することができます。

ユーザーがOpenID Connectを使用してログインすると同時にトークンが両方とも発行されて受信された場合、その2つは重複します。

関連する問題