MastraAuthOkta 및 MastraRBACokta 클래스
MastraAuthOkta 클래스MastraAuthOkta 클래스에 대한 직접 링크
MastraAuthOkta 클래스는 Okta를 사용하여 Mastra 인증을 제공합니다. 암호화된 세션 쿠키를 사용하는 OAuth 2.0 / OIDC 로그인 흐름을 구현하며, auth 옵션을 통해 Mastra 서버와 통합됩니다.
사용예사용예에 대한 직접 링크
import { Mastra } from '@mastra/core'
import { MastraAuthOkta } from '@mastra/auth-okta'
export const mastra = new Mastra({
server: {
auth: new MastraAuthOkta({
domain: process.env.OKTA_DOMAIN,
clientId: process.env.OKTA_CLIENT_ID,
clientSecret: process.env.OKTA_CLIENT_SECRET,
redirectUri: process.env.OKTA_REDIRECT_URI,
}),
},
})
필수 환경 변수가 설정되어 있으면 생성자 매개변수를 생략할 수 있습니다. 이 경우 인수 없이 new MastraAuthOkta()를 사용하세요.
생성자 매개변수생성자 매개변수에 대한 직접 링크
domain?:
dev-123456.okta.com). 발급자 URL과 API 엔드포인트를 구성하는 데 사용됩니다.clientId?:
clientSecret?:
issuer?:
redirectUri?:
scopes?:
apiToken?:
getUser()가 ID로 사용자 데이터를 반환하려면 필요합니다.session?:
cookieName?:
cookieMaxAge?:
cookiePassword?:
secureCookies?:
Secure 플래그를 설정합니다.name?:
환경변수환경변수에 대한 직접 링크
생성자 옵션이 제공되지 않으면 다음 환경 변수가 자동으로 사용됩니다.
OKTA_DOMAIN:
dev-123456.okta.com). Okta 관리 콘솔에서 확인할 수 있습니다.OKTA_CLIENT_ID:
OKTA_CLIENT_SECRET:
OKTA_ISSUER?:
https://{domain}/oauth2/default입니다.OKTA_REDIRECT_URI:
OKTA_COOKIE_PASSWORD?:
OKTA_API_TOKEN?:
인증 흐름인증 흐름에 대한 직접 링크
MastraAuthOkta다음 순서로 요청을 인증합니다.
- 세션 쿠키: 암호화된 세션 쿠키를 읽고 해독합니다. 세션이 유효하고 만료되지 않은 경우 사용자가 인증됩니다.
- JWT 대체: 세션 쿠키가 없으면
Authorizationheader token against Okta's JWKS endpoint.
인증 후 authorizeUser는 사용자에게 유효한 oktaId가 있는지 확인합니다. 추가 로직을 구현하려면 사용자 지정 authorizeUser 함수를 제공하세요.
OktaUser유형oktauser-type에 대한 직접 링크
OktaUser 타입은 기본 EEUser 인터페이스를 Okta 전용 필드로 확장합니다.
id:
sub 클레임에 매핑됨).oktaId:
id와 동일).email?:
name?:
avatarUrl?:
groups?:
groups 클레임에서 채워집니다.MastraRBACOkta 클래스MastraRBACOkta 클래스에 대한 직접 링크
MastraRBACOkta 클래스는 Okta 그룹을 Mastra 권한에 매핑합니다. Okta API에서 사용자 그룹을 가져와 구성 가능한 역할 매핑에 따라 확인합니다. MastraAuthOkta 또는 다른 인증 Provider와 함께 사용하세요.
RBAC에는 유효한 Enterprise Edition 라이선스가 필요합니다. 개발 중에는 라이선스 없이 작동하므로 로컬에서 사용해 볼 수 있지만 프로덕션에는 라이선스가 필요합니다. 자세한 내용은 영업팀에 문의하세요.
사용예사용예에 대한 직접 링크
인증 Provider의 rbac 옵션에 MastraRBACOkta를 전달하여 함께 사용하세요.
import { Mastra } from '@mastra/core'
import { MastraAuthOkta, MastraRBACOkta } from '@mastra/auth-okta'
export const mastra = new Mastra({
server: {
auth: new MastraAuthOkta(),
rbac: new MastraRBACOkta({
roleMapping: {
Admin: ['*'],
Engineering: ['agents:*', 'workflows:*', 'tools:*'],
Viewer: ['agents:read', 'workflows:read'],
_default: [],
},
}),
},
})
다른 인증 Provider와 함께 Okta RBAC를 사용하려면 다른 Provider의 사용자 객체에서 Okta 사용자 ID를 확인하는 getUserId 함수를 전달하세요.
import { MastraAuthAuth0 } from '@mastra/auth-auth0'
import { MastraRBACOkta } from '@mastra/auth-okta'
export const mastra = new Mastra({
server: {
auth: new MastraAuthAuth0(),
rbac: new MastraRBACOkta({
getUserId: user => user.metadata?.oktaUserId || user.email,
roleMapping: {
Engineering: ['agents:*', 'workflows:*'],
Admin: ['*'],
_default: [],
},
}),
},
})
생성자 매개변수생성자 매개변수에 대한 직접 링크
roleMapping:
'_default'를 사용하세요. '*'(전체 액세스), 'agents:*'(모든 Agent 작업)와 같은 와일드카드를 지원합니다.domain?:
apiToken?:
getUserId?:
oktaId 또는 id를 대신 사용합니다.