メインコンテンツへスキップ

概要

主な概念
  • トークンベース認証について学びます。
  • 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 と呼ばれます) 。
{
  "iss": "https://my-domain.auth0.com/",
  "sub": "auth0|123456",
  "aud": [
    "https://example.com/health-api",
    "https://my-domain.auth0.com/userinfo"
  ],
  "azp": "my_client_id",
  "exp": 1311281970,
  "iat": 1311280970,
  "scope": "openid profile read:patients read:admin"
}
このトークンには、ユーザー ID (sub クレームに含まれます) を除き、ユーザーに関する情報は含まれていません。多くの場合、追加のユーザー情報を取得したいことがあります。その場合は、アクセストークンを使用して userinfo API エンドポイント を呼び出します。アクセストークンの発行先の API で RS256 署名アルゴリズム を使用していることを確認してください。

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

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

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

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

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

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

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

詳細