Help us understand the problem. What is going on with this article?

CognitoUserPoolのトークン整理

More than 1 year has passed since last update.

概要

サインインを必要とするサービスを作る時に、Cognitoは非常に便利ですよね。
Cognito自体の概要やサインイン・サインアップは他記事にお任せして、今回はCognitoUserPool(以降UserPool)でサインイン後(認証後)にUserPoolから返される、各種トークンについて整理しました。

Cognito公式

トークンの種類

UserPoolは認証後、以下のトークンをクライアントに返します。

  • IDトークン
  • アクセストークン
  • 更新トークン

上記3つのトークンはそれぞれ使い方や性質が違います。

IDトークン

  • JSONWebToken(JWT)
  • 認証したユーザーIDに関するクレームが含まれる。
  • リソースサーバーまたはサーバーアプリケーションに対するユーザーの認証に使用できる。
  • WebAPIに対してアプリケーション外で使用する場合、IDトークン内でクレームを信頼する前に、IDトークンの署名を確認する必要がある。
  • IDトークンは、ユーザーが認証した1時間後に有効期限切れになる。

アクセストークン

  • JSONWebToken(JWT)
  • UserPoolのユーザーのコンテキストを操作する。
  • 対象のCognitoIDに対してアクセストークンを使用して、ユーザー属性を更新、削除が可能。
  • アクセストークンは、ユーザーが認証した1時間後に有効期限切れになる。

更新トークン

  • 新しいIDトークンまたはアクセストークンを取得するためCognitoに対してのみ使用する。
  • デフォルトでは、ユーザーが認証した30日後に有効期限切れになります。(1日~3650日で指定可能)
  • 更新トークンを使用して新しいトークンを取得するには、AdminInitiateAuthAPを使用する。
    • 更新トークンが正しければ、Cognitoサーバーでトークン更新プロセスが開始され、新しいIDトークンとアクセストークンが返される。

終わり

JWTの概念がかなり多様されています。
次回はJWTの概要と実際にCognitoを利用したサインアップ・サインインフローについてまとめようと思います。

tfrcm
React / ReactNative / Go / TypeScript / AWS / Docker / k8s
https://gemcook.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした