> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ja/llms.txt # MastraAuthAuth0 クラス `MastraAuthAuth0` クラスは、Auth0 を使用して Mastra に認証機能を提供します。Auth0 が発行した JWT token を使用して受信リクエストを検証し、`auth` オプションを使用して Mastra server と統合します。 ## 使用例 ```typescript import { Mastra } from '@mastra/core' import { MastraAuthAuth0 } from '@mastra/auth-auth0' export const mastra = new Mastra({ server: { auth: new MastraAuthAuth0({ domain: process.env.AUTH0_DOMAIN, audience: process.env.AUTH0_AUDIENCE, }), }, }) ``` > **注記:** 必要な環境変数(`AUTH0_DOMAIN` と `AUTH0_AUDIENCE`)が設定されている場合、コンストラクターパラメーターを省略できます。その場合は、引数なしで `new MastraAuthAuth0()` を使用します。 ## コンストラクターパラメーター **domain** (`string`): Auth0 ドメイン(例:your-tenant.auth0.com)。Auth0 tenant が発行した JWT token の検証に使用されます。 (Default: `process.env.AUTH0_DOMAIN`) **audience** (`string`): Auth0 API の識別子(audience)。token が特定の API を対象に発行されたことを保証します。 (Default: `process.env.AUTH0_AUDIENCE`) **name** (`string`): 認証 Provider インスタンスのカスタム名。 (Default: `"auth0"`) **authorizeUser** (`(user: Auth0User) => Promise | boolean`): ユーザーにアクセスを許可するかどうかを判定するカスタム認可関数。token の検証後に呼び出されます。デフォルトでは、有効な token を持つすべての認証済みユーザーを許可します。 ## 環境変数 コンストラクターオプションが指定されていない場合、次の環境変数が自動的に使用されます。 **AUTH0\_DOMAIN** (`string`): Auth0 ドメイン。Auth0 Dashboard の Applications > Settings で確認できます。 **AUTH0\_AUDIENCE** (`string`): Auth0 API の識別子。Auth0 Dashboard で API を作成するときに設定した識別子です。 ## デフォルトの認可動作 デフォルトでは、`MastraAuthAuth0` は Auth0 JWT token を検証し、すべての認証済みユーザーにアクセスを許可します。 1. **Token の検証**:Auth0 の公開鍵(JWKS)を使用して JWT token を検証します 2. **署名の検証**:token が Auth0 tenant によって署名されたことを確認します 3. **有効期限の確認**:token の有効期限が切れていないことを確認します 4. **Audience の検証**:token が特定の API(audience)向けに発行されたことを確認します 5. **Issuer の検証**:token が Auth0 ドメインによって発行されたことを確認します すべての検証に合格すると、ユーザーは認可されたとみなされます。カスタム認可ロジック(ロールベースのアクセス制御など)を実装するには、カスタム `authorizeUser` 関数を指定します。 ## Auth0 ユーザー型 `Auth0User` 型は `authorizeUser` 関数で使用され、デコードされた JWT token の payload に対応します。通常は次の項目が含まれます。 - `sub`:ユーザーの一意な識別子(subject) - `email`:ユーザーのメールアドレス(token に含まれる場合) - `email_verified`:メールアドレスが検証済みかどうか - `name`:ユーザーの表示名(利用可能な場合) - `picture`:ユーザーのプロフィール画像の URL(利用可能な場合) - `iss`:Token の issuer(Auth0 ドメイン) - `aud`:Token の audience(API 識別子) - `iat`:Token が発行された時刻の timestamp - `exp`:Token の有効期限を示す timestamp - `scope`:Token に付与された scope - Auth0 tenant で設定したカスタム claim とアプリの metadata 利用可能な正確なプロパティは、Auth0 の設定、要求した scope、設定済みのカスタム claim によって異なります。 ## 関連情報 [MastraAuthAuth0 クラス](https://mastra.zisheng.pro/ja/docs/server/auth/auth0)