Skip to main content
アイデンティティに関連するトークンには、の 2 種類があります。

ID トークン

ID トークンは、アプリケーションのみで使用するためのJSON Web トークン (JWT) です。たとえば、Google を使ってユーザーをログインさせ、カレンダーも同期するアプリがある場合、Google はそのアプリに、ユーザーに関する情報を含む ID トークンを送信します。アプリはその後、トークンの内容を解析し、その情報 (名前やプロフィール画像など) を使ってユーザー体験をカスタマイズします。
含まれている情報を使用する前に、必ずID トークンを検証してください。この作業にはライブラリを利用できます。
API へのアクセスを得るために ID トークンを使用してはいけません。各トークンには、想定された (通常は受信者) に関する情報が含まれています。 Connect 仕様によると、ID トークンの audience (aud クレームで示されます) は、認証リクエストを行うアプリケーションのでなければなりません。そうでない場合、そのトークンは信頼すべきではありません。 デコードされた ID トークンの内容は次のようになります。 このトークンは、ユーザーをアプリケーションに対して認証するためのものです。トークンの audience (aud クレーム) にはアプリケーションの identifier が設定されるため、このトークンを利用できるのはその特定のアプリケーションに限られます。 一方、API は aud の値が API 固有の identifier と一致するトークンを想定しています。そのため、アプリケーションと API の両方を自分で管理している場合を除き、ID トークンを API に送信しても通常は機能しません。ID トークンは API によって署名されたものではないため、仮に API が ID トークンを受け入れたとしても、アプリケーションによってトークンが改変されていないか (たとえば、スコープが追加されていないか) を API 側で確認する手段がありません。詳しくは JWT Handbook を参照してください。

アクセストークン

アクセストークン (常にであるとは限りません) は、トークンの所有者が API へのアクセスを認可され、あらかじめ定められた一連の操作 (付与されたスコープで指定) を実行できることを API に伝えるために使われます。 上記の Google の例では、ユーザーがログインし、アプリが Google Calendar の読み取りまたは書き込みを行うことに同意すると、Google はアプリにアクセストークンを送信します。アプリが Google Calendar に書き込みを行うたびに、HTTP の Authorization ヘッダーにアクセストークンを含めて、Google Calendar API にリクエストを送信します。 アクセストークンは、認証決して使用してはいけません。アクセストークンでは、ユーザーが認証済みかどうかは判断できません。アクセストークンに含まれるユーザー情報は、sub クレームにある user ID だけです。アクセストークンは API 向けのものなので、アプリケーションでは opaque な文字列として扱ってください。アプリケーションでアクセストークンをデコードしようとしたり、特定の形式のトークンが返されることを期待したりしてはいけません。 以下はアクセストークンの例です。 このトークンには、ユーザー ID (sub クレーム) を除いて、ユーザーに関する情報は含まれていない点に注意してください。含まれているのは、そのアプリケーションに API で実行が許可されている操作に関する認可情報 (scope クレーム) だけです。つまり、API の保護には役立ちますが、ユーザーの認証には使えません。 状況によっては、API がユーザーの詳細情報を取得するための追加処理をしなくて済むよう、sub クレームに加えて、ユーザーに関する追加情報やその他のカスタムクレームをアクセストークンに含めたい場合もあります。そうする場合は、これらの追加のクレームはアクセストークン内で読み取れることに留意してください。詳しくは、Create Custom Claims を参照してください。

特殊なトークン

Auth0 のトークンベースの認証では、3 種類の特殊なトークンが使用されます。
  • : ユーザーを再認証することなく、新しいアクセストークンを取得するためのトークンです。
  • アクセストークン: ユーザー認証後にアイデンティティプロバイダーから発行されるアクセストークンで、サードパーティ API の呼び出しに使用できます。
  • Auth0 アクセストークン: 特定のクレーム (スコープ) を含む有効期間の短いトークンで、Management API エンドポイントを呼び出すために使用できます。

詳細