Auth0における「audience」とは、認証の際に生成されるAccess Token(アクセストークン)の対象リソース(APIやサービス)を指定するためのパラメータです。これにより、アクセストークンがどのAPIやサービスに対して有効であるかを明確に示すことができます。
具体的な役割や使い方について、以下のポイントで説明します。
1. Audienceの定義
- 「audience」とは、Access Tokenが使用されるべき「対象のリソースサーバー」を示します。例えば、Auth0で保護されたAPIや他のサーバーサイドサービスなどが対象です。
- リソースサーバーには通常、APIやバックエンドサービスなどが含まれ、リソースサーバーが受け取るAccess Tokenが「自身のものかどうか」を識別できるようになります。
2. Audienceの指定方法
- OAuth 2.0またはOpenID Connectを利用してAuth0に認証リクエストを送る際、リクエストのパラメータとして
audience
を指定します。 -
audience
には、APIの識別子(通常はAPIのURLやユニークな文字列)を設定します。例えば、Auth0管理画面で作成したAPIの識別子を設定することが多いです。
https://<YOUR_AUTH0_DOMAIN>/authorize? audience=<API_IDENTIFIER>& client_id=<YOUR_CLIENT_ID>& response_type=token& redirect_uri=<YOUR_CALLBACK_URI>& scope=read:messages& state=<STATE>
3. Audienceの役割
-
audience
パラメータを含むリクエストが送られると、Auth0は指定されたaudience
に基づき、Access Tokenを発行します。 -
audience
が指定されると、Auth0は通常のIDトークンではなく、APIにアクセスするための「Access Token」を生成し、発行されたトークンはaud
(audience)クレームにリソースサーバーの識別子を含みます。 - リソースサーバー(APIなど)は、受け取ったトークンの
aud
クレームを検証し、自分のAPIのaudience
が一致するかどうかでトークンの有効性を確認します。
4. 例:複数APIとAudience
-
audience
を利用すると、複数のAPIに対して異なるAccess Tokenを発行できます。たとえば、ユーザーが複数のAPIにアクセスする必要がある場合、それぞれのAPIのaudience
を個別に設定することで、APIごとに認証されたトークンが生成され、セキュリティが強化されます。
まとめ
Auth0の「audience」は、アクセストークンがどのAPIやリソースサーバーを対象とするのかを明示するための重要なパラメータです。適切に設定することで、APIアクセスの制御が可能になり、セキュリティが向上します。