web-dev-qa-db-ja.com

AWS cognito:アクセストークンとIDトークンの違いは何ですか?

docs を読んだだけで、それらは私に非常によく似ているので、なぜ一方を他方に使用する理由を実際には見分けることができません。 IDトークンは、ユーザープールからのカスタム属性(例:custom:blahおよびnameemailなどのデフォルトのもの。

現在、私はアクセストークンをブラウザーに返すアプリを使用しているので、それを使用してajax REST呼び出しを行うことができます(このアクセストークンを期待する認証フィルターがあり、 IDトークンでアクセストークンを切り替えるだけでいいですか?現在の検証ロジックは、アクセストークンからsubフィールド(uuid)を取得するだけですが、これはsubフィールドはIDトークンにも存在します(実際には、必要のないaudを除く他のすべての属性も同様です)。理由がわかりにくいので、この権利を理解していることを確認したいだけです。両方のトークンが存在し、非常によく似ています。

16
Zombies

Id_tokenはアプリケーションが処理するためのものであるため、名前、年齢、メールアドレスなど、ユーザーのすべての個人情報を取得できます。一般的に、このトークンには機密のユーザーデータが含まれているため、他のどこにも送信しないでください。

Access_tokenは、他の「外部」サービスを呼び出すために使用されます(外部からは、他のAWSサービスを含めます-これらはしばしばhttp経由で呼び出されます)。ユーザーの個人情報を含めることなく、ユーザーにサービスアクセス許可を提供します。

一見すると、実際にはid_tokenを使用して、access_tokenと同じ方法でサービスにアクセスできるため、これは少し混乱しているように見えます。ただし、この状況ではaccess_tokenを使用することをお勧めします。バックエンドサービスでユーザーデータが必要な場合は、Cognitoで自分でルックアップする必要があります。

17
F_SO_K