Aller au contenu principal

Classe MastraAuthAuth0

La classe MastraAuthAuth0 fournit une authentification Auth0 à Mastra. Elle vérifie les requêtes entrantes au moyen de tokens JWT émis par Auth0 et s’intègre au serveur Mastra avec l’option auth.

Exemple d’utilisation
Lien direct vers Exemple d’utilisation

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,
}),
},
})
remarque

Vous pouvez omettre les paramètres du constructeur si les variables d’environnement requises (AUTH0_DOMAIN et AUTH0_AUDIENCE) sont définies. Dans ce cas, utilisez new MastraAuthAuth0() sans argument.

Paramètres du constructeur
Lien direct vers Paramètres du constructeur

domain?:

string
= process.env.AUTH0_DOMAIN
Votre domaine Auth0 (par exemple, your-tenant.auth0.com). Il sert à vérifier les tokens JWT émis par votre tenant Auth0.

audience?:

string
= process.env.AUTH0_AUDIENCE
Identifiant/audience de votre API Auth0. Il garantit que les tokens sont destinés à votre API précise.

name?:

string
= "auth0"
Nom personnalisé de l’instance du fournisseur d’authentification.

authorizeUser?:

(user: Auth0User) => Promise<boolean> | boolean
Fonction d’autorisation personnalisée qui détermine si l’accès doit être accordé à un utilisateur. Appelée après la vérification du token. Par défaut, elle autorise tous les utilisateurs authentifiés qui disposent de tokens valides.

Variables d’environnement
Lien direct vers Variables d’environnement

Les variables d’environnement suivantes sont utilisées automatiquement lorsque les options du constructeur ne sont pas fournies :

AUTH0_DOMAIN?:

string
Votre domaine Auth0. Il se trouve dans le tableau de bord Auth0, sous Applications > Settings.

AUTH0_AUDIENCE?:

string
Identifiant de votre API Auth0. Il s’agit de l’identifiant défini lors de la création d’une API dans votre tableau de bord Auth0.

Comportement d’autorisation par défaut
Lien direct vers Comportement d’autorisation par défaut

Par défaut, MastraAuthAuth0 valide les tokens JWT Auth0 et accorde l’accès à tous les utilisateurs authentifiés :

  1. Vérification du token : le token JWT est vérifié au moyen des clés publiques d’Auth0 (JWKS).
  2. Validation de la signature : garantit que le token a été signé par votre tenant Auth0.
  3. Contrôle de l’expiration : vérifie que le token n’a pas expiré.
  4. Validation de l’audience : confirme que le token a été émis pour votre API précise (audience).
  5. Validation de l’émetteur : garantit que le token a été émis par votre domaine Auth0.

Si toutes les validations réussissent, l’utilisateur est considéré comme autorisé. Pour implémenter une logique d’autorisation personnalisée, telle qu’un contrôle d’accès fondé sur les rôles, fournissez une fonction authorizeUser personnalisée.

Type d’utilisateur Auth0
Lien direct vers Type d’utilisateur Auth0

Le type Auth0User utilisé dans la fonction authorizeUser correspond à la charge utile décodée du token JWT, qui comprend généralement :

  • sub : identifiant unique de l’utilisateur (sujet)
  • email : adresse e-mail de l’utilisateur (si elle figure dans le token)
  • email_verified : indique si l’adresse e-mail est vérifiée
  • name : nom d’affichage de l’utilisateur (s’il est disponible)
  • picture : URL de la photo de profil de l’utilisateur (si elle est disponible)
  • iss : émetteur du token (votre domaine Auth0)
  • aud : audience du token (identifiant de votre API)
  • iat : horodatage d’émission du token
  • exp : horodatage d’expiration du token
  • scope : portées accordées au token
  • Claims personnalisés et métadonnées d’application configurés dans votre tenant Auth0

Les propriétés disponibles dépendent précisément de votre configuration Auth0, des portées demandées et des claims personnalisés que vous avez configurés.

Classe MastraAuthAuth0