본문으로 건너뛰기

MastraAuthAuth0 클래스

그만큼MastraAuthAuth0클래스는 Auth0을 사용하여 Mastra에 대한 인증을 제공합니다. Auth0에서 발급한 JWT 토큰을 사용하여 들어오는 요청을 확인하고 다음을 사용하여 Mastra 서버와 통합합니다.auth옵션.

사용예
사용예에 대한 직접 링크

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 테넌트가 발급한 JWT 토큰을 검증하는 데 사용됩니다.

audience?:

string
= process.env.AUTH0_AUDIENCE
Auth0 API 식별자/대상입니다. 토큰이 특정 API용으로 발급되었는지 확인합니다.

name?:

string
= "auth0"
인증 Provider 인스턴스의 사용자 정의 이름입니다.

authorizeUser?:

(user: Auth0User) => Promise<boolean> | boolean
사용자에게 액세스를 허용할지 결정하는 사용자 정의 권한 부여 함수입니다. 토큰 검증 후 호출됩니다. 기본적으로 유효한 토큰을 보유한 모든 인증된 사용자를 허용합니다.

환경변수
환경변수에 대한 직접 링크

생성자 옵션이 제공되지 않으면 다음 환경 변수가 자동으로 사용됩니다.

AUTH0_DOMAIN?:

string
Auth0 도메인입니다. Auth0 Dashboard의 Applications > Settings에서 찾을 수 있습니다.

AUTH0_AUDIENCE?:

string
Auth0 API 식별자입니다. Auth0 Dashboard에서 API를 생성할 때 설정한 식별자입니다.

기본 인증 동작
기본 인증 동작에 대한 직접 링크

기본적으로 MastraAuthAuth0은 Auth0 JWT 토큰을 검증하고 모든 인증된 사용자의 액세스를 허용합니다.

  1. 토큰 검증: JWT 토큰은 Auth0의 공개 키(JWKS)를 사용하여 확인됩니다.
  2. 서명 검증: Auth0 테넌트가 토큰에 서명했는지 확인합니다.
  3. 만료 확인: 토큰이 만료되지 않았는지 확인합니다.
  4. 청중 검증: 특정 API(대상)에 대해 토큰이 발급되었는지 확인합니다.
  5. 발급자 검증: 토큰이 Auth0 도메인에서 발행되었는지 확인합니다.

모든 검증이 통과되면 사용자는 승인된 것으로 간주됩니다. 사용자 정의 인증 논리(예: 역할 기반 액세스 제어)를 구현하려면 사용자 정의를 제공하세요.authorizeUser function.

인증0 사용자 유형
인증0 사용자 유형에 대한 직접 링크

authorizeUser 함수에서 사용하는 Auth0User 타입은 디코딩된 JWT 토큰 페이로드에 해당하며 일반적으로 다음 항목을 포함합니다.

  • sub: 사용자의 고유 식별자(주체)
  • email: 사용자의 이메일 주소(토큰에 포함된 경우)
  • email_verified: 이메일 인증 여부
  • name: 사용자의 표시 이름(사용 가능한 경우)
  • picture: 사용자 프로필 사진의 URL(사용 가능한 경우)
  • iss: 토큰 발급자(Auth0 도메인)
  • aud: 토큰 대상자(귀하의 API 식별자)
  • iat: 타임스탬프에 발행된 토큰
  • exp: 토큰 만료 타임스탬프
  • scope: 토큰에 부여된 범위
  • Auth0 테넌트에 구성된 사용자 지정 클레임 및 앱 메타데이터

사용 가능한 정확한 속성은 Auth0 구성, 요청된 범위 및 구성한 사용자 지정 클레임에 따라 다릅니다.

MastraAuthAuth0 클래스