> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ko/llms.txt # MastraAuthAuth0 클래스 그만큼`MastraAuthAuth0`클래스는 Auth0을 사용하여 Mastra에 대한 인증을 제공합니다. Auth0에서 발급한 JWT 토큰을 사용하여 들어오는 요청을 확인하고 다음을 사용하여 Mastra 서버와 통합합니다.`auth`옵션. ## 사용예 ```typescript 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`): Auth0 도메인입니다(예: your-tenant.auth0.com). Auth0 테넌트가 발급한 JWT 토큰을 검증하는 데 사용됩니다. (Default: `process.env.AUTH0_DOMAIN`) **audience** (`string`): Auth0 API 식별자/대상입니다. 토큰이 특정 API용으로 발급되었는지 확인합니다. (Default: `process.env.AUTH0_AUDIENCE`) **name** (`string`): 인증 Provider 인스턴스의 사용자 정의 이름입니다. (Default: `"auth0"`) **authorizeUser** (`(user: Auth0User) => Promise | 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 사용자 유형 `authorizeUser` 함수에서 사용하는 `Auth0User` 타입은 디코딩된 JWT 토큰 페이로드에 해당하며 일반적으로 다음 항목을 포함합니다. - `sub`: 사용자의 고유 식별자(주체) - `email`: 사용자의 이메일 주소(토큰에 포함된 경우) - `email_verified`: 이메일 인증 여부 - `name`: 사용자의 표시 이름(사용 가능한 경우) - `picture`: 사용자 프로필 사진의 URL(사용 가능한 경우) - `iss`: 토큰 발급자(Auth0 도메인) - `aud`: 토큰 대상자(귀하의 API 식별자) - `iat`: 타임스탬프에 발행된 토큰 - `exp`: 토큰 만료 타임스탬프 - `scope`: 토큰에 부여된 범위 - Auth0 테넌트에 구성된 사용자 지정 클레임 및 앱 메타데이터 사용 가능한 정확한 속성은 Auth0 구성, 요청된 범위 및 구성한 사용자 지정 클레임에 따라 다릅니다. ## 관련된 [MastraAuthAuth0 클래스](https://mastra.zisheng.pro/ko/docs/server/auth/auth0)