MastraAuthAuth0 クラス
MastraAuthAuth0 クラスは、Auth0 を使用して Mastra に認証機能を提供します。Auth0 が発行した JWT token を使用して受信リクエストを検証し、auth オプションを使用して Mastra server と統合します。
使用例使用例への直接リンク
src/mastra/index.ts
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
= process.env.AUTH0_DOMAIN
Auth0 ドメイン(例:your-tenant.auth0.com)。Auth0 tenant が発行した JWT token の検証に使用されます。
audience?:
string
= process.env.AUTH0_AUDIENCE
Auth0 API の識別子(audience)。token が特定の API を対象に発行されたことを保証します。
name?:
string
= "auth0"
認証 Provider インスタンスのカスタム名。
環境変数環境変数への直接リンク
コンストラクターオプションが指定されていない場合、次の環境変数が自動的に使用されます。
AUTH0_DOMAIN?:
string
Auth0 ドメイン。Auth0 Dashboard の Applications > Settings で確認できます。
AUTH0_AUDIENCE?:
string
Auth0 API の識別子。Auth0 Dashboard で API を作成するときに設定した識別子です。
デフォルトの認可動作デフォルトの認可動作への直接リンク
デフォルトでは、MastraAuthAuth0 は Auth0 JWT token を検証し、すべての認証済みユーザーにアクセスを許可します。
- Token の検証:Auth0 の公開鍵(JWKS)を使用して JWT token を検証します
- 署名の検証:token が Auth0 tenant によって署名されたことを確認します
- 有効期限の確認:token の有効期限が切れていないことを確認します
- Audience の検証:token が特定の API(audience)向けに発行されたことを確認します
- Issuer の検証:token が Auth0 ドメインによって発行されたことを確認します
すべての検証に合格すると、ユーザーは認可されたとみなされます。カスタム認可ロジック(ロールベースのアクセス制御など)を実装するには、カスタム authorizeUser 関数を指定します。
Auth0 ユーザー型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 が発行された時刻の timestampexp:Token の有効期限を示す timestampscope:Token に付与された scope- Auth0 tenant で設定したカスタム claim とアプリの metadata
利用可能な正確なプロパティは、Auth0 の設定、要求した scope、設定済みのカスタム claim によって異なります。