Overview
重要なコンセプト
- トークンベースの認証について詳細を確認する
- Auth0が標準クレームでJSON構造に準拠した自己完結型JSON Web Token (JWT)アクセストークンを使う仕組みを理解する
- 提供されたアクセストークンのサンプルと必要なパラメーターを確認する
- デフォルトに基づいてアクセストークンのライフタイムを設定する
不透明なアクセストークン
不透明なアクセストークンとは、アクセス不可能な独自形式のトークンで、一般的にはサーバーの永続ストレージにある情報のIDを含みます。不透明トークンを検証するには、トークンの受信者がトークンの発行サーバーを呼び出す必要があります。 Auth0の場合、不透明トークンは、ユーザーのプロファイルを返すために/userinfo
エンドポイントと共に使用されることがあります。不透明なアクセストークンを受け取ったら、それを検証する必要はありません/userinfo
エンドポイントを使用すれば、後の処理はAuth0が行います。詳細については、「アクセストークンを取得する」をお読みください。
JWTアクセストークン
(JWT)のアクセストークンは、JWT標準に準拠し、エンティティに関する情報をクレームの形で含みます。自己完結型であるため、受信者はサーバーを呼び出してトークンを検証する必要がありません。 のために発行されたアクセストークンと、Auth0に登録したカスタムAPIのために発行されたアクセストークンは、JWT標準に従います。つまり、基本構造が一般的なJWT構造に準拠し、トークン自体についてアサートされた標準のJWTクレームを含みます。Management APIのアクセストークン
Auth0 Management APIのために発行されたアクセストークンは、(実態はどうであれ)不透明として扱われるため、検証する必要はありません。Auth0 Management APIで使用すれば、後の処理はAuth0が行います。詳細については、「Auth0 Management APIのトークン」を参照してください。カスタムAPIのアクセストークン
カスタムAPIのアクセストークンが検証に失敗する場合は、カスタムAPIでaudience
として発行されたことを確認します。詳細については、「アクセストークンを取得する」をお読みください。
アクセストークンのサンプル
これは、アクセストークンの内容を示す例です。トークンに含まれる認可情報は、アプリケーションがそのAPIで実行を許可されているアクションに関するもののみです(そのような許可をscopes
と呼びます)。
sub
クレームにある)以外の、ユーザーに関する情報は含まれません。しかし、その他のユーザー情報が取得できれば便利なケースも多いでしょう。これは、アクセストークンでuserinfo APIエンドポイントを呼び出すことで行えます。アクセストークン発行の対象となるAPIでRS256 署名アルゴリズムが使われていることを確認します。
アクセストークンのセキュリティ
アクセストークンを使用する際には、トークンのベストプラクティスに従い、JWTについては、その内容が信頼できると仮定する前に、必ずアクセストークンを検証してください。アクセストークンのライフタイム
カスタムAPIトークンのライフタイム
カスタムAPIのアクセストークンの有効期間は、デフォルトで86400秒間(24時間)です。APIのセキュリティ要件に従ってトークンの有効期間を設定することをお勧めします。たとえば、バンキングAPIにアクセスするアクセストークンは、To-Do APIにアクセスするものより有効期限を短くします。詳細については、「アクセストークンのライフタイムを更新する」をお読みください。/userinfoエンドポイントのトークンのライフタイム
OIDC/userinfo
エンドポイントへのアクセスのみを目的として発行されたアクセストークンには、デフォルトのライフタイムがあり、変更はできません。ライフタイムの長さは、トークンを使用する際のフローによって異なります。
フロー | ライフタイム |
---|---|
暗黙 | 7200秒(2時間) |
認可コード/ハイブリッド | 86400秒(24時間) |