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_DOMAIN 및 AUTH0_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 인스턴스의 사용자 정의 이름입니다.
환경변수환경변수에 대한 직접 링크
생성자 옵션이 제공되지 않으면 다음 환경 변수가 자동으로 사용됩니다.
AUTH0_DOMAIN?:
string
Auth0 도메인입니다. Auth0 Dashboard의 Applications > Settings에서 찾을 수 있습니다.
AUTH0_AUDIENCE?:
string
Auth0 API 식별자입니다. Auth0 Dashboard에서 API를 생성할 때 설정한 식별자입니다.
기본 인증 동작기본 인증 동작에 대한 직접 링크
기본적으로 MastraAuthAuth0은 Auth0 JWT 토큰을 검증하고 모든 인증된 사용자의 액세스를 허용합니다.
- 토큰 검증: JWT 토큰은 Auth0의 공개 키(JWKS)를 사용하여 확인됩니다.
- 서명 검증: Auth0 테넌트가 토큰에 서명했는지 확인합니다.
- 만료 확인: 토큰이 만료되지 않았는지 확인합니다.
- 청중 검증: 특정 API(대상)에 대해 토큰이 발급되었는지 확인합니다.
- 발급자 검증: 토큰이 Auth0 도메인에서 발행되었는지 확인합니다.
모든 검증이 통과되면 사용자는 승인된 것으로 간주됩니다. 사용자 정의 인증 논리(예: 역할 기반 액세스 제어)를 구현하려면 사용자 정의를 제공하세요.authorizeUser function.
인증0 사용자 유형인증0 사용자 유형에 대한 직접 링크
authorizeUser 함수에서 사용하는 Auth0User 타입은 디코딩된 JWT 토큰 페이로드에 해당하며 일반적으로 다음 항목을 포함합니다.
sub: 사용자의 고유 식별자(주체)email: 사용자의 이메일 주소(토큰에 포함된 경우)email_verified: 이메일 인증 여부name: 사용자의 표시 이름(사용 가능한 경우)picture: 사용자 프로필 사진의 URL(사용 가능한 경우)iss: 토큰 발급자(Auth0 도메인)aud: 토큰 대상자(귀하의 API 식별자)iat: 타임스탬프에 발행된 토큰exp: 토큰 만료 타임스탬프scope: 토큰에 부여된 범위- Auth0 테넌트에 구성된 사용자 지정 클레임 및 앱 메타데이터
사용 가능한 정확한 속성은 Auth0 구성, 요청된 범위 및 구성한 사용자 지정 클레임에 따라 다릅니다.