ID トークン
ID トークンは、アプリケーションのみで使用するためのJSON Web トークン (JWT) です。たとえば、Google を使ってユーザーをログインさせ、カレンダーも同期するアプリがある場合、Google はそのアプリに、ユーザーに関する情報を含む ID トークンを送信します。アプリはその後、トークンの内容を解析し、その情報 (名前やプロフィール画像など) を使ってユーザー体験をカスタマイズします。含まれている情報を使用する前に、必ずID トークンを検証してください。この作業にはライブラリを利用できます。
アクセストークン
アクセストークン (常にであるとは限りません) は、トークンの所有者が 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 エンドポイントを呼び出すために使用できます。