IDトークン
IDトークンは、アプリケーションでのみ使用されるJSON Web Token(JWT)です。たとえば、ユーザーのログインにGoogleを使用して、カレンダーを同期させるアプリの場合、Googleはユーザーに関する情報を含むIDトークンをアプリに送信します。その後、このアプリはトークンの内容を解析し、その情報(名前やプロファイル画像などの詳細を含む)を使ってユーザーエクスペリエンスをカスタマイズします。 IDトークンを使ってAPIにアクセスしてはいけません 。各トークンには、意図されたオーディエンス(通常は受信者)についての情報が含まれています。 Connectの仕様によると、IDトークンのオーディエンス(aud クレームで示される)は、認証を要求しているアプリケーションのクライアントIDでなければなりません。そうでない場合は、そのトークンを信頼してはいけません。 デコードされたIDトークンの内容は、以下のようになります。アクセストークン
アクセストークン(常にとは限らない)は、APIへのアクセスと(付与されたスコープ で指定された)所定のアクションの実行が、トークンの持参人に認可されていることをAPIに知らせるために使用されます。 上記のGoogleの例では、ユーザーがログインし、アプリによるGoogleカレンダーでの読み書きに同意すると、Googleがアプリにアクセストークンを送信します。アプリがGoogleカレンダーに書き込む場合は、HTTP認可 ヘッダーにアクセストークンを含めて、Google Calendar APIに要求を送信します。 アクセストークンは、絶対に 認証に使用してはいけません。アクセストークンはユーザーが認証済みかを判断できません。アクセストークンが持っているユーザー情報は、sub クレームに含まれるユーザーIDだけです。アクセストークンはAPIのためのものであり、アプリケーションはアクセストークンを不透明な文字列として扱わなければなりません。アプリケーションはこれらをデコードしようとしたり、トークンを特定の形式で受け取ることを予期したりできません。 以下はアクセストークンの例です。特殊なトークン
Auth0のトークンベースの認証シナリオでは、以下の3つの特殊なトークンが使用されています。- リフレッシュトークン :ユーザーを再認証することなく、更新されたアクセストークンを取得するために使用されます。
- アクセストークン :ユーザーの認証後にIDプロバイダーが発行するアクセストークンで、サードパーティのAPIを呼び出すことができます。
- Auth0 のアクセストークン :特定のクレーム(スコープ)を含む、短期間だけ有効なトークンで、Management APIエンドポイントを呼び出すことができます。