Skip to main content

概要

主なポイント
  • トークンベースの認証について学びます。
  • Auth0が、標準クレームを含むJSON構造に準拠した自己完結型のJSON Web Token (JWT) アクセストークンをどのように使用しているかを確認します。
  • 提供されているアクセストークンのサンプルと必要なパラメーターを確認します。
  • デフォルトに基づいてアクセストークンの有効期間を設定します。
は、トークンベースの認証でアプリケーションがAPIにアクセスできるようにするために使われます。アプリケーションは、ユーザーが正常に認証してアクセスを承認した後にアクセストークンを受け取り、対象のAPIを呼び出す際にそのアクセストークンを資格情報として渡します。渡されたトークンにより、トークンの所持者がそのAPIへのアクセスを承認されており、認可時に付与されたで指定された特定の操作を実行できることがAPIに伝えられます。 さらに、Facebookのようなを通じたユーザーのログインを許可する設定にしている場合は、が、アプリケーションからIdPのAPIを呼び出せるように、独自のアクセストークンを発行します。たとえば、ユーザーがFacebookで認証した場合は、Facebookが発行したアクセストークンを使ってFacebook Graph APIを呼び出せます。これらのトークンはIdPによって管理されており、形式はさまざまです。詳しくは、Identity Provider Access Tokensを参照してください。

不透明アクセストークン

不透明アクセストークンは、内容を参照できない独自形式のトークンで、通常はサーバーの永続ストレージ内の情報を参照するための識別子が含まれています。不透明トークンを検証するには、トークンの受信者がそのトークンを発行したサーバーを呼び出す必要があります。 Auth0 では、不透明トークンを /userinfo エンドポイントで使用して、ユーザーのプロファイルを取得できます。不透明なアクセストークンを受け取った場合は、検証する必要はありません。/userinfo エンドポイントで使用すれば、残りの処理は Auth0 が行います。詳しくは、アクセストークンの取得 を参照してください。

JWT アクセストークン

(JWT) アクセストークンは、JWT 標準 に準拠しており、クレームの形でエンティティに関する情報を含みます。自己完結型であるため、受信側がトークンを検証する際にサーバーを呼び出す必要はありません。 向けに発行されたアクセストークンと、Auth0 に登録した任意のカスタム API 向けに発行されたアクセストークンは、JWT 標準に従います。つまり、これらの基本構造は一般的な JWT の構造 に準拠しており、トークン自体に関する標準の JWT クレーム が含まれています。

Management API アクセストークン

Auth0 Management API 用に発行されたアクセストークンは、実際の形式にかかわらず、不透明なものとして扱う必要があります。そのため、トークンを検証する必要はありません。このトークンは Auth0 Management API で使用でき、あとの処理は Auth0 が行います。詳しくは、Auth0 Management API Tokens を参照してください。

カスタム API のアクセストークン

カスタム API のアクセストークンの検証に失敗する場合は、audience にその カスタム API を指定して発行されていることを確認してください。詳しくは、アクセストークンの取得を参照してください。

アクセストークンのサンプル

この例は、アクセストークンの内容を示しています。トークンには、アプリケーションが API に対して実行を許可されている操作に関する認可情報のみが含まれていることに注目してください (このような権限は scopes と呼ばれます) 。
このトークンには、ユーザー ID (sub claim に含まれます) を除き、ユーザーに関する情報は含まれていません。多くの場合、さらに詳しいユーザー情報を取得したいことがあります。その場合は、アクセストークンを使って userinfo API endpoint を呼び出します。アクセストークンの発行先である API で、RS256 署名アルゴリズム が使用されていることを確認してください。

アクセストークンのセキュリティ

アクセストークンを使用する際は、トークンのベストプラクティスに従ってください。また、JWT については、その内容を信頼する前に、必ずアクセストークンを検証してください。

アクセストークンの有効期間

カスタム API のアクセストークン有効期間

デフォルトでは、カスタム API のアクセストークンは 86400 秒 (24 時間) 有効です。API のセキュリティ要件に応じて、トークンの有効期間を設定することをお勧めします。たとえば、銀行 API にアクセスするアクセストークンは、To-do API にアクセスするアクセストークンよりも短い時間で期限切れになるように設定すべきです。詳しくは、アクセストークンの有効期間を更新する を参照してください。

/userinfo エンドポイントのトークン有効期間

OIDC の /userinfo エンドポイントへのアクセス専用に発行されるアクセストークンには既定の有効期間があり、変更できません。有効期間は、トークンの取得に使用したフローによって異なります。

関連情報