メインコンテンツへ移動

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_DOMAINAUTH0_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 インスタンスのカスタム名。

authorizeUser?:

(user: Auth0User) => Promise<boolean> | 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 ユーザー型
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 クラス