LoginSignup
50
24

More than 5 years have passed since last update.

CognitoUserPoolのトークン整理

Posted at

概要

サインインを必要とするサービスを作る時に、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を利用したサインアップ・サインインフローについてまとめようと思います。

50
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
50
24